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,9 +202,19 @@
local rpmname = value_n .. '+' .. extras
local pkgdef = '%package -n ' .. rpmname
local summary = 'Summary: Metapackage for ' .. value_n .. ': ' .. extras .. ' extras'
local description = '%description -n ' .. rpmname .. '\\\n' ..
'This is a metapackage bringing in ' .. extras .. ' extras requires for ' .. value_n .. '.\\\n' ..
'It contains no code, just makes sure the dependencies are installed.\\\n'
local description = '%description -n ' .. rpmname .. '\\\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'
local files = ''
if value_i ~= '' then
files = '%files -n ' .. rpmname .. '\\\n' .. '%ghost ' .. value_i

View File

@ -1,6 +1,6 @@
Name: python-rpm-macros
Version: 3.9
Release: 12%{?dist}
Release: 13%{?dist}
Summary: The common Python RPM macros
# macros and lua: MIT, compileall2.py: PSFv2
@ -107,6 +107,10 @@ install -m 644 compileall2.py %{buildroot}%{_rpmconfigdir}/redhat/
%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
- 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
# with modified macros files. Multiple files should be
# separated by colon.
# To get 'em all, run:
# ls -1 macros.* | tr "\n" ":"
# and then:
# TESTED_FILES="<output of previous command>" pytest -v
# or both combined:
# TESTED_FILES=$(ls -1 macros.* | tr "\n" ":") pytest -v
# You can use * if you escape it from your Shell:
# TESTED_FILES='macros.*' pytest -v
# Remember that some tests might need more macros files than just
# the local ones.
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
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.
This is a metapackage bringing in toml extras requires for
python3-setuptools_scm.
It contains no code, just makes sure the dependencies are installed.
%files -n python3-setuptools_scm+toml
@ -350,7 +347,8 @@ def test_python_extras_subpkg_i():
Summary: Metapackage for python3-setuptools_scm: yaml extras
Requires: python3-setuptools_scm = 6-7
%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.
%files -n python3-setuptools_scm+yaml
@ -367,7 +365,8 @@ def test_python_extras_subpkg_f():
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.
This is a metapackage bringing in toml extras requires for
python3-setuptools_scm.
It contains no code, just makes sure the dependencies are installed.
%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
Requires: python3-setuptools_scm = 6-7
%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.
%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
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.
This is a metapackage bringing in toml extras requires for
python3-setuptools_scm.
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
Requires: python3-setuptools_scm = 6-7
%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.
""").lstrip().splitlines()
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', [
'%__python',
'%python',