From 542909e396dd38aa6ed71303fad2c40c654f4a63 Mon Sep 17 00:00:00 2001 From: Kevin Fenzi Date: Sun, 2 Aug 2020 12:19:41 -0700 Subject: [PATCH] Update to 1.22.0. Remove python2 suppport, move to python3 on everything except epel6/7 --- .gitignore | 1 + koji.spec | 389 ++--------------------------------------------------- sources | 2 +- 3 files changed, 14 insertions(+), 378 deletions(-) diff --git a/.gitignore b/.gitignore index 7d4defd..f491e48 100644 --- a/.gitignore +++ b/.gitignore @@ -25,3 +25,4 @@ koji-1.4.0.tar.bz2 /koji-1.20.1.tar.bz2 /koji-1.21.0.tar.bz2 /koji-1.21.1.tar.bz2 +/koji-1.22.0.tar.bz2 diff --git a/koji.spec b/koji.spec index e4e8864..c378234 100644 --- a/koji.spec +++ b/koji.spec @@ -2,84 +2,14 @@ # https://fedoraproject.org/wiki/Changes/No_more_automagic_Python_bytecompilation_phase_2 %global _python_bytecompile_extra 0 -%bcond_without python2 -%bcond_without python3 - -# We can build varying amounts of Koji for python2 and python3 based on -# the py[23]_support macro values. Valid values are: -# undefined or 0 -- do not build -# 1 -- build just the cli and lib -# 2 -- build everything we can -# For executable scripts, py3 wins if we build it -# The following rules tweak these settings based on options and environment - -# Default to building both fully -%define py2_support 2 -%define py3_support 2 - -%if 0%{?rhel} >= 8 -# and no python2 on rhel8+ -%define py2_support 0 -%else -%if 0%{?rhel} -# No python3 for older rhel -%define py3_support 0 -%endif -%endif - -%if 0%{?fedora} > 30 -# no py2 after F31 -%define py2_support 0 -%define py3_support 2 -%else -# Keep some minimal python2 in f30 for now -%if 0%{?fedora} == 30 -%define py2_support 1 -%define py3_support 2 -%else -%if 0%{?fedora} -# match what the older Fedoras already have -%define py2_support 2 -%define py3_support 1 -%endif -%endif -%endif - -# Lastly enforce the bcond parameters -%if %{without python2} -%define py2_support 0 -%endif -%if %{without python3} -%define py3_support 0 -%endif - -%if ! %{py2_support} -# use python3 %define __python %{__python3} -%endif - -# Compatibility with RHEL. These macros have been added to EPEL but -# not yet to RHEL proper. -# https://bugzilla.redhat.com/show_bug.cgi?id=1307190 -%{!?__python2: %global __python2 /usr/bin/python2} -%{!?python2_sitelib: %global python2_sitelib %(%{__python2} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")} -%{!?python2_sitearch: %global python2_sitearch %(%{__python2} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")} -%{!?py2_build: %global py2_build %{expand: CFLAGS="%{optflags}" %{__python2} setup.py %{?py_setup_args} build --executable="%{__python2} -s"}} -%{!?py2_install: %global py2_install %{expand: CFLAGS="%{optflags}" %{__python2} setup.py %{?py_setup_args} install -O1 --skip-build --root %{buildroot}}} # If the definition isn't available for python3_pkgversion, define it %{?!python3_pkgversion:%global python3_pkgversion 3} -%if 0%{?rhel} && 0%{?rhel} < 7 -%global use_systemd 0 -%global install_opt TYPE=sysv -%else -%global use_systemd 1 -%endif - Name: koji -Version: 1.21.1 -Release: 2%{?dist} +Version: 1.22.0 +Release: 1%{?dist} # the included arch lib from yum's rpmUtils is GPLv2+ License: LGPLv2 and GPLv2+ Summary: Build system tools @@ -92,61 +22,24 @@ Source0: https://releases.pagure.org/koji/koji-%{version}.tar.bz2 Patch100: fedora-config.patch BuildArch: noarch -%if 0%{py3_support} Requires: python%{python3_pkgversion}-%{name} = %{version}-%{release} Requires: python%{python3_pkgversion}-libcomps -%else -Requires: python2-%{name} = %{version}-%{release} -%if 0%{?fedora} || 0%{?rhel} >= 7 Requires: python-libcomps -%endif -%endif -%if %{use_systemd} BuildRequires: systemd BuildRequires: pkgconfig -%endif %description Koji is a system for building and tracking RPMS. The base package contains shared libraries and the command-line interface. -%if 0%{py2_support} -%package -n python2-%{name} -Summary: Build system tools python library -%{?python_provide:%python_provide python2-%{name}} -BuildRequires: python2-devel -%if 0%{?fedora} >= 25 || 0%{?rhel} >= 8 -Requires: python2-rpm -%else -Requires: rpm-python -%endif -Requires: pyOpenSSL -Requires: python-requests -%if 0%{?fedora} >= 23 || 0%{?rhel} >= 7 -Requires: python-requests-kerberos -%else -Requires: python-krbV >= 1.0.13 -%endif -Requires: python-dateutil -Requires: python-six - -%description -n python2-%{name} -desc -%endif - -%if 0%{py3_support} %package -n python%{python3_pkgversion}-%{name} Summary: Build system tools python library %{?python_provide:%python_provide python%{python3_pkgversion}-%{name}} BuildRequires: python%{python3_pkgversion}-devel -%if 0%{?fedora} >= 25 || 0%{?rhel} >= 8 Requires: python%{python3_pkgversion}-rpm -%else -Requires: rpm-python%{python3_pkgversion} -%endif Requires: python%{python3_pkgversion}-pyOpenSSL Requires: python%{python3_pkgversion}-requests -Requires: python%{python3_pkgversion}-requests-kerberos +Requires: python%{python3_pkgversion}-requests-gssapi Requires: python%{python3_pkgversion}-dateutil Requires: python%{python3_pkgversion}-six # Since we don't have metadata here, provide the 'normal' python provides manually. @@ -154,20 +47,9 @@ Provides: python%{python3_version}dist(%{name}) = %{version} Provides: python%{python3_pkgversion}dist(%{name}) = %{version} %description -n python%{python3_pkgversion}-%{name} -desc -%endif +Koji is a system for building and tracking RPMS. +This subpackage provides python functions and libraries. -%if 0%{py2_support} -%package -n python2-%{name}-cli-plugins -Summary: Koji client plugins -License: LGPLv2 -Requires: python2-%{name} = %{version}-%{release} - -%description -n python2-%{name}-cli-plugins -Plugins to the koji command-line interface -%endif - -%if 0%{py3_support} %package -n python%{python3_pkgversion}-%{name}-cli-plugins Summary: Koji client plugins License: LGPLv2 @@ -175,7 +57,6 @@ Requires: python%{python3_pkgversion}-%{name} = %{version}-%{release} %description -n python%{python3_pkgversion}-%{name}-cli-plugins Plugins to the koji command-line interface -%endif %package hub Summary: Koji XMLRPC interface @@ -190,43 +71,19 @@ Suggests: python%{python3_pkgversion}-%{name}-hub-plugins %description hub koji-hub is the XMLRPC interface to the koji database -%if 0%{py2_support} > 1 -%package -n python2-%{name}-hub -Summary: Koji XMLRPC interface -License: LGPLv2 and GPLv2 -# rpmdiff lib (from rpmlint) is GPLv2 (only) -Requires: httpd -Requires: mod_wsgi -%if 0%{?fedora} >= 21 || 0%{?rhel} >= 7 -Requires: mod_auth_gssapi -%endif -Requires: python-psycopg2 -Requires: python2-%{name} = %{version}-%{release} -# py2 xor py3 -Provides: %{name}-hub-code = %{version}-%{release} - -%description -n python2-%{name}-hub -koji-hub is the XMLRPC interface to the koji database -%endif - -%if 0%{py3_support} > 1 %package -n python%{python3_pkgversion}-%{name}-hub Summary: Koji XMLRPC interface License: LGPLv2 and GPLv2 # rpmdiff lib (from rpmlint) is GPLv2 (only) Requires: httpd Requires: python%{python3_pkgversion}-mod_wsgi -%if 0%{?fedora} >= 21 || 0%{?rhel} >= 7 Requires: mod_auth_gssapi -%endif Requires: python%{python3_pkgversion}-psycopg2 Requires: python%{python3_pkgversion}-%{name} = %{version}-%{release} -# py2 xor py3 Provides: %{name}-hub-code = %{version}-%{release} %description -n python%{python3_pkgversion}-%{name}-hub koji-hub is the XMLRPC interface to the koji database -%endif %package hub-plugins Summary: Koji hub plugins @@ -239,20 +96,6 @@ Suggests: python%{python3_pkgversion}-%{name}-hub-plugins %description hub-plugins Plugins to the koji XMLRPC interface -%if 0%{py2_support} > 1 -%package -n python2-%{name}-hub-plugins -Summary: Koji hub plugins -License: LGPLv2 -Requires: python2-%{name}-hub = %{version}-%{release} -Requires: python2-qpid-proton -Requires: cpio -Provides: %{name}-hub-plugins-code = %{version}-%{release} - -%description -n python2-%{name}-hub-plugins -Plugins to the koji XMLRPC interface -%endif - -%if 0%{py3_support} > 1 %package -n python%{python3_pkgversion}-%{name}-hub-plugins Summary: Koji hub plugins License: LGPLv2 @@ -263,7 +106,6 @@ Provides: %{name}-hub-plugins-code = %{version}-%{release} %description -n python%{python3_pkgversion}-%{name}-hub-plugins Plugins to the koji XMLRPC interface -%endif %package builder-plugins Summary: Koji builder plugins @@ -276,41 +118,22 @@ Plugins for the koji build daemon %package builder Summary: Koji RPM builder daemon -%if 0%{py3_support} > 1 License: LGPLv2 -%else -License: LGPLv2 and GPLv2+ -#mergerepos (from createrepo) is GPLv2+ -%endif Requires: mock >= 0.9.14 Requires(pre): /usr/sbin/useradd Requires: squashfs-tools -%if %{use_systemd} Requires(post): systemd Requires(preun): systemd Requires(postun): systemd -%else -Requires(post): /sbin/chkconfig -Requires(post): /sbin/service -Requires(preun): /sbin/chkconfig -Requires(preun): /sbin/service -%endif Requires: /usr/bin/cvs Requires: /usr/bin/svn Requires: /usr/bin/git Requires: createrepo_c >= 0.10.0 -%if 0%{py3_support} > 1 Requires: python%{python3_pkgversion}-%{name} = %{version}-%{release} Requires: python%{python3_pkgversion}-librepo Requires: python%{python3_pkgversion}-multilib Requires: python%{python3_pkgversion}-cheetah Requires: python%{python3_pkgversion}-pycdio -%else -Requires: python2-%{name} = %{version}-%{release} -Requires: python2-multilib -Requires: python-cheetah -Requires: pycdio -%endif %description builder koji-builder is the daemon that runs on build machines and executes @@ -320,23 +143,11 @@ tasks that come through the Koji system. Summary: Koji virtual machine management daemon License: LGPLv2 Requires: %{name} = %{version}-%{release} -%if %{use_systemd} Requires(post): systemd Requires(preun): systemd Requires(postun): systemd -%else -Requires(post): /sbin/chkconfig -Requires(post): /sbin/service -Requires(preun): /sbin/chkconfig -Requires(preun): /sbin/service -%endif -%if 0%{py3_support} > 1 Requires: python%{python3_pkgversion}-libvirt Requires: python%{python3_pkgversion}-libxml2 -%else -Requires: libvirt-python -Requires: libxml2-python -%endif Requires: /usr/bin/virt-clone Requires: qemu-img @@ -348,16 +159,10 @@ virtual machine. This package is not required for most installations. Summary: Koji Utilities License: LGPLv2 Requires: %{name} = %{version}-%{release} -%if 0%{py3_support} > 1 Requires: python%{python3_pkgversion}-psycopg2 -%else -Requires: python-psycopg2 -%endif -%if %{use_systemd} Requires(post): systemd Requires(preun): systemd Requires(postun): systemd -%endif %description utils Utilities for the Koji system @@ -374,29 +179,6 @@ Suggests: python%{python3_pkgversion}-%{name}-web %description web koji-web is a web UI to the Koji system. -%if 0%{py2_support} > 1 -%package -n python2-%{name}-web -Summary: Koji Web UI -License: LGPLv2 -%{?python_provide:%python_provide python2-%{name}-web} -Requires: httpd -Requires: mod_wsgi -%if 0%{?fedora} >= 21 || 0%{?rhel} >= 7 -Requires: mod_auth_gssapi -%else -Requires: mod_auth_kerb -Requires: python-krbV >= 1.0.13 -%endif -Requires: python-psycopg2 -Requires: python-cheetah -Requires: python2-%{name} = %{version}-%{release} -Provides: %{name}-web-code = %{version}-%{release} - -%description -n python2-%{name}-web -koji-web is a web UI to the Koji system. -%endif - -%if 0%{py3_support} > 1 %package -n python%{python3_pkgversion}-%{name}-web Summary: Koji Web UI License: LGPLv2 @@ -411,7 +193,6 @@ Provides: %{name}-web-code = %{version}-%{release} %description -n python%{python3_pkgversion}-%{name}-web koji-web is a web UI to the Koji system. -%endif %prep %autosetup -p1 @@ -422,50 +203,14 @@ koji-web is a web UI to the Koji system. %install -%if 0%{py2_support} < 2 && 0%{py3_support} < 2 -echo "At least one python must be built with full support" -exit 1 -%endif - -# python2 build -%if 0%{py2_support} > 1 -make DESTDIR=$RPM_BUILD_ROOT PYTHON=%{__python2} %{?install_opt} install -# koji-sidetag-cleanup has a python3 shbang, fix for python2 -sed -i 's|#!/usr/bin/python3|#!/usr/bin/python2|' $RPM_BUILD_ROOT/usr/sbin/koji-sidetag-cleanup -%else -%if 0%{py2_support} -for d in koji cli plugins ; do - pushd $d - make DESTDIR=$RPM_BUILD_ROOT KOJI_MINIMAL=1 PYTHON=%{__python2} %{?install_opt} install - popd -done -%endif -%endif - - -# python3 build -%if 0%{py3_support} > 1 make DESTDIR=$RPM_BUILD_ROOT PYTHON=%{__python3} %{?install_opt} install # alter python interpreter in koji CLI scripts='%{_bindir}/koji %{_sbindir}/kojid %{_sbindir}/kojira %{_sbindir}/koji-shadow - %{_sbindir}/koji-gc %{_sbindir}/kojivmd %{_sbindir}/koji-sweep-db' + %{_sbindir}/koji-gc %{_sbindir}/kojivmd %{_sbindir}/koji-sweep-db %{_sbindir}/koji-sidetag-cleanup' for fn in $scripts ; do sed -i 's|#!/usr/bin/python2|#!/usr/bin/python3|' $RPM_BUILD_ROOT$fn done -%else -%if 0%{py3_support} -# minimal -for d in koji cli plugins ; do - pushd $d - make DESTDIR=$RPM_BUILD_ROOT KOJI_MINIMAL=1 PYTHON=%{__python3} %{?install_opt} install - popd -done -# alter python interpreter in koji CLI -sed -i 's|#!/usr/bin/python2|#!/usr/bin/python3|' $RPM_BUILD_ROOT/usr/bin/koji -%endif -%endif -%if 0%{?fedora} >= 28 # handle extra byte compilation extra_dirs=' %{_prefix}/lib/koji-builder-plugins @@ -473,22 +218,9 @@ extra_dirs=' %{_datadir}/koji-hub %{_datadir}/koji-web/lib/kojiweb %{_datadir}/koji-web/scripts' -%if 0%{py2_support} > 1 -for fn in $extra_dirs ; do - %py_byte_compile %{__python2} %{buildroot}$fn -done -%endif -%if 0%{py3_support} > 1 for fn in $extra_dirs ; do %py_byte_compile %{__python3} %{buildroot}$fn done -%endif -%endif - -%if 0%{py2_support} < 2 -# With no python2 support, remove/do not ship internal mergerepos -rm -f %{buildroot}/%{_libexecdir}/kojid/mergerepos -%endif %files %{_bindir}/* @@ -496,33 +228,15 @@ rm -f %{buildroot}/%{_libexecdir}/kojid/mergerepos %dir /etc/koji.conf.d %doc docs Authors COPYING LGPL -%if 0%{py2_support} -%files -n python2-%{name} -%{python2_sitelib}/%{name} -%{python2_sitelib}/koji_cli -%endif - -%if 0%{py3_support} %files -n python%{python3_pkgversion}-koji %{python3_sitelib}/%{name} %{python3_sitelib}/koji_cli -%endif -%if 0%{py2_support} -%files -n python2-%{name}-cli-plugins -%{python2_sitelib}/koji_cli_plugins -# we don't have config files for default plugins yet -#%%dir %%{_sysconfdir}/koji/plugins -#%%config(noreplace) %%{_sysconfdir}/koji/plugins/*.conf -%endif - -%if 0%{py3_support} %files -n python%{python3_pkgversion}-%{name}-cli-plugins %{python3_sitelib}/koji_cli_plugins # we don't have config files for default plugins yet #%%dir %%{_sysconfdir}/koji/plugins #%%config(noreplace) %%{_sysconfdir}/koji/plugins/*.conf -%endif %files hub %config(noreplace) /etc/httpd/conf.d/kojihub.conf @@ -530,54 +244,33 @@ rm -f %{buildroot}/%{_libexecdir}/kojid/mergerepos %config(noreplace) /etc/koji-hub/hub.conf %dir /etc/koji-hub/hub.conf.d %{_sbindir}/koji-sweep-db -%if %{use_systemd} %{_unitdir}/koji-sweep-db.service %{_unitdir}/koji-sweep-db.timer -%endif - -%if 0%{py2_support} > 1 -%files -n python2-%{name}-hub -%{_datadir}/koji-hub/*.py* -%endif -%if 0%{py3_support} > 1 %files -n python%{python3_pkgversion}-%{name}-hub %{_datadir}/koji-hub/*.py %{_datadir}/koji-hub/__pycache__ -%endif %files hub-plugins %dir /etc/koji-hub/plugins %config(noreplace) /etc/koji-hub/plugins/*.conf -%if 0%{py2_support} > 1 -%files -n python2-%{name}-hub-plugins -%{_prefix}/lib/koji-hub-plugins/*.py* -%endif - -%if 0%{py3_support} > 1 %files -n python%{python3_pkgversion}-%{name}-hub-plugins %{_prefix}/lib/koji-hub-plugins/*.py %{_prefix}/lib/koji-hub-plugins/__pycache__ -%endif %files builder-plugins %dir /etc/kojid/plugins %config(noreplace) /etc/kojid/plugins/*.conf %dir %{_prefix}/lib/koji-builder-plugins %{_prefix}/lib/koji-builder-plugins/*.py* -%if 0%{py3_support} > 1 %{_prefix}/lib/koji-builder-plugins/__pycache__ -%endif %files utils %{_sbindir}/kojira -%if %{use_systemd} +%{_unitdir}/koji-gc.service +%{_unitdir}/koji-gc.timer %{_unitdir}/kojira.service -%else -%{_initrddir}/kojira -%config(noreplace) /etc/sysconfig/kojira -%endif %dir /etc/kojira %config(noreplace) /etc/kojira/kojira.conf %{_sbindir}/koji-gc @@ -595,28 +288,12 @@ rm -f %{buildroot}/%{_libexecdir}/kojid/mergerepos %config(noreplace) /etc/httpd/conf.d/kojiweb.conf %dir /etc/kojiweb/web.conf.d -%if 0%{py2_support} > 1 -%files -n python2-%{name}-web -%{_datadir}/koji-web -%endif - -%if 0%{py3_support} > 1 %files -n python%{python3_pkgversion}-%{name}-web %{_datadir}/koji-web -%endif %files builder %{_sbindir}/kojid -%if 0%{py2_support} > 1 -%dir %{_libexecdir}/kojid -%{_libexecdir}/kojid/mergerepos -%endif -%if %{use_systemd} %{_unitdir}/kojid.service -%else -%{_initrddir}/kojid -%config(noreplace) /etc/sysconfig/kojid -%endif %dir /etc/kojid %config(noreplace) /etc/kojid/kojid.conf %attr(-,kojibuilder,kojibuilder) /etc/mock/koji @@ -624,8 +301,6 @@ rm -f %{buildroot}/%{_libexecdir}/kojid/mergerepos %pre builder /usr/sbin/useradd -r -s /bin/bash -G mock -d /builddir -M kojibuilder 2>/dev/null ||: -%if %{use_systemd} - %post builder %systemd_post kojid.service @@ -635,33 +310,14 @@ rm -f %{buildroot}/%{_libexecdir}/kojid/mergerepos %postun builder %systemd_postun kojid.service -%else - -%post builder -/sbin/chkconfig --add kojid - -%preun builder -if [ $1 = 0 ]; then - /sbin/service kojid stop &> /dev/null - /sbin/chkconfig --del kojid -fi -%endif - %files vm %{_sbindir}/kojivmd #dir %%{_datadir}/kojivmd %{_datadir}/kojivmd/kojikamid -%if %{use_systemd} %{_unitdir}/kojivmd.service -%else -%{_initrddir}/kojivmd -%config(noreplace) /etc/sysconfig/kojivmd -%endif %dir /etc/kojivmd %config(noreplace) /etc/kojivmd/kojivmd.conf -%if %{use_systemd} - %post vm %systemd_post kojivmd.service @@ -671,19 +327,6 @@ fi %postun vm %systemd_postun kojivmd.service -%else - -%post vm -/sbin/chkconfig --add kojivmd - -%preun vm -if [ $1 = 0 ]; then - /sbin/service kojivmd stop &> /dev/null - /sbin/chkconfig --del kojivmd -fi - -%if %{use_systemd} - %post utils %systemd_post kojira.service @@ -693,19 +336,11 @@ fi %postun utils %systemd_postun kojira.service -%else -%post utils -/sbin/chkconfig --add kojira -/sbin/service kojira condrestart &> /dev/null || : -%preun utils -if [ $1 = 0 ]; then - /sbin/service kojira stop &> /dev/null || : - /sbin/chkconfig --del kojira -fi -%endif -%endif - %changelog +* Sun Aug 02 2020 Kevin Fenzi - 1.22.0-1 +- Update to 1.22.0. +- Remove python2 suppport, move to python3 on everything except epel6/7 + * Tue Jul 28 2020 Fedora Release Engineering - 1.21.1-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild diff --git a/sources b/sources index 0fc41d1..fd9ed95 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (koji-1.21.1.tar.bz2) = d4ff6355acf383e5e55bacc42d22b9071c7fc3236e4d7817c4dadc5fda6516719b92a0269571803090746e9556dbb15f5f92a425452677e01ee2a9a7c53583bf +SHA512 (koji-1.22.0.tar.bz2) = 546c17e5e4051ef1cc7cb49080514fdc354c7204aea3cdeca9666d6f472b5185f817bb0518227e97fcc9a622cd06b930926f01807fdae2cf17270e9cb84cb212