From python3-foo packages automatically generate python3.X-foo Obsoletes tags on CentOS/RHEL
				
					
				
			Resolves: rhbz#1990421
This commit is contained in:
		
							parent
							
								
									a9fc87a178
								
							
						
					
					
						commit
						5afdda71e2
					
				| @ -1,7 +1,7 @@ | |||||||
| Name:           python-rpm-generators | Name:           python-rpm-generators | ||||||
| Summary:        Dependency generators for Python RPMs | Summary:        Dependency generators for Python RPMs | ||||||
| Version:        12 | Version:        12 | ||||||
| Release:        7%{?dist} | Release:        8%{?dist} | ||||||
| 
 | 
 | ||||||
| # Originally all those files were part of RPM, so license is kept here | # Originally all those files were part of RPM, so license is kept here | ||||||
| License:        GPLv2+ | License:        GPLv2+ | ||||||
| @ -25,7 +25,7 @@ Requires:       python3-packaging | |||||||
| # We have parametric macro generators, we need RPM 4.16 (4.15.90+ is 4.16 alpha) | # We have parametric macro generators, we need RPM 4.16 (4.15.90+ is 4.16 alpha) | ||||||
| Requires:       rpm > 4.15.90-0 | Requires:       rpm > 4.15.90-0 | ||||||
| # This contains the Lua functions we use: | # This contains the Lua functions we use: | ||||||
| Requires:       python-srpm-macros >= 3.8-5 | Requires:       python-srpm-macros >= 3.9-49 | ||||||
| 
 | 
 | ||||||
| %description -n python3-rpm-generators | %description -n python3-rpm-generators | ||||||
| %{summary}. | %{summary}. | ||||||
| @ -47,6 +47,11 @@ install -Dpm0755 -t %{buildroot}%{_rpmconfigdir} *.py | |||||||
| %{_rpmconfigdir}/pythonbundles.py | %{_rpmconfigdir}/pythonbundles.py | ||||||
| 
 | 
 | ||||||
| %changelog | %changelog | ||||||
|  | * Wed Jan 26 2022 Tomas Orsava <torsava@redhat.com> - 12-8 | ||||||
|  | - From `python3-foo` packages automatically generate `python3.X-foo` Obsoletes | ||||||
|  |   tags on CentOS/RHEL | ||||||
|  | - Resolves: rhbz#1990421 | ||||||
|  | 
 | ||||||
| * Tue Aug 10 2021 Mohan Boddu <mboddu@redhat.com> - 12-7 | * Tue Aug 10 2021 Mohan Boddu <mboddu@redhat.com> - 12-7 | ||||||
| - Rebuilt for IMA sigs, glibc 2.34, aarch64 flags | - Rebuilt for IMA sigs, glibc 2.34, aarch64 flags | ||||||
|   Related: rhbz#1991688 |   Related: rhbz#1991688 | ||||||
|  | |||||||
| @ -16,4 +16,27 @@ | |||||||
|     end |     end | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | %__pythonname_obsoletes() %{?rhel:%{lua: | ||||||
|  |     -- On CentOS/RHEL we automatically generate Obsoletes tags in the form: | ||||||
|  |     --   package python3-foo -> Obsoletes: python3.XY-foo | ||||||
|  |     -- This provides a clean upgrade path between major versions of CentOS/RHEL. | ||||||
|  |     -- In Fedora this is not needed as we don't ship ecosystem packages | ||||||
|  |     -- for alternative Python interpreters. | ||||||
|  |     local python = require 'fedora.srpm.python' | ||||||
|  |     -- this macro is called for each file in a package, the path being in %1 | ||||||
|  |     -- but we don't need to know the path, so we would get for each file: Macro %1 defined but not used within scope | ||||||
|  |     -- in here, we expand %name conditionally on %1 to suppress the warning | ||||||
|  |     local name = rpm.expand('%{?1:%{name}}') | ||||||
|  |     local evr = rpm.expand('%{?epoch:%{epoch}:}%{version}-%{release}') | ||||||
|  |     local obsoletes = python.python_altobsoletes_once(name, evr) | ||||||
|  |     -- obsoletes is either an array/table or nil | ||||||
|  |     -- nil means the function was already called with the same arguments: | ||||||
|  |     --   either with another file in %1 or manually via %py_provides | ||||||
|  |     if obsoletes then | ||||||
|  |       for i, obsolete in ipairs(obsoletes) do | ||||||
|  |           print(obsolete .. ' ') | ||||||
|  |         end | ||||||
|  |     end | ||||||
|  | }} | ||||||
|  | 
 | ||||||
