Merged update from upstream sources

This is an automated DistroBaker update from upstream sources.
If you do not know what this is about or would like to opt out,
contact the OSCI team.

Source: https://src.fedoraproject.org/rpms/python-rpm-macros.git#230ce7f0613816bd7daf1f615bca443d6c5aa7d5
This commit is contained in:
DistroBaker 2021-02-08 11:37:59 +00:00
parent 0e23a801f0
commit b18966f2a7
3 changed files with 54 additions and 16 deletions

View File

@ -202,8 +202,18 @@
local rpmname = value_n .. '+' .. extras local rpmname = value_n .. '+' .. extras
local pkgdef = '%package -n ' .. rpmname local pkgdef = '%package -n ' .. rpmname
local summary = 'Summary: Metapackage for ' .. value_n .. ': ' .. extras .. ' extras' local summary = 'Summary: Metapackage for ' .. value_n .. ': ' .. extras .. ' extras'
local description = '%description -n ' .. rpmname .. '\\\n' .. local description = '%description -n ' .. rpmname .. '\\\n'
'This is a metapackage bringing in ' .. extras .. ' extras requires for ' .. value_n .. '.\\\n' .. local current_line = 'This is a metapackage bringing in'
for _, word in ipairs({extras, 'extras', 'requires', 'for', value_n .. '.'}) do
local line = current_line .. ' ' .. word
if line:len() > 79 then
description = description .. current_line .. '\\\n'
current_line = word
else
current_line = line
end
end
description = description .. current_line .. '\\\n' ..
'It contains no code, just makes sure the dependencies are installed.\\\n' 'It contains no code, just makes sure the dependencies are installed.\\\n'
local files = '' local files = ''
if value_i ~= '' then if value_i ~= '' then

View File

@ -1,6 +1,6 @@
Name: python-rpm-macros Name: python-rpm-macros
Version: 3.9 Version: 3.9
Release: 12%{?dist} Release: 13%{?dist}
Summary: The common Python RPM macros Summary: The common Python RPM macros
# macros and lua: MIT, compileall2.py: PSFv2 # macros and lua: MIT, compileall2.py: PSFv2
@ -107,6 +107,10 @@ install -m 644 compileall2.py %{buildroot}%{_rpmconfigdir}/redhat/
%changelog %changelog
* Fri Feb 05 2021 Miro Hrončok <mhroncok@redhat.com> - 3.9-13
- Automatically word-wrap the description of extras subpackages
- Fixes: rhbz#1922442
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 3.9-12 * Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 3.9-12
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild

View File

