%{!?python_sitelib: %global python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")} %{!?pyver: %global pyver %(%{__python} -c "import sys ; print sys.version[:3]")} Name: odcs Version: 0.1.0 Release: 2%{?dist} Summary: The On Demand Compose Service Group: Development/Tools License: MIT URL: https://pagure.io/odcs Source0: https://files.pythonhosted.org/packages/source/o/%{name}/%{name}-%{version}.tar.gz Source1: odcs-backend.service # In Fedora, "pyldap" is only for python3, not for python2. Therefore we # have to patch the requirements.txt to use python-ldap instead of pyldap. # Both ldap bindings are compatible on Python code level. Patch0: odcs-pythonldap.patch # Fedora related configuration for ODCS. Patch1: odcs-fedora-conf.patch Patch2: odcs-pulp-http.patch %if 0%{?rhel} && 0%{?rhel} <= 7 # In EL7 we need flask which needs python-itsdangerous which comes from # rhel7-extras which is only available on x86_64 for now. ExclusiveArch: %{ix86} x86_64 %else BuildArch: noarch %endif BuildRequires: python2-devel BuildRequires: help2man BuildRequires: python2-pdc-client BuildRequires: python-fedora BuildRequires: python-flask-script BuildRequires: python-flask-login BuildRequires: python-httplib2 BuildRequires: python-m2ext BuildRequires: python-munch BuildRequires: python2-funcsigs BuildRequires: python2-modulemd >= 1.1.0 BuildRequires: python-qpid BuildRequires: python2-openidc-client BuildRequires: python-ldap %if 0%{?rhel} && 0%{?rhel} <= 7 BuildRequires: python-setuptools BuildRequires: python-flask-sqlalchemy BuildRequires: python-flask-migrate BuildRequires: python-nose BuildRequires: python-mock BuildRequires: python-six BuildRequires: pyOpenSSL BuildRequires: python-sqlalchemy BuildRequires: python-futures BuildRequires: python-flask BuildRequires: systemd-python BuildRequires: python-defusedxml %else BuildRequires: python2-setuptools BuildRequires: python2-flask-sqlalchemy BuildRequires: python2-flask-migrate BuildRequires: python2-nose BuildRequires: python2-mock BuildRequires: python2-tabulate BuildRequires: python2-six BuildRequires: python2-futures BuildRequires: python2-flask BuildRequires: python2-systemd BuildRequires: python2-defusedxml %if (0%{?fedora} && 0%{?fedora} <= 25) || (0%{?rhel} && 0%{?rhel} <= 7) BuildRequires: pyOpenSSL BuildRequires: python-sqlalchemy %else BuildRequires: python2-pyOpenSSL BuildRequires: python2-sqlalchemy %endif %endif BuildRequires: systemd %{?systemd_requires} Requires(pre): shadow-utils Requires: systemd Requires: pungi Requires: python2-pdc-client Requires: python-fedora Requires: python-flask-script Requires: python-flask-login Requires: python-httplib2 Requires: python-m2ext Requires: python-munch Requires: python2-funcsigs Requires: python2-modulemd >= 1.1.0 Requires: python-qpid Requires: python2-openidc-client Requires: python-ldap %if 0%{?rhel} && 0%{?rhel} <= 7 Requires: python-flask-sqlalchemy Requires: python-flask-migrate Requires: python-mock Requires: python-six Requires: pyOpenSSL Requires: python-sqlalchemy Requires: python-futures Requires: python-flask Requires: python-defusedxml Requires: systemd-python %else Requires: python2-flask-sqlalchemy Requires: python2-flask-migrate Requires: python2-mock Requires: python2-systemd Requires: python2-six Requires: python2-futures Requires: python2-flask Requires: python2-defusedxml %if (0%{?fedora} && 0%{?fedora} <= 25) || (0%{?rhel} && 0%{?rhel} <= 7) Requires: pyOpenSSL Requires: python-sqlalchemy %else Requires: python2-pyOpenSSL Requires: python2-sqlalchemy %endif %endif Requires: python2-odcs-common = %{version}-%{release} %description The On Demand Compose Service (ODCS) creates temporary composes using Pungi tool and manages their lifetime. The composes can be requested by external services or users using the REST API provided by Flask frontend. %package -n python2-odcs-common Summary: ODCS subpackage providing code shared between server and client. %{?python_provide:%python_provide python2-odcs-client} Requires: python-six %description -n python2-odcs-common ODCS subpackage providing code shared between server and client. %package -n python2-odcs-client Summary: ODCS client module %{?python_provide:%python_provide python2-odcs-client} Requires: python-six Requires: python-requests Requires: m2crypto Requires: python-m2ext Requires: python2-odcs-common = %{version}-%{release} %description -n python2-odcs-client Client library for sending requests to On Demand Compose Service (ODCS). %prep %setup -q %patch0 -p1 -b .pyldap %patch1 -p1 %patch2 -p1 %build %py2_build %install %py2_install export PYTHONPATH=%{buildroot}%{python2_sitelib} mkdir -p %{buildroot}%{_mandir}/man1 for command in odcs-manager odcs-frontend odcs-gencert odcs-upgradedb ; do export ODCS_CONFIG_FILE=server/conf/config.py help2man -N \ --version-string=%{version} %{buildroot}%{_bindir}/$command > \ %{buildroot}%{_mandir}/man1/$command.1 || \ %{buildroot}%{_bindir}/$command --help done install -d -m 0755 %{buildroot}%{_unitdir} install -p -m 0644 %{SOURCE1} %{buildroot}%{_unitdir}/ install -d -m 0755 %{buildroot}%{_datadir}/odcs install -p -m 0644 server/contrib/odcs.wsgi %{buildroot}%{_datadir}/odcs %pre getent group odcs >/dev/null || groupadd -r odcs getent passwd odcs >/dev/null || \ useradd -r -g odcs -s /sbin/nologin \ -c "On Demand Compose Service user" odcs exit 0 %post %systemd_post odcs-backend.service %preun %systemd_preun odcs-backend.service %postun %systemd_postun_with_restart odcs-backend.service %check # Test fails currently, reported here: https://pagure.io/odcs/issue/25 # Should be fixed in next release #nosetests-2.7 -v %files -n python2-odcs-common %doc README.md %license LICENSE %dir %{python2_sitelib}/odcs/ %{python2_sitelib}/odcs/__init__.py* %{python2_sitelib}/odcs/common/ %{python2_sitelib}/odcs-%{version}-py%{pyver}.egg-info/ %exclude %{python2_sitelib}/odcs/__pycache__ %files -n python2-odcs-client %doc README.md %license LICENSE %dir %{python2_sitelib}/odcs/ %{python2_sitelib}/odcs/client/ %exclude %{python2_sitelib}/odcs/__pycache__ %files %doc README.md %license LICENSE %{_unitdir}/odcs-backend.service %{python2_sitelib}/odcs/server %{_bindir}/odcs-* %{_mandir}/man1/odcs-*.1* %{_datadir}/odcs %dir %{_sysconfdir}/odcs %config(noreplace) %{_sysconfdir}/odcs/config.py %exclude %{_sysconfdir}/odcs/*.py[co] %exclude %{python2_sitelib}/odcs/__pycache__ %changelog * Thu Oct 12 2017 Jan Kaluza - 0.1.0-2 - use http instead of https for pulp .repo file * Fri Oct 06 2017 Ralph Bean - 0.1.0-1 - new version * Thu Oct 05 2017 Ralph Bean - 0.0.8-1 - new version * Fri Sep 29 2017 Ralph Bean - 0.0.7-1 - new version * Tue Sep 26 2017 Ralph Bean - 0.0.6-1 - new version * Thu Sep 21 2017 Jan Kaluza - 0.0.5-1 - new version * Thu Aug 10 2017 Jan Kaluza - 0.0.4-1 - new version * Thu Jul 27 2017 Fedora Release Engineering - 0.0.3-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild * Tue Jul 18 2017 Jan Kaluza - 0.0.3-4 - fix reversed condition for python2-* dependencies * Mon Jul 17 2017 Jan Kaluza - 0.0.3-3 - Add python2- prefix to requirements when it makes sense - Add -p to install command to preserve timestamp - Fix macros formatting, use _datadir instead of /usr/share * Tue Jul 11 2017 Jan Kaluza - 0.0.3-2 - fix dependencies * Thu Jun 29 2017 Jan Kaluza - 0.0.3-1 - Initial version of spec file