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 | ||||
| Summary:        Dependency generators for Python RPMs | ||||
| Version:        12 | ||||
| Release:        7%{?dist} | ||||
| Release:        8%{?dist} | ||||
| 
 | ||||
| # Originally all those files were part of RPM, so license is kept here | ||||
| 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) | ||||
| Requires:       rpm > 4.15.90-0 | ||||
| # 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 | ||||
| %{summary}. | ||||
| @ -47,6 +47,11 @@ install -Dpm0755 -t %{buildroot}%{_rpmconfigdir} *.py | ||||
| %{_rpmconfigdir}/pythonbundles.py | ||||
| 
 | ||||
| %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 | ||||
| - Rebuilt for IMA sigs, glibc 2.34, aarch64 flags | ||||
|   Related: rhbz#1991688 | ||||
|  | ||||
| @ -16,4 +16,27 @@ | ||||
|     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 ^/ | ||||
|  | ||||
| @ -34,3 +34,41 @@ test $(rpm -qp --provides ${RPMDIR}/python3-python_provide-0-0.noarch.rpm | grep | ||||
| echo "Provides for python3-py_provides" | ||||
| 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 | ||||
| 
 | ||||
| 
 | ||||
| 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