Add option -a to include BuilArch: noarch

Option -A disables that (the default, does nothing at the moment)

Co-Authored-By: Miro Hrončok <miro@hroncok.cz>

(cherry picked from commit 840a26c515db6b45fda5bce35422db3a7c2f09d5)

Resolves: RHEL-45210
This commit is contained in:
Cristian Le 2024-04-10 09:33:39 +02:00 committed by Miro Hrončok
parent c2a69948b3
commit 2f0a1a8b88
3 changed files with 56 additions and 3 deletions

View File

@ -194,15 +194,19 @@
end
}
%python_extras_subpkg(n:i:f:F) %{expand:%{lua:
%python_extras_subpkg(n:i:f:FaA) %{expand:%{lua:
local option_n = '-n (name of the base package)'
local option_i = '-i (buildroot path to metadata)'
local option_f = '-f (builddir path to a filelist)'
local option_F = '-F (skip %%files section)'
local option_a = '-a (insert BuildArch: noarch)'
local option_A = '-A (do not insert BuildArch: noarch (default))'
local value_n = rpm.expand('%{-n*}')
local value_i = rpm.expand('%{-i*}')
local value_f = rpm.expand('%{-f*}')
local value_F = rpm.expand('%{-F}')
local value_a = rpm.expand('%{-a}')
local value_A = rpm.expand('%{-A}')
local args = rpm.expand('%{*}')
if value_n == '' then
rpm.expand('%{error:%%%0: missing option ' .. option_n .. '}')
@ -219,6 +223,9 @@
if value_f ~= '' and value_F ~= '' then
rpm.expand('%{error:%%%0: simultaneous ' .. option_f .. ' and ' .. option_F .. ' options are not possible}')
end
if value_a ~= '' and value_A ~= '' then
rpm.expand('%{error:%%%0: simultaneous ' .. option_a .. ' and ' .. option_A .. ' options are not possible}')
end
if args == '' then
rpm.expand('%{error:%%%0 requires at least one argument with "extras" name}')
end
@ -246,7 +253,11 @@
elseif value_f ~= '' then
files = '%files -n ' .. rpmname .. ' -f ' .. value_f
end
for i, line in ipairs({pkgdef, summary, requires, description, files, ''}) do
local tags = summary .. '\\\n' .. requires
if value_a ~= '' then
tags = tags .. '\\\nBuildArch: noarch'
end
for i, line in ipairs({pkgdef, tags, description, files, ''}) do
print(line .. '\\\n')
end
end

View File

@ -1,6 +1,6 @@
Name: python-rpm-macros
Version: 3.9
Release: 53%{?dist}
Release: 54%{?dist}
Summary: The common Python RPM macros
URL: https://src.fedoraproject.org/rpms/python-rpm-macros/
@ -126,6 +126,9 @@ install -m 644 pathfix.py %{buildroot}%{_rpmconfigdir}/redhat/
%changelog
* Tue Jun 25 2024 Cristian Le <fedora@lecris.me> - 3.9-54
- %%python_extras_subpkg: Add option -a to include BuildArch: noarch
* Thu Nov 02 2023 Tomas Orsava <torsava@redhat.com> - 3.9-53
- Update macros from Fedora and add pathfix.py into python-rpm-macros
- Resolves: RHEL-6107

View File

@ -532,6 +532,45 @@ def test_python_extras_subpkg_F():
assert lines == expected
def test_python_extras_subpkg_a():
lines = rpm_eval('%python_extras_subpkg -n python3-setuptools_scm -a -F toml',
version='6', release='7')
expected = textwrap.dedent(f"""
%package -n python3-setuptools_scm+toml
Summary: Metapackage for python3-setuptools_scm: toml extras
Requires: python3-setuptools_scm = 6-7
BuildArch: noarch
%description -n python3-setuptools_scm+toml
This is a metapackage bringing in toml extras requires for
python3-setuptools_scm.
It makes sure the dependencies are installed.
""").lstrip().splitlines()
assert lines == expected
def test_python_extras_subpkg_A():
lines = rpm_eval('%python_extras_subpkg -n python3-setuptools_scm -A -F toml',
version='6', release='7')
expected = textwrap.dedent(f"""
%package -n python3-setuptools_scm+toml
Summary: Metapackage for python3-setuptools_scm: toml extras
Requires: python3-setuptools_scm = 6-7
%description -n python3-setuptools_scm+toml
This is a metapackage bringing in toml extras requires for
python3-setuptools_scm.
It makes sure the dependencies are installed.
""").lstrip().splitlines()
assert lines == expected
def test_python_extras_subpkg_aA():
lines = rpm_eval('%python_extras_subpkg -n python3-setuptools_scm -a -A -F toml',
version='6', release='7', fails=True)
assert lines[0] == ('error: %python_extras_subpkg: simultaneous -a '
'(insert BuildArch: noarch) and -A (do not insert '
'BuildArch: noarch (default)) options are not possible')
def test_python_extras_subpkg_underscores():
lines = rpm_eval('%python_extras_subpkg -n python3-webscrapbook -F adhoc_ssl',
version='0.33.3', release='1.fc33')