diff --git a/bodhi.spec b/bodhi.spec index a35791f..d9eb85f 100644 --- a/bodhi.spec +++ b/bodhi.spec @@ -1,5 +1,7 @@ +%{?python_enable_dependency_generator} + Name: bodhi -Version: 3.12.0 +Version: 4.0.2 Release: 1%{?dist} BuildArch: noarch @@ -9,58 +11,23 @@ Group: Applications/Internet URL: https://github.com/fedora-infra/bodhi Source0: %{url}/archive/%{version}/%{name}-%{version}.tar.gz -# sqlalchemy_schemadisplay is only available via Python 3 in Fedora >= 30, so let's patch Bodhi to -# build the database graphs with Python 2. -Patch0: 0000-Use-Python-2-to-build-the-database-graphs.patch - -BuildRequires: %{py2_dist alembic} -BuildRequires: %{py2_dist arrow} -BuildRequires: %{py2_dist bleach} -BuildRequires: %{py2_dist click} -BuildRequires: %{py2_dist colander} -BuildRequires: %{py2_dist cornice_sphinx} >= 0.3 -BuildRequires: %{py2_dist cornice} >= 3.1.0 -BuildRequires: %{py2_dist cryptography} -BuildRequires: %{py2_dist fedmsg} -BuildRequires: %{py2_dist feedgen} -BuildRequires: %{py2_dist flake8} -BuildRequires: %{py2_dist iniparse} -BuildRequires: %{py2_dist jinja2} -BuildRequires: %{py2_dist kitchen} -BuildRequires: %{py2_dist markdown} -BuildRequires: %{py2_dist mock} -BuildRequires: %{py2_dist pylibravatar} -BuildRequires: %{py2_dist pyramid-fas-openid} -BuildRequires: %{py2_dist pyramid-mako} -BuildRequires: %{py2_dist pyramid-tm} -BuildRequires: %{py2_dist pyramid} -BuildRequires: %{py2_dist pytest-cov} -BuildRequires: %{py2_dist pytest} -BuildRequires: %{py2_dist python-bugzilla} -BuildRequires: %{py2_dist python-fedora} -BuildRequires: %{py2_dist python-openid} -BuildRequires: %{py2_dist pyyaml} -BuildRequires: %{py2_dist responses} -BuildRequires: %{py2_dist simplemediawiki} -BuildRequires: %{py2_dist sphinx} -BuildRequires: %{py2_dist sqlalchemy_schemadisplay} -BuildRequires: %{py2_dist sqlalchemy} -BuildRequires: %{py2_dist webtest} + BuildRequires: %{py3_dist alembic} BuildRequires: %{py3_dist arrow} +BuildRequires: %{py3_dist backoff} BuildRequires: %{py3_dist bleach} BuildRequires: %{py3_dist click} BuildRequires: %{py3_dist colander} BuildRequires: %{py3_dist cornice_sphinx} >= 0.3 BuildRequires: %{py3_dist cornice} >= 3.1.0 -BuildRequires: %{py3_dist cryptography} -BuildRequires: %{py3_dist fedmsg} +BuildRequires: %{py3_dist dogpile.cache} +BuildRequires: %{py3_dist fedora_messaging} BuildRequires: %{py3_dist feedgen} BuildRequires: %{py3_dist flake8} BuildRequires: %{py3_dist iniparse} BuildRequires: %{py3_dist jinja2} -BuildRequires: %{py3_dist kitchen} BuildRequires: %{py3_dist markdown} +BuildRequires: %{py3_dist psycopg2} BuildRequires: %{py3_dist mock} BuildRequires: %{py3_dist pylibravatar} BuildRequires: %{py3_dist pyramid-fas-openid} @@ -76,19 +43,11 @@ BuildRequires: %{py3_dist responses} BuildRequires: %{py3_dist simplemediawiki} BuildRequires: %{py3_dist sphinx} BuildRequires: %{py3_dist sqlalchemy} -BuildRequires: %{py3_dist webtest} BuildRequires: /usr/bin/virtualenv -BuildRequires: koji -BuildRequires: liberation-mono-fonts -BuildRequires: packagedb-cli +BuildRequires: %{py3_dist twisted} +BuildRequires: %{py3_dist webtest} +BuildRequires: pkgconfig(bash-completion) BuildRequires: pungi >= 4.1.20 -BuildRequires: python2-createrepo_c -BuildRequires: python2-devel -BuildRequires: python2-dnf -BuildRequires: python2-dogpile-cache -BuildRequires: python2-koji -BuildRequires: python2-librepo -BuildRequires: python2-pillow BuildRequires: python3-createrepo_c BuildRequires: python3-devel BuildRequires: python3-dnf @@ -123,11 +82,9 @@ Client tools for interacting with bodhi. %package composer Summary: Bodhi composer backend -Requires: %{py2_dist jinja2} Requires: bodhi-server == %{version}-%{release} Requires: pungi >= 4.1.20 -Requires: python2-createrepo_c -Requires: python2-hawkey +Requires: python3-createrepo_c Requires: skopeo @@ -136,28 +93,6 @@ The Bodhi composer is the component that publishes Bodhi artifacts to repositories. -%package docs -Summary: Bodhi documentation -Group: Applications/Internet - -Requires: filesystem - - -%description docs -Bodhi documentation. - - -%package -n python2-bodhi -Summary: Common files shared by bodhi-client and bodhi-server -Group: Applications/Internet - -%{?python_provide:%python_provide python2-bodhi} - - -%description -n python2-bodhi -Common files shared by bodhi-client and bodhi-server. - - %package -n python3-bodhi Summary: Common files shared by bodhi-client and bodhi-server Group: Applications/Internet @@ -169,26 +104,6 @@ Group: Applications/Internet Common files shared by bodhi-client and bodhi-server. -%package -n python2-bodhi-client -Summary: REST API bindings for Python. - -Requires: %{py2_dist click} -Requires: %{py2_dist iniparse} -Requires: %{py2_dist kitchen} -Requires: %{py2_dist python-fedora} >= 0.9 -Requires: %{py2_dist six} -Requires: koji -Requires: python2-bodhi == %{version}-%{release} -Requires: python2-dnf -Requires: python2-koji - -%{?python_provide:%python_provide python2-bodhi-client} - - -%description -n python2-bodhi-client -REST API bindings for Python. - - %package -n python3-bodhi-client Summary: REST API bindings for Python. @@ -209,47 +124,30 @@ Requires: python3-koji REST API bindings for Python. +%package -n python3-bodhi-messages +Summary: Python convenience package for interacting with Bodhi messages + +Requires: python3-bodhi == %{version}-%{release} + +%{?python_provide:%python_provide python3-bodhi-messages} + + +%description -n python3-bodhi-messages +Python convenience package for interacting with Bodhi messages. + + %package server Summary: A modular framework that facilitates publishing software updates -Group: Applications/Internet -Requires: %{py2_dist alembic} -Requires: %{py2_dist arrow} -Requires: %{py2_dist bleach} -Requires: %{py2_dist click} -Requires: %{py2_dist colander} -Requires: %{py2_dist cornice} >= 3.1.0 -Requires: %{py2_dist cryptography} -Requires: %{py2_dist fedmsg} -Requires: %{py2_dist feedgen} -Requires: %{py2_dist kitchen} -Requires: %{py2_dist markdown} -Requires: %{py2_dist psycopg2} -Requires: %{py2_dist pylibravatar} -Requires: %{py2_dist pyramid-fas-openid} -Requires: %{py2_dist pyramid-mako} -Requires: %{py2_dist pyramid-tm} -Requires: %{py2_dist pyramid} -Requires: %{py2_dist python-bugzilla} -Requires: %{py2_dist python-fedora} -Requires: %{py2_dist python-openid} -Requires: %{py2_dist simplemediawiki} -Requires: %{py2_dist six} -Requires: %{py2_dist sqlalchemy} -Requires: %{py2_dist waitress} -Requires: python2-bodhi-client == %{version}-%{release} -Requires: fedmsg -Requires: fedmsg-base +Requires: python3-bodhi-client == %{version}-%{release} +Requires: python3-bodhi-messages == %{version}-%{release} +Requires: fedora-messaging Requires: git Requires: httpd Requires: intltool -Requires: liberation-mono-fonts -Requires: mod_wsgi -Requires: packagedb-cli -Requires: python2-dogpile-cache -Requires: python2-koji -Requires: python2-librepo -Requires: python2-pillow +Requires: python3-koji +Requires: python3-librepo +Requires: python3-mod_wsgi Provides: bundled(aajohan-comfortaa-fonts) Provides: bundled(abattis-cantarell-fonts) @@ -291,31 +189,16 @@ mv devel/development.ini.example development.ini %build -%py2_build %py3_build -make %{?_smp_mflags} -C docs html -make %{?_smp_mflags} -C docs man - %install -# We want the /usr/bin/bodhi CLI to be Python 3 now, but we don't want the server CLIs to be Python -# 3 yet. An easy way to do this is to install Python 3 Bodhi first, save the /usr/bin/bodhi it -# generates, then do the Python 2 install (to overwrite the common files). Afterwards, we'll move -# the Python 3 /usr/bin/bodhi back into place. %py3_install -# We aren't ready to support Bodhi server on Python 3 yet, so let's just nuke it for now. -rm -rf %{buildroot}/usr/lib/python%{python3_version}/site-packages/bodhi/server/ -rm -rf %{buildroot}/usr/lib/python%{python3_version}/site-packages/bodhi_server-*.egg-info -# Let's save /usr/bin/bodhi from being overwritten, since we want it to be the Python 3 version. -cp %{buildroot}/usr/bin/bodhi bodhi-py3 -%py2_install %{__mkdir_p} %{buildroot}/var/lib/bodhi %{__mkdir_p} %{buildroot}/var/cache/bodhi %{__mkdir_p} %{buildroot}%{_sysconfdir}/bash_completion.d %{__mkdir_p} %{buildroot}%{_sysconfdir}/httpd/conf.d -%{__mkdir_p} %{buildroot}%{_sysconfdir}/fedmsg.d %{__mkdir_p} %{buildroot}%{_sysconfdir}/bodhi %{__mkdir_p} %{buildroot}%{_datadir}/%{name} %{__mkdir_p} -m 0755 %{buildroot}/%{_localstatedir}/log/bodhi @@ -326,39 +209,14 @@ cp %{buildroot}/usr/bin/bodhi bodhi-py3 %{__install} -m 640 alembic.ini %{buildroot}%{_sysconfdir}/%{name}/alembic.ini %{__install} apache/%{name}.wsgi %{buildroot}%{_datadir}/%{name}/%{name}.wsgi -%{__install} -m 644 fedmsg.d/masher.py %{buildroot}%{_sysconfdir}/fedmsg.d/masher.py -%{__install} -m 644 fedmsg.d/bodhi.py %{buildroot}%{_sysconfdir}/fedmsg.d/bodhi.py - -install -d %{buildroot}%{_mandir}/man1 -install -pm0644 docs/_build/man/*.1 %{buildroot}%{_mandir}/man1/ - -if [ ! -e %{buildroot}%{python2_sitelib}/%{name}/server/static/bootstrap ]; then - # setuptools on EL 7 does not install bootstrap, so we need to symlink it - ln -s ./bootstrap-3.1.1-fedora \ - %{buildroot}%{python2_sitelib}/%{name}/server/static/bootstrap -fi; - -# Restore the Python 3 version of /usr/bin/bodhi. -mv bodhi-py3 %{buildroot}/usr/bin/bodhi - %check -# setuptools on EL 7 doesn't install bootstrap. This test ensures that bootstrap is present. -if [ ! -e %{buildroot}%{python2_sitelib}/%{name}/server/static/bootstrap ]; then - echo "%{buildroot}%{python2_sitelib}/%{name}/server/static/bootstrap is missing, failing!" - /usr/bin/false -fi; - # The tests need bodhi to be installed to pass. Let's build a virtualenv so we can install bodhi # there. -virtualenv --python=%{__python2} --system-site-packages --no-pip --never-download .test-virtualenv-2 virtualenv --python=%{__python3} --system-site-packages --no-pip --never-download .test-virtualenv-3 -.test-virtualenv-2/bin/python2 setup.py develop -.test-virtualenv-2/bin/python2 /usr/bin/py.test-2 - .test-virtualenv-3/bin/python3 setup.py develop -.test-virtualenv-3/bin/python3 /usr/bin/py.test-3 +.test-virtualenv-3/bin/python3 /usr/bin/py.test-3 -v bodhi/tests %pre server @@ -372,27 +230,16 @@ virtualenv --python=%{__python3} --system-site-packages --no-pip --never-downloa %doc README.rst %{_sysconfdir}/bash_completion.d/bodhi-complete.sh %{_bindir}/bodhi -%{_mandir}/man1/bodhi.1* %files composer %license COPYING %doc README.rst -%{python2_sitelib}/%{name}/server/consumers/masher.py* -%{python2_sitelib}/%{name}/server/metadata.py* - - -%files docs -%license COPYING -%doc docs/_build/html/ README.rst - - -%files -n python2-bodhi -%license COPYING -%doc README.rst -%dir %{python2_sitelib}/%{name}/ -%{python2_sitelib}/%{name}/__init__.py* -%{python2_sitelib}/%{name}-%{version}-py%{python2_version}.egg-info +%{python3_sitelib}/%{name}/server/consumers/composer.py +# The __pycache__ folder itself is owned by bodhi-server. +%{python3_sitelib}/%{name}/server/consumers/__pycache__/composer.* +%{python3_sitelib}/%{name}/server/metadata.py +%{python3_sitelib}/%{name}/server/__pycache__/metadata.* %files -n python3-bodhi @@ -404,18 +251,18 @@ virtualenv --python=%{__python3} --system-site-packages --no-pip --never-downloa %{python3_sitelib}/%{name}-%{version}-py%{python3_version}.egg-info -%files -n python2-bodhi-client +%files -n python3-bodhi-client %license COPYING %doc README.rst -%{python2_sitelib}/%{name}/client -%{python2_sitelib}/%{name}_client-%{version}-py%{python2_version}.egg-info +%{python3_sitelib}/%{name}/client +%{python3_sitelib}/%{name}_client-%{version}-py%{python3_version}.egg-info -%files -n python3-bodhi-client +%files -n python3-bodhi-messages %license COPYING %doc README.rst -%{python3_sitelib}/%{name}/client -%{python3_sitelib}/%{name}_client-%{version}-py%{python3_version}.egg-info +%{python3_sitelib}/%{name}/messages +%{python3_sitelib}/%{name}_messages-%{version}-py%{python3_version}.egg-info %files server @@ -423,34 +270,35 @@ virtualenv --python=%{__python3} --system-site-packages --no-pip --never-downloa %doc README.rst %{_bindir}/bodhi-approve-testing %{_bindir}/bodhi-check-policies -%{_bindir}/bodhi-clean-old-mashes -%{_bindir}/bodhi-dequeue-stable +%{_bindir}/bodhi-clean-old-composes %{_bindir}/bodhi-expire-overrides -%{_bindir}/bodhi-manage-releases -%{_bindir}/bodhi-monitor-composes %{_bindir}/bodhi-push %{_bindir}/bodhi-sar +%{_bindir}/bodhi-shell %{_bindir}/bodhi-skopeo-lite %{_bindir}/bodhi-untag-branched %{_bindir}/initialize_bodhi_db %config(noreplace) %{_sysconfdir}/bodhi/alembic.ini %config(noreplace) %{_sysconfdir}/httpd/conf.d/bodhi.conf -%config(noreplace) %{_sysconfdir}/fedmsg.d/* %dir %{_sysconfdir}/bodhi/ -%{python2_sitelib}/%{name}/server -%{python2_sitelib}/%{name}_server-%{version}-py%{python2_version}.egg-info -%{_mandir}/man1/bodhi-*.1* -%{_mandir}/man1/initialize_bodhi_db.1* +%{python3_sitelib}/%{name}/server +%{python3_sitelib}/bodhi_server-%{version}-py%{python3_version}.egg-info %attr(-,bodhi,root) %{_datadir}/%{name} %attr(-,bodhi,bodhi) %config(noreplace) %{_sysconfdir}/bodhi/* %attr(0775,bodhi,bodhi) %{_localstatedir}/cache/bodhi # These excluded files are in the bodhi-consumers package so don't include them here. -%exclude %{python2_sitelib}/%{name}/server/consumers/masher.py* -%exclude %{python2_sitelib}/%{name}/server/metadata.py* +%exclude %{python3_sitelib}/%{name}/server/consumers/composer.py +%exclude %{python3_sitelib}/%{name}/server/consumers/__pycache__/composer.* +%exclude %{python3_sitelib}/%{name}/server/metadata.py +%exclude %{python3_sitelib}/%{name}/server/__pycache__/metadata.* %changelog -* Mon Dec 17 2018 Randy Barlow - 3.12.0-1 +* Mon Jun 03 2019 Randy Barlow - 4.0.2-1 +- Update to 4.0.2 (#1715576). +- Drop support for Python 2. +- https://github.com/fedora-infra/bodhi/releases/tag/4.0.2 + - Upgrade to 3.12.0. - https://github.com/fedora-infra/bodhi/releases/tag/3.12.0 diff --git a/sources b/sources index 5232991..77ec42a 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (bodhi-3.12.0.tar.gz) = 24eb18ac38932d8beb00867419f82ef070aaee9eda1487b97f6771dc1cef063569816dfd6258b683e693e7112d09ef7fe44ad22fe4dff18f137c267e9380b0a4 +SHA512 (bodhi-4.0.2.tar.gz) = 04dbc8e123d549a8bfbf586efde31121208276d692559519a12c3c4acec468910a97a3bb05accfadf6e843c8a2811734cc19030f4372fbae6fde8b98015fad33