diff --git a/odcs.spec b/odcs.spec index 9c6ebe0..b0e1329 100644 --- a/odcs.spec +++ b/odcs.spec @@ -1,10 +1,14 @@ +%if 0%{?fedora} +%global with_python3 1 +%endif + %{!?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]")} %global debug_package %{nil} Name: odcs Version: 0.2.1 -Release: 1%{?dist} +Release: 2%{?dist} Summary: The On Demand Compose Service @@ -28,19 +32,30 @@ ExclusiveArch: %{ix86} x86_64 BuildArch: noarch %endif -BuildRequires: python2-devel - BuildRequires: help2man + +BuildRequires: libmodulemd +BuildRequires: gobject-introspection + +BuildRequires: systemd + +BuildRequires: python2-devel BuildRequires: python2-pdc-client BuildRequires: python2-fedora BuildRequires: python2-productmd BuildRequires: python2-funcsigs BuildRequires: python2-modulemd >= 1.1.0 BuildRequires: python2-openidc-client -BuildRequires: python-ldap -BuildRequires: libmodulemd -BuildRequires: gobject-introspection -BuildRequires: python-gobject-base + +%if 0%{?with_python3} +BuildRequires: python3-devel +BuildRequires: python3-pdc-client +BuildRequires: python3-fedora +BuildRequires: python3-productmd +BuildRequires: python3-funcsigs +BuildRequires: python3-modulemd >= 1.1.0 +BuildRequires: python3-openidc-client +%endif %if 0%{?rhel} && 0%{?rhel} <= 7 @@ -61,6 +76,8 @@ BuildRequires: python-httplib2 BuildRequires: python-qpid BuildRequires: pyOpenSSL BuildRequires: python-sqlalchemy +BuildRequires: python-ldap +BuildRequires: python-gobject-base %else BuildRequires: python2-setuptools BuildRequires: python2-flask-sqlalchemy @@ -78,23 +95,43 @@ BuildRequires: python2-httplib2 BuildRequires: python2-qpid BuildRequires: python2-pyOpenSSL BuildRequires: python2-sqlalchemy +BuildRequires: python2-ldap +BuildRequires: python2-gobject-base +%if 0%{?with_python3} +BuildRequires: python3-setuptools +BuildRequires: python3-flask-sqlalchemy +BuildRequires: python3-flask-migrate +BuildRequires: python3-nose +BuildRequires: python3-mock +BuildRequires: python3-tabulate +BuildRequires: python3-six +BuildRequires: python3-flask +BuildRequires: python3-systemd +BuildRequires: python3-defusedxml +BuildRequires: python3-koji +BuildRequires: python3-httplib2 +BuildRequires: python3-pyOpenSSL +BuildRequires: python3-sqlalchemy +BuildRequires: python3-ldap +BuildRequires: python3-gobject-base +%endif %endif %if (0%{?fedora} && 0%{?fedora} <= 27) || (0%{?rhel} && 0%{?rhel} <= 7) BuildRequires: python-flask-script BuildRequires: python-flask-login -BuildRequires: python-ldap -BuildRequires: python-m2ext BuildRequires: python-munch %else BuildRequires: python2-flask-script BuildRequires: python2-flask-login -BuildRequires: python2-ldap -BuildRequires: python2-m2ext BuildRequires: python2-munch +%if 0%{?with_python3} +BuildRequires: python3-flask-script +BuildRequires: python3-flask-login +BuildRequires: python3-munch +%endif %endif -BuildRequires: systemd %{?systemd_requires} @@ -173,11 +210,9 @@ Summary: ODCS subpackage providing code shared between server and client. Requires: python2-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} @@ -195,16 +230,42 @@ Requires: python2-m2ext Requires: python2-odcs-common = %{version}-%{release} - %description -n python2-odcs-client Client library for sending requests to On Demand Compose Service (ODCS). +%if 0%{?with_python3} +%package -n python3-odcs-common +Summary: ODCS subpackage providing code shared between server and client. +%{?python_provide:%python_provide python3-odcs-client} + +Requires: python3-six + +%description -n python3-odcs-common +ODCS subpackage providing code shared between server and client. + +%package -n python3-odcs-client +Summary: ODCS client module +%{?python_provide:%python_provide python3-odcs-client} + +Requires: python3-six +Requires: python3-requests +Requires: python3-m2crypto +Requires: python3-m2ext +Requires: python3-odcs-common = %{version}-%{release} + +%description -n python3-odcs-client +Client library for sending requests to On Demand Compose Service (ODCS). +%endif %package -n odcs-client Summary: ODCS command line client +%if 0%{?with_python3} +Requires: python3-openidc-client +Requires: python3-odcs-client = %{version}-%{release} +%else Requires: python2-openidc-client Requires: python2-odcs-client = %{version}-%{release} - +%endif %description -n odcs-client Command line client for sending requests to ODCS. @@ -213,12 +274,19 @@ Command line client for sending requests to ODCS. %prep %setup -q +%if 0%{?with_python3} +sed -i '/futures/d' common/requirements.txt +sed -i '/futures/d' client/requirements.txt +sed -i '/futures/d' server/requirements.txt +%endif + %patch0 -p1 -b .pyldap %patch1 -p1 %build %py2_build +%py3_build %install @@ -241,6 +309,11 @@ 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 +# Prepare the python3 bits, but remove the server portion. We're just shipping +# the client as py3 for now. +%py3_install +rm -rf %{buildroot}%{python3_sitelib}/odcs/server/ + %pre getent group odcs >/dev/null || groupadd -r odcs getent passwd odcs >/dev/null || \ @@ -258,9 +331,11 @@ exit 0 %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 +nosetests-2.7 -v + +%if 0%{?with_python3} +nosetests-%{python3_version} -v +%endif %files -n odcs-client %doc README.md @@ -283,6 +358,24 @@ exit 0 %{python2_sitelib}/odcs/client/ %exclude %{python2_sitelib}/odcs/__pycache__ +%if 0%{?with_python3} +%files -n python3-odcs-common +%doc README.md +%license LICENSE +%dir %{python3_sitelib}/odcs/ +%{python3_sitelib}/odcs/__init__.py* +%{python3_sitelib}/odcs/common/ +%{python3_sitelib}/odcs-%{version}-py%{python3_version}.egg-info/ +%exclude %{python3_sitelib}/odcs/__pycache__ + +%files -n python3-odcs-client +%doc README.md +%license LICENSE +%dir %{python3_sitelib}/odcs/ +%{python3_sitelib}/odcs/client/ +%exclude %{python3_sitelib}/odcs/__pycache__ +%endif + %files %doc README.md %license LICENSE @@ -301,6 +394,9 @@ exit 0 %changelog +* Mon Mar 12 2018 Ralph Bean - 0.2.1-2 +- Python3 subpackages. + * Mon Mar 12 2018 Jan Kaluza - 0.2.1-1 - updated to new version 0.2.1.