@ -12,12 +12,8 @@ XY = f'{sys.version_info[0]}{sys.version_info[1]}'
# Handy environment variable you can use to run the tests # Handy environment variable you can use to run the tests
# with modified macros files. Multiple files should be # with modified macros files. Multiple files should be
# separated by colon. # separated by colon.
# To get 'em all, run: # You can use * if you escape it from your Shell:
# ls -1 macros.* | tr "\n" ":" # TESTED_FILES='macros.*' pytest -v
# and then:
# TESTED_FILES="<output of previous command>" pytest -v
# or both combined:
# TESTED_FILES=$(ls -1 macros.* | tr "\n" ":") pytest -v
# Remember that some tests might need more macros files than just # Remember that some tests might need more macros files than just
# the local ones. # the local ones.
TESTED_FILES = os.getenv("TESTED_FILES", None) TESTED_FILES = os.getenv("TESTED_FILES", None)
@ -340,7 +336,8 @@ def test_python_extras_subpkg_i():
Summary: Metapackage for python3-setuptools_scm: toml extras Summary: Metapackage for python3-setuptools_scm: toml extras
Requires: python3-setuptools_scm = 6-7 Requires: python3-setuptools_scm = 6-7
%description -n python3-setuptools_scm+toml %description -n python3-setuptools_scm+toml
This is a metapackage bringing in toml extras requires for python3-setuptools_scm. This is a metapackage bringing in toml extras requires for
python3-setuptools_scm.
It contains no code, just makes sure the dependencies are installed. It contains no code, just makes sure the dependencies are installed.
%files -n python3-setuptools_scm+toml %files -n python3-setuptools_scm+toml
@ -350,7 +347,8 @@ def test_python_extras_subpkg_i():
Summary: Metapackage for python3-setuptools_scm: yaml extras Summary: Metapackage for python3-setuptools_scm: yaml extras
Requires: python3-setuptools_scm = 6-7 Requires: python3-setuptools_scm = 6-7
%description -n python3-setuptools_scm+yaml %description -n python3-setuptools_scm+yaml
This is a metapackage bringing in yaml extras requires for python3-setuptools_scm. This is a metapackage bringing in yaml extras requires for
python3-setuptools_scm.
It contains no code, just makes sure the dependencies are installed. It contains no code, just makes sure the dependencies are installed.
%files -n python3-setuptools_scm+yaml %files -n python3-setuptools_scm+yaml
@ -367,7 +365,8 @@ def test_python_extras_subpkg_f():
Summary: Metapackage for python3-setuptools_scm: toml extras Summary: Metapackage for python3-setuptools_scm: toml extras
Requires: python3-setuptools_scm = 6-7 Requires: python3-setuptools_scm = 6-7
%description -n python3-setuptools_scm+toml %description -n python3-setuptools_scm+toml
This is a metapackage bringing in toml extras requires for python3-setuptools_scm. This is a metapackage bringing in toml extras requires for
python3-setuptools_scm.
It contains no code, just makes sure the dependencies are installed. It contains no code, just makes sure the dependencies are installed.
%files -n python3-setuptools_scm+toml -f ghost_filelist %files -n python3-setuptools_scm+toml -f ghost_filelist
@ -376,7 +375,8 @@ def test_python_extras_subpkg_f():
Summary: Metapackage for python3-setuptools_scm: yaml extras Summary: Metapackage for python3-setuptools_scm: yaml extras
Requires: python3-setuptools_scm = 6-7 Requires: python3-setuptools_scm = 6-7
%description -n python3-setuptools_scm+yaml %description -n python3-setuptools_scm+yaml
This is a metapackage bringing in yaml extras requires for python3-setuptools_scm. This is a metapackage bringing in yaml extras requires for
python3-setuptools_scm.
It contains no code, just makes sure the dependencies are installed. It contains no code, just makes sure the dependencies are installed.
%files -n python3-setuptools_scm+yaml -f ghost_filelist %files -n python3-setuptools_scm+yaml -f ghost_filelist
@ -392,7 +392,8 @@ def test_python_extras_subpkg_F():
Summary: Metapackage for python3-setuptools_scm: toml extras Summary: Metapackage for python3-setuptools_scm: toml extras
Requires: python3-setuptools_scm = 6-7 Requires: python3-setuptools_scm = 6-7
%description -n python3-setuptools_scm+toml %description -n python3-setuptools_scm+toml
This is a metapackage bringing in toml extras requires for python3-setuptools_scm. This is a metapackage bringing in toml extras requires for
python3-setuptools_scm.
It contains no code, just makes sure the dependencies are installed. It contains no code, just makes sure the dependencies are installed.
@ -401,12 +402,35 @@ def test_python_extras_subpkg_F():
Summary: Metapackage for python3-setuptools_scm: yaml extras Summary: Metapackage for python3-setuptools_scm: yaml extras
Requires: python3-setuptools_scm = 6-7 Requires: python3-setuptools_scm = 6-7
%description -n python3-setuptools_scm+yaml %description -n python3-setuptools_scm+yaml
This is a metapackage bringing in yaml extras requires for python3-setuptools_scm. This is a metapackage bringing in yaml extras requires for
python3-setuptools_scm.
It contains no code, just makes sure the dependencies are installed. It contains no code, just makes sure the dependencies are installed.
""").lstrip().splitlines() """).lstrip().splitlines()
assert lines == expected assert lines == expected
@pytest.mark.parametrize('basename_len', [1, 10, 30, 45, 78])
@pytest.mark.parametrize('extra_len', [1, 13, 28, 52, 78])
def test_python_extras_subpkg_description_wrapping(basename_len, extra_len):
basename = 'x' * basename_len
extra = 'y' * extra_len
lines = rpm_eval(f'%python_extras_subpkg -n {basename} -F {extra}',
version='6', release='7')
for idx, line in enumerate(lines):
if line.startswith('%description'):
start = idx + 1
lines = lines[start:]
assert all(len(l) < 80 for l in lines)
assert len(lines) < 6
if len(" ".join(lines[:-1])) < 80:
assert len(lines) == 2
expected_singleline = (f"This is a metapackage bringing in {extra} extras "
f"requires for {basename}. It contains no code, "
f"just makes sure the dependencies are installed.")
description_singleline = " ".join(lines)
assert description_singleline == expected_singleline
unversioned_macros = pytest.mark.parametrize('macro', [ unversioned_macros = pytest.mark.parametrize('macro', [
'%__python', '%__python',
'%python', '%python',