6fdc146
%{!?python_sitelib: %global python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")}
6fdc146
%{!?pyver: %global pyver %(%{__python} -c "import sys ; print sys.version[:3]")}
4bb2170
%global debug_package %{nil}
6fdc146
ed2013b
Name:       odcs
5289f63
Version:    0.2.0
9cc9551
Release:    2%{?dist}
ed2013b
Summary:    The On Demand Compose Service
ed2013b
ed2013b
ed2013b
Group:      Development/Tools
ed2013b
License:    MIT
ed2013b
URL:        https://pagure.io/odcs
ed2013b
Source0:    https://files.pythonhosted.org/packages/source/o/%{name}/%{name}-%{version}.tar.gz
ed2013b
Source1:    odcs-backend.service
ed2013b
# In Fedora, "pyldap" is only for python3, not for python2. Therefore we
ed2013b
# have to patch the requirements.txt to use python-ldap instead of pyldap.
ed2013b
# Both ldap bindings are compatible on Python code level.
ed2013b
Patch0:     odcs-pythonldap.patch
ed2013b
# Fedora related configuration for ODCS.
ed2013b
Patch1:     odcs-fedora-conf.patch
ed2013b
ed2013b
%if 0%{?rhel} && 0%{?rhel} <= 7
ed2013b
# In EL7 we need flask which needs python-itsdangerous which comes from
ed2013b
# rhel7-extras which is only available on x86_64 for now.
ed2013b
ExclusiveArch: %{ix86} x86_64
ed2013b
%else
ed2013b
BuildArch:    noarch
ed2013b
%endif
ed2013b
ed2013b
BuildRequires:    python2-devel
ed2013b
ed2013b
BuildRequires:    help2man
ed2013b
BuildRequires:    python2-pdc-client
9cc9551
BuildRequires:    python2-fedora
9cc9551
BuildRequires:    python2-flask-script
9cc9551
BuildRequires:    python2-flask-login
9cc9551
BuildRequires:    python2-httplib2
9cc9551
BuildRequires:    python2-m2ext
9cc9551
BuildRequires:    python2-munch
9cc9551
BuildRequires:    python2-productmd
ed2013b
ed2013b
BuildRequires:    python2-funcsigs
ed2013b
BuildRequires:    python2-modulemd >= 1.1.0
9cc9551
BuildRequires:    python2-qpid
ed2013b
BuildRequires:    python2-openidc-client
9cc9551
BuildRequires:    python2-ldap
883e91e
ed2013b
ed2013b
%if 0%{?rhel} && 0%{?rhel} <= 7
ed2013b
BuildRequires:    python-setuptools
ed2013b
BuildRequires:    python-flask-sqlalchemy
ed2013b
BuildRequires:    python-flask-migrate
ed2013b
BuildRequires:    python-nose
ed2013b
BuildRequires:    python-mock
ed2013b
BuildRequires:    python-six
ed2013b
BuildRequires:    pyOpenSSL
ed2013b
BuildRequires:    python-sqlalchemy
ed2013b
BuildRequires:    python-futures
ed2013b
BuildRequires:    python-flask
ed2013b
BuildRequires:    systemd-python
62bd21d
BuildRequires:    python-defusedxml
883e91e
BuildRequires:    koji
ed2013b
%else
ed2013b
BuildRequires:    python2-setuptools
ed2013b
BuildRequires:    python2-flask-sqlalchemy
ed2013b
BuildRequires:    python2-flask-migrate
ed2013b
BuildRequires:    python2-nose
ed2013b
BuildRequires:    python2-mock
ed2013b
BuildRequires:    python2-tabulate
ed2013b
BuildRequires:    python2-six
ed2013b
BuildRequires:    python2-futures
ed2013b
BuildRequires:    python2-flask
ed2013b
BuildRequires:    python2-systemd
62bd21d
BuildRequires:    python2-defusedxml
9cc9551
BuildRequires:    python2-koji
ed2013b
ed2013b
%if (0%{?fedora} && 0%{?fedora} <= 25) || (0%{?rhel} && 0%{?rhel} <= 7)
ed2013b
BuildRequires:    pyOpenSSL
ed2013b
BuildRequires:    python-sqlalchemy
b781242
%else
b781242
BuildRequires:    python2-pyOpenSSL
b781242
BuildRequires:    python2-sqlalchemy
ed2013b
%endif
ed2013b
ed2013b
%endif
ed2013b
BuildRequires:    systemd
ed2013b
ed2013b
%{?systemd_requires}
ed2013b
ed2013b
Requires(pre): shadow-utils
ed2013b
Requires:    systemd
ed2013b
Requires:    pungi
ed2013b
Requires:    python2-pdc-client
9cc9551
Requires:    python2-fedora
9cc9551
Requires:    python2-flask-script
9cc9551
Requires:    python2-flask-login
9cc9551
Requires:    python2-httplib2
9cc9551
Requires:    python2-m2ext
9cc9551
Requires:    python2-munch
ed2013b
Requires:    python2-funcsigs
ed2013b
Requires:    python2-modulemd >= 1.1.0
9cc9551
Requires:    python2-qpid
ed2013b
Requires:    python2-openidc-client
9cc9551
Requires:    python2-ldap
9cc9551
Requires:    python2-productmd
c02d6ef
Requires:    hardlink
ed2013b
ed2013b
%if 0%{?rhel} && 0%{?rhel} <= 7
ed2013b
Requires:    python-flask-sqlalchemy
ed2013b
Requires:    python-flask-migrate
ed2013b
Requires:    python-mock
ed2013b
Requires:    python-six
ed2013b
Requires:    pyOpenSSL
ed2013b
Requires:    python-sqlalchemy
ed2013b
Requires:    python-futures
ed2013b
Requires:    python-flask
62bd21d
Requires:    python-defusedxml
883e91e
Requires:    koji
6fdc146
ed2013b
Requires:    systemd-python
ed2013b
%else
ed2013b
Requires:    python2-flask-sqlalchemy
ed2013b
Requires:    python2-flask-migrate
ed2013b
Requires:    python2-mock
ed2013b
Requires:    python2-systemd
ed2013b
Requires:    python2-six
ed2013b
Requires:    python2-futures
ed2013b
Requires:    python2-flask
62bd21d
Requires:    python2-defusedxml
9cc9551
Requires:    python2-koji
883e91e
ed2013b
ed2013b
%if (0%{?fedora} && 0%{?fedora} <= 25) || (0%{?rhel} && 0%{?rhel} <= 7)
ed2013b
Requires:    pyOpenSSL
ed2013b
Requires:    python-sqlalchemy
b781242
%else
b781242
Requires:    python2-pyOpenSSL
b781242
Requires:    python2-sqlalchemy
ed2013b
%endif
ed2013b
ed2013b
%endif
ed2013b
6fdc146
Requires:    python2-odcs-common = %{version}-%{release}
6fdc146
ed2013b
ed2013b
%description
ed2013b
The On Demand Compose Service (ODCS) creates temporary composes using Pungi
ed2013b
tool and manages their lifetime. The composes can be requested by external
ed2013b
services or users using the REST API provided by Flask frontend.
ed2013b
6fdc146
%package -n python2-odcs-common
6fdc146
Summary:        ODCS subpackage providing code shared between server and client.
6fdc146
%{?python_provide:%python_provide python2-odcs-client}
6fdc146
9cc9551
Requires:       python2-six
6fdc146
6fdc146
6fdc146
%description -n python2-odcs-common
6fdc146
ODCS subpackage providing code shared between server and client.
6fdc146
6fdc146
6fdc146
%package -n python2-odcs-client
6fdc146
Summary:        ODCS client module
6fdc146
%{?python_provide:%python_provide python2-odcs-client}
6fdc146
9cc9551
Requires:       python2-six
9cc9551
Requires:       python2-requests
6fdc146
Requires:       m2crypto
9cc9551
Requires:       python2-m2ext
6fdc146
Requires:       python2-odcs-common = %{version}-%{release}
6fdc146
6fdc146
6fdc146
%description -n python2-odcs-client
6fdc146
Client library for sending requests to On Demand Compose Service (ODCS).
6fdc146
ed2013b
bea3da5
%package -n odcs-client
bea3da5
Summary:        ODCS command line client
bea3da5
Requires:       python2-openidc-client
bea3da5
Requires:       python2-odcs-client = %{version}-%{release}
bea3da5
bea3da5
bea3da5
%description -n odcs-client
bea3da5
Command line client for sending requests to ODCS.
bea3da5
bea3da5
ed2013b
%prep
ed2013b
%setup -q
ed2013b
ed2013b
%patch0 -p1 -b .pyldap
ed2013b
%patch1 -p1
ed2013b
ed2013b
ed2013b
%build
ed2013b
%py2_build
ed2013b
ed2013b
ed2013b
%install
ed2013b
%py2_install
ed2013b
ed2013b
export PYTHONPATH=%{buildroot}%{python2_sitelib}
ed2013b
mkdir -p %{buildroot}%{_mandir}/man1
ed2013b
for command in odcs-manager odcs-frontend odcs-gencert odcs-upgradedb ; do
6fdc146
export ODCS_CONFIG_FILE=server/conf/config.py
ed2013b
help2man -N \
ed2013b
    --version-string=%{version} %{buildroot}%{_bindir}/$command  > \
ed2013b
    %{buildroot}%{_mandir}/man1/$command.1 || \
ed2013b
    %{buildroot}%{_bindir}/$command --help
ed2013b
    
ed2013b
done
ed2013b
ed2013b
install -d -m 0755 %{buildroot}%{_unitdir}
ed2013b
install -p -m 0644 %{SOURCE1} %{buildroot}%{_unitdir}/
ed2013b
ed2013b
install -d -m 0755 %{buildroot}%{_datadir}/odcs
6fdc146
install -p -m 0644 server/contrib/odcs.wsgi %{buildroot}%{_datadir}/odcs
ed2013b
ed2013b
%pre
ed2013b
getent group odcs >/dev/null || groupadd -r odcs
ed2013b
getent passwd odcs >/dev/null || \
ed2013b
    useradd -r -g odcs -s /sbin/nologin \
ed2013b
    -c "On Demand Compose Service user" odcs
ed2013b
exit 0
ed2013b
ed2013b
%post
ed2013b
%systemd_post odcs-backend.service
ed2013b
ed2013b
%preun
ed2013b
%systemd_preun odcs-backend.service
ed2013b
ed2013b
%postun
ed2013b
%systemd_postun_with_restart odcs-backend.service
ed2013b
ed2013b
%check
ed2013b
# Test fails currently, reported here: https://pagure.io/odcs/issue/25
ed2013b
# Should be fixed in next release
ed2013b
#nosetests-2.7 -v
ed2013b
bea3da5
%files -n odcs-client
bea3da5
%doc README.md
bea3da5
%license LICENSE
bea3da5
%{_bindir}/odcs
bea3da5
6fdc146
%files -n python2-odcs-common
6fdc146
%doc README.md
6fdc146
%license LICENSE
6fdc146
%dir %{python2_sitelib}/odcs/
6fdc146
%{python2_sitelib}/odcs/__init__.py*
6fdc146
%{python2_sitelib}/odcs/common/
6fdc146
%{python2_sitelib}/odcs-%{version}-py%{pyver}.egg-info/
62bd21d
%exclude %{python2_sitelib}/odcs/__pycache__
6fdc146
6fdc146
%files -n python2-odcs-client
6fdc146
%doc README.md
6fdc146
%license LICENSE
6fdc146
%dir %{python2_sitelib}/odcs/
6fdc146
%{python2_sitelib}/odcs/client/
62bd21d
%exclude %{python2_sitelib}/odcs/__pycache__
ed2013b
ed2013b
%files
ed2013b
%doc README.md
ed2013b
%license LICENSE
ed2013b
%{_unitdir}/odcs-backend.service
6fdc146
%{python2_sitelib}/odcs/server
ed2013b
%{_bindir}/odcs-*
ed2013b
%{_mandir}/man1/odcs-*.1*
ed2013b
%{_datadir}/odcs
ed2013b
%dir %{_sysconfdir}/odcs
ed2013b
%config(noreplace) %{_sysconfdir}/odcs/config.py
4bb2170
%config(noreplace) %{_sysconfdir}/odcs/pungi.conf
bea3da5
%config(noreplace) %{_sysconfdir}/odcs/raw_config_wrapper.conf
bea3da5
%config(noreplace) %{_sysconfdir}/odcs/runroot_koji.conf
ed2013b
%exclude %{_sysconfdir}/odcs/*.py[co]
62bd21d
%exclude %{python2_sitelib}/odcs/__pycache__
ed2013b
ed2013b
ed2013b
%changelog
9cc9551
* Thu Mar 01 2018 Iryna Shcherbina <ishcherb@redhat.com> - 0.2.0-2
9cc9551
- Update Python 2 dependency declarations to new packaging standards
9cc9551
  (See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3)
9cc9551
5289f63
* Mon Feb 26 2018 Jan Kaluza <jkaluza@redhat.com> - 0.2.0-1
5289f63
- updated to new version 0.2.0.
5289f63
2161b6c
* Thu Feb 08 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.1.7-3
2161b6c
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
2161b6c
0ba2555
* Mon Feb 05 2018 Jan Kaluza <jkaluza@redhat.com> - 0.1.7-2
0ba2555
- restart odcs-backend.service on failure.
0ba2555
bea3da5
* Mon Feb 05 2018 Jan Kaluza <jkaluza@redhat.com> - 0.1.7-1
bea3da5
- updated to new version 0.1.7.
bea3da5
1b72613
* Thu Jan 11 2018 Jan Kaluza <jkaluza@redhat.com> - 0.1.6-1
1b72613
- updated to new version 0.1.6.
1b72613
18e8ec0
* Tue Dec 12 2017 Jan Kaluza <jkaluza@redhat.com> - 0.1.5-5
18e8ec0
- do not remove pungi ODCS composes
18e8ec0
bc08ad6
* Mon Dec 11 2017 Jan Kaluza <jkaluza@redhat.com> - 0.1.5-4
bc08ad6
- fix Koji kerberos login with keytab
bc08ad6
fba5517
* Mon Dec 11 2017 Jan Kaluza <jkaluza@redhat.com> - 0.1.5-3
fba5517
- fix Koji kerberos login with keytab
fba5517
3152777
* Mon Dec 11 2017 Jan Kaluza <jkaluza@redhat.com> - 0.1.5-2
3152777
- fix traceback in unique_path.
3152777
64309b9
* Fri Dec 08 2017 Jan Kaluza <jkaluza@redhat.com> - 0.1.5-1
64309b9
- updated to new version 0.1.5
64309b9
d35c6f8
* Fri Nov 24 2017 Jan Kaluza <jkaluza@redhat.com> - 0.1.4-1
d35c6f8
- updated to new version 0.1.4.
d35c6f8
d35c6f8
* Fri Nov 24 2017 Jan Kaluza <jkaluza@redhat.com> - 0.1.3-1
d35c6f8
- updated to new version 0.1.3.
d35c6f8
883e91e
* Wed Nov 01 2017 Jan Kaluza <jkaluza@redhat.com> - 0.1.2-1
883e91e
- updated to new version 0.1.2.
883e91e
c02d6ef
* Mon Oct 30 2017 Jan Kaluza <jkaluza@redhat.com> - 0.1.1-3
c02d6ef
- Require:hardlink
c02d6ef
4bb2170
* Mon Oct 30 2017 Jan Kaluza <jkaluza@redhat.com> - 0.1.1-1
4bb2170
- updated to new version 0.1.1.
4bb2170
8ec79d4
* Thu Oct 12 2017 Jan Kaluza <jkaluza@redhat.com> - 0.1.0-2
8ec79d4
- use http instead of https for pulp .repo file
8ec79d4
1eca9b9
* Fri Oct 06 2017 Ralph Bean <rbean@redhat.com> - 0.1.0-1
1eca9b9
- new version
1eca9b9
6679196
* Thu Oct 05 2017 Ralph Bean <rbean@redhat.com> - 0.0.8-1
6679196
- new version
6679196
c2232e0
* Fri Sep 29 2017 Ralph Bean <rbean@redhat.com> - 0.0.7-1
c2232e0
- new version
c2232e0
44e3a86
* Tue Sep 26 2017 Ralph Bean <rbean@redhat.com> - 0.0.6-1
44e3a86
- new version
44e3a86
62bd21d
* Thu Sep 21 2017 Jan Kaluza <jkaluza@redhat.com> - 0.0.5-1
62bd21d
- new version
62bd21d
6fdc146
* Thu Aug 10 2017 Jan Kaluza <jkaluza@redhat.com> - 0.0.4-1
6fdc146
- new version
6fdc146
59db209
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.0.3-5
59db209
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
59db209
b781242
* Tue Jul 18 2017 Jan Kaluza <jkaluza@redhat.com> - 0.0.3-4
b781242
- fix reversed condition for python2-* dependencies
b781242
ed2013b
* Mon Jul 17 2017 Jan Kaluza <jkaluza@redhat.com> - 0.0.3-3
ed2013b
- Add python2- prefix to requirements when it makes sense
ed2013b
- Add -p to install command to preserve timestamp
ed2013b
- Fix macros formatting, use _datadir instead of /usr/share
ed2013b
ed2013b
* Tue Jul 11 2017 Jan Kaluza <jkaluza@redhat.com> - 0.0.3-2
ed2013b
- fix dependencies
ed2013b
ed2013b
* Thu Jun 29 2017 Jan Kaluza <jkaluza@redhat.com> - 0.0.3-1
ed2013b
- Initial version of spec file