| %__pythonname_path ^/ | %__pythonname_path ^/ | ||||||
|  | |||||||
| @ -34,3 +34,41 @@ test $(rpm -qp --provides ${RPMDIR}/python3-python_provide-0-0.noarch.rpm | grep | |||||||
| echo "Provides for python3-py_provides" | echo "Provides for python3-py_provides" | ||||||
| rpm -qp --provides ${RPMDIR}/python3-py_provides-0-0.noarch.rpm | rpm -qp --provides ${RPMDIR}/python3-py_provides-0-0.noarch.rpm | ||||||
| test $(rpm -qp --provides ${RPMDIR}/python3-py_provides-0-0.noarch.rpm | grep python-py_provides | wc -l) -eq 1 | test $(rpm -qp --provides ${RPMDIR}/python3-py_provides-0-0.noarch.rpm | grep python-py_provides | wc -l) -eq 1 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | echo "Obsoletes for python${X_Y}-foo" | ||||||
|  | rpm -qp --obsoletes ${RPMDIR}/python${X_Y}-foo-0-0.noarch.rpm | ||||||
|  | test $(rpm -qp --obsoletes ${RPMDIR}/python${X_Y}-foo-0-0.noarch.rpm | wc -l) -eq 0 | ||||||
|  | 
 | ||||||
|  | echo "Obsoletes for python3-foo" | ||||||
|  | rpm -qp --obsoletes ${RPMDIR}/python3-foo-0-0.noarch.rpm | ||||||
|  | rpm -qp --obsoletes ${RPMDIR}/python3-foo-0-0.noarch.rpm        | grep -q '^python39-foo < 0-0$' | ||||||
|  | test $(rpm -qp --obsoletes ${RPMDIR}/python3-foo-0-0.noarch.rpm | wc -l) -eq 1 | ||||||
|  | 
 | ||||||
|  | echo "Obsoletes for python2-foo" | ||||||
|  | rpm -qp --obsoletes ${RPMDIR}/python2-foo-0-0.noarch.rpm | ||||||
|  | test $(rpm -qp --obsoletes ${RPMDIR}/python2-foo-0-0.noarch.rpm | wc -l) -eq 0 | ||||||
|  | 
 | ||||||
|  | echo "Obsoletes for python-foo" | ||||||
|  | rpm -qp --obsoletes ${RPMDIR}/python-foo-0-0.noarch.rpm | ||||||
|  | test $(rpm -qp --obsoletes ${RPMDIR}/python-foo-0-0.noarch.rpm | wc -l) -eq 0 | ||||||
|  | 
 | ||||||
|  | echo "Obsoletes for python3.5-foo" | ||||||
|  | rpm -qp --obsoletes ${RPMDIR}/python3.5-foo-0-0.noarch.rpm | ||||||
|  | test $(rpm -qp --obsoletes ${RPMDIR}/python3.5-foo-0-0.noarch.rpm | wc -l) -eq 0 | ||||||
|  | 
 | ||||||
|  | echo "Obsoletes for python3-python_provide" | ||||||
|  | rpm -qp --obsoletes ${RPMDIR}/python3-python_provide-0-0.noarch.rpm | ||||||
|  | rpm -qp --obsoletes ${RPMDIR}/python3-python_provide-0-0.noarch.rpm     | grep -q '^python-python_provide < 0-0$' | ||||||
|  | rpm -qp --obsoletes ${RPMDIR}/python3-python_provide-0-0.noarch.rpm     | grep -q '^python39-python_provide < 0-0$' | ||||||
|  | test $(rpm -qp --obsoletes ${RPMDIR}/python3-python_provide-0-0.noarch.rpm | grep python-python_provide | wc -l) -eq 1 | ||||||
|  | test $(rpm -qp --obsoletes ${RPMDIR}/python3-python_provide-0-0.noarch.rpm | grep python39-python_provide | wc -l) -eq 1 | ||||||
|  | test $(rpm -qp --obsoletes ${RPMDIR}/python3-python_provide-0-0.noarch.rpm | wc -l) -eq 2 | ||||||
|  | 
 | ||||||
|  | echo "Obsoletes for python3-py_provides" | ||||||
|  | rpm -qp --obsoletes ${RPMDIR}/python3-py_provides-0-0.noarch.rpm | ||||||
|  | rpm -qp --obsoletes ${RPMDIR}/python3-py_provides-0-0.noarch.rpm        | grep -q '^python-py_provides < 0-0$' && exit 1 || true | ||||||
|  | rpm -qp --obsoletes ${RPMDIR}/python3-py_provides-0-0.noarch.rpm        | grep -q '^python39-py_provides < 0-0$' | ||||||
|  | test $(rpm -qp --obsoletes ${RPMDIR}/python3-py_provides-0-0.noarch.rpm | grep python39-py_provides | wc -l) -eq 1 | ||||||
|  | test $(rpm -qp --obsoletes ${RPMDIR}/python3-py_provides-0-0.noarch.rpm | wc -l) -eq 1 | ||||||
|  | 
 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user