From b18966f2a718dda12e7f6d73ceb580f4e28aa9c8 Mon Sep 17 00:00:00 2001 From: DistroBaker Date: Mon, 8 Feb 2021 11:37:59 +0000 Subject: [PATCH] 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 --- macros.python-srpm | 16 +++++++++++--- python-rpm-macros.spec | 6 +++++- tests/test_evals.py | 48 +++++++++++++++++++++++++++++++----------- 3 files changed, 54 insertions(+), 16 deletions(-) diff --git a/macros.python-srpm b/macros.python-srpm index 494e3ff..f19ee45 100644 --- a/macros.python-srpm +++ b/macros.python-srpm @@ -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 diff --git a/python-rpm-macros.spec b/python-rpm-macros.spec index 445de46..4e79fd2 100644 --- a/python-rpm-macros.spec +++ b/python-rpm-macros.spec @@ -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 - 3.9-13 +- Automatically word-wrap the description of extras subpackages +- Fixes: rhbz#1922442 + * Wed Jan 27 2021 Fedora Release Engineering - 3.9-12 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild diff --git a/tests/test_evals.py b/tests/test_evals.py index 1de3a7b..0c802c1 100644 --- a/tests/test_evals.py +++ b/tests/test_evals.py @@ -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="" 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',