From 52372a464c70ebb29a285410327520c44e707135 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= Date: Tue, 3 Oct 2023 12:07:49 +0200 Subject: [PATCH 01/10] Avoid DeprecationWarning: Implicit None on return values is deprecated and will raise KeyErrors The warning only happened on corrupted metadata. The warning originates in https://github.com/python/importlib_metadata/commit/880a6219a16911817214827020f272b4b03b54b4 --- python-rpm-generators.spec | 5 ++++- pythondistdeps.py | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/python-rpm-generators.spec b/python-rpm-generators.spec index 2e46270..8e76f05 100644 --- a/python-rpm-generators.spec +++ b/python-rpm-generators.spec @@ -1,7 +1,7 @@ Name: python-rpm-generators Summary: Dependency generators for Python RPMs Version: 14 -Release: 7%{?dist} +Release: 8%{?dist} Url: https://src.fedoraproject.org/rpms/python-rpm-generators @@ -56,6 +56,9 @@ install -Dpm0755 -t %{buildroot}%{_rpmconfigdir} *.py %{_rpmconfigdir}/pythonbundles.py %changelog +* Tue Oct 03 2023 Miro Hrončok - 14-8 +- Avoid DeprecationWarning: Implicit None on return values is deprecated and will raise KeyErrors + * Fri Jul 21 2023 Fedora Release Engineering - 14-7 - Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild diff --git a/pythondistdeps.py b/pythondistdeps.py index ec80125..b43ed39 100755 --- a/pythondistdeps.py +++ b/pythondistdeps.py @@ -94,8 +94,8 @@ class Distribution(PathDistribution): # that it works also on previous Python/importlib_metadata versions. @property def name(self): - """Return the 'Name' metadata for the distribution package.""" - return self.metadata['Name'] + """Return the 'Name' metadata for the distribution package or None.""" + return self.metadata.get('Name') def _parse_py_version(self, path): # Try to parse the Python version from the path the metadata From 592400f58bd11940aaddac443847fcc560910f0b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= Date: Fri, 6 Oct 2023 11:59:15 +0200 Subject: [PATCH 02/10] Remove a no longer needed workaround for RPM <= 4.16 warning This removes an ugly hack that was used to get rid of: warning: Macro %1 defined but not used within scope I've noticed the %_pythonname_obsoletes generator does not expand %1 on non-RHELs and yet the warning is not shown. When debugging the missing warning, I've noticed it is never shown at all. According to RPM upstream, the warning was an undesired artifact: https://github.com/rpm-software-management/rpm/discussions/2501 It was purposefully removed starting with RPM 4.17. --- pythonname.attr | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/pythonname.attr b/pythonname.attr index 07d8df5..205570a 100644 --- a/pythonname.attr +++ b/pythonname.attr @@ -1,9 +1,6 @@ %__pythonname_provides() %{lua: 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 name = rpm.expand('%{name}') local evr = rpm.expand('%{?epoch:%{epoch}:}%{version}-%{release}') local provides = python.python_altprovides_once(name, evr) -- provides is either an array/table or nil @@ -23,10 +20,7 @@ -- 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 name = rpm.expand('%{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 From f3d6832f4d970041fd2297d6f7eece18bbf7a374 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Mon, 22 Jan 2024 06:41:25 +0000 Subject: [PATCH 03/10] Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild --- python-rpm-generators.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/python-rpm-generators.spec b/python-rpm-generators.spec index 8e76f05..bed427f 100644 --- a/python-rpm-generators.spec +++ b/python-rpm-generators.spec @@ -1,7 +1,7 @@ Name: python-rpm-generators Summary: Dependency generators for Python RPMs Version: 14 -Release: 8%{?dist} +Release: 9%{?dist} Url: https://src.fedoraproject.org/rpms/python-rpm-generators @@ -56,6 +56,9 @@ install -Dpm0755 -t %{buildroot}%{_rpmconfigdir} *.py %{_rpmconfigdir}/pythonbundles.py %changelog +* Mon Jan 22 2024 Fedora Release Engineering - 14-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + * Tue Oct 03 2023 Miro Hrončok - 14-8 - Avoid DeprecationWarning: Implicit None on return values is deprecated and will raise KeyErrors From 223b71bb5e6d767ecfb3757c61ed09a38b756e8c Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 26 Jan 2024 10:19:05 +0000 Subject: [PATCH 04/10] Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild --- python-rpm-generators.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/python-rpm-generators.spec b/python-rpm-generators.spec index bed427f..492cb8a 100644 --- a/python-rpm-generators.spec +++ b/python-rpm-generators.spec @@ -1,7 +1,7 @@ Name: python-rpm-generators Summary: Dependency generators for Python RPMs Version: 14 -Release: 9%{?dist} +Release: 10%{?dist} Url: https://src.fedoraproject.org/rpms/python-rpm-generators @@ -56,6 +56,9 @@ install -Dpm0755 -t %{buildroot}%{_rpmconfigdir} *.py %{_rpmconfigdir}/pythonbundles.py %changelog +* Fri Jan 26 2024 Fedora Release Engineering - 14-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + * Mon Jan 22 2024 Fedora Release Engineering - 14-9 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild From 02ef9fde40ad2db7d33bbfda9dc1aabc24b72de8 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 19 Jul 2024 15:32:13 +0000 Subject: [PATCH 05/10] Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild --- python-rpm-generators.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/python-rpm-generators.spec b/python-rpm-generators.spec index 492cb8a..d014a53 100644 --- a/python-rpm-generators.spec +++ b/python-rpm-generators.spec @@ -1,7 +1,7 @@ Name: python-rpm-generators Summary: Dependency generators for Python RPMs Version: 14 -Release: 10%{?dist} +Release: 11%{?dist} Url: https://src.fedoraproject.org/rpms/python-rpm-generators @@ -56,6 +56,9 @@ install -Dpm0755 -t %{buildroot}%{_rpmconfigdir} *.py %{_rpmconfigdir}/pythonbundles.py %changelog +* Fri Jul 19 2024 Fedora Release Engineering - 14-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + * Fri Jan 26 2024 Fedora Release Engineering - 14-10 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild From 91729cf8a0ad0d4b96865c61521b149169771765 Mon Sep 17 00:00:00 2001 From: Karolina Surma Date: Mon, 19 Aug 2024 14:24:39 +0200 Subject: [PATCH 06/10] CI: Look for the correct obsolete name in tests --- tests/pythonname.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/pythonname.sh b/tests/pythonname.sh index b21058c..f737a1f 100755 --- a/tests/pythonname.sh +++ b/tests/pythonname.sh @@ -43,7 +43,7 @@ test $(rpm -qp --obsoletes ${RPMDIR}/python${X_Y}-foo-0-0.noarch.rpm | wc -l) -e echo "Obsoletes for python3-foo" rpm -qp --obsoletes ${RPMDIR}/python3-foo-0-0.noarch.rpm # In ELN/RHEL the pythonX.Y-* Obsoletes is generated, but not in Fedora, so we check for it explicitly. -rpm -qp --obsoletes ${RPMDIR}/python3-foo-0-0.noarch.rpm | grep -q '^python'${X_Y}'-py_provides < 0-0$' && exit 1 || true +rpm -qp --obsoletes ${RPMDIR}/python3-foo-0-0.noarch.rpm | grep -q '^python'${X_Y}'-foo < 0-0$' && exit 1 || true test $(rpm -qp --obsoletes ${RPMDIR}/python3-foo-0-0.noarch.rpm | wc -l) -eq 0 echo "Obsoletes for python2-foo" From 03fc0de4acadafa264c319159953cd05a1fcee97 Mon Sep 17 00:00:00 2001 From: Karolina Surma Date: Wed, 6 Nov 2024 12:31:33 +0100 Subject: [PATCH 07/10] Add centpkg to use in CentOS Stream If tests are run in this repository, they exist. Other packages in Fedora require fedpkg-minimal to download the sources. We also want to run this test in CentOS Stream where fedpkg-minimal is not available, hence adding centpkg invocation. The change will have no effect in this repository, but is essential for the smooth tests run of other components. --- tests/download_data_and_run_pytest.sh | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/tests/download_data_and_run_pytest.sh b/tests/download_data_and_run_pytest.sh index 8dca398..79d54b5 100755 --- a/tests/download_data_and_run_pytest.sh +++ b/tests/download_data_and_run_pytest.sh @@ -4,10 +4,11 @@ # When the tests run in python-rpm-generators, # the structure on disk does not match the dist-git repository. # We apparently must use the standard-test-source role to grab the sources. -# OTOH in other packages, we must use fedpkg(-minimal). -# The --force flag is required in full-blown fedpkg (the source is unused in spec), -# and it is ignored in fedpkg-minimal (all sources are always downloaded). -test -f test-sources-*.tar.gz || fedpkg sources --force +# OTOH in other packages, we must use fedpkg(-minimal) or centpkg(-minimal), +# depending on the destination OS. +# The --force flag is required in full-blown fedpkg/centpkg (the source is unused in spec), +# and it is ignored in fedpkg/centpkg-minimal (all sources are always downloaded). +test -f test-sources-*.tar.gz || fedpkg sources --force || centpkg sources --force tar -xvf test-sources-*.tar.gz -C ./tests/data/scripts_pythondistdeps/ cd tests/ From db95d6e73506cf68fe981d1e01058a809026bdd8 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 18 Jan 2025 18:59:56 +0000 Subject: [PATCH 08/10] Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild --- python-rpm-generators.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/python-rpm-generators.spec b/python-rpm-generators.spec index d014a53..36e283c 100644 --- a/python-rpm-generators.spec +++ b/python-rpm-generators.spec @@ -1,7 +1,7 @@ Name: python-rpm-generators Summary: Dependency generators for Python RPMs Version: 14 -Release: 11%{?dist} +Release: 12%{?dist} Url: https://src.fedoraproject.org/rpms/python-rpm-generators @@ -56,6 +56,9 @@ install -Dpm0755 -t %{buildroot}%{_rpmconfigdir} *.py %{_rpmconfigdir}/pythonbundles.py %changelog +* Sat Jan 18 2025 Fedora Release Engineering - 14-12 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + * Fri Jul 19 2024 Fedora Release Engineering - 14-11 - Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild From 0bb99dc9e9765a8c8b190f84976cd3b1ce8cbb6e Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 25 Jul 2025 10:14:53 +0000 Subject: [PATCH 09/10] Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild --- python-rpm-generators.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/python-rpm-generators.spec b/python-rpm-generators.spec index 36e283c..599eb0c 100644 --- a/python-rpm-generators.spec +++ b/python-rpm-generators.spec @@ -1,7 +1,7 @@ Name: python-rpm-generators Summary: Dependency generators for Python RPMs Version: 14 -Release: 12%{?dist} +Release: 13%{?dist} Url: https://src.fedoraproject.org/rpms/python-rpm-generators @@ -56,6 +56,9 @@ install -Dpm0755 -t %{buildroot}%{_rpmconfigdir} *.py %{_rpmconfigdir}/pythonbundles.py %changelog +* Fri Jul 25 2025 Fedora Release Engineering - 14-13 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + * Sat Jan 18 2025 Fedora Release Engineering - 14-12 - Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild From b284634b222306626f32861772984c4d4cb21479 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Zachar?= Date: Mon, 28 Jul 2025 17:46:02 +0200 Subject: [PATCH 10/10] Drop STI and use tmt instead Resolves: rhbz#2383043 --- .fmf/version | 1 + plan.fmf | 45 +++++++++++++++++++++++++++++++++++++++++++++ tests/tests.yml | 48 ------------------------------------------------ 3 files changed, 46 insertions(+), 48 deletions(-) create mode 100644 .fmf/version create mode 100644 plan.fmf delete mode 100644 tests/tests.yml diff --git a/.fmf/version b/.fmf/version new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/.fmf/version @@ -0,0 +1 @@ +1 diff --git a/plan.fmf b/plan.fmf new file mode 100644 index 0000000..d2c549f --- /dev/null +++ b/plan.fmf @@ -0,0 +1,45 @@ +execute: + how: tmt + +discover: + - name: same_repo + how: shell + dist-git-source: true + dist-git-download-only: true + tests: + - name: pythonabi + path: /tests + test: ./pythonabi.sh + - name: pythonname + path: /tests + test: ./pythonname.sh + - name: pythondist + path: /tests + test: ./pythondist.sh + - name: console_script + path: /tests + test: ./console_script.sh + - name: pytest + test: cd $TMT_SOURCE_DIR && ./tests/download_data_and_run_pytest.sh + +prepare: + - name: Install dependencies + how: install + package: + - rpm-build + - rpmdevtools + - fedpkg-minimal + - python3-devel + - python3-pip + - python3-pytest + - python3-pyyaml + - python3-setuptools + - python3-wheel + - dnf + - name: Update packages + how: shell + script: dnf upgrade -y + - name: rpm_qa + order: 100 + how: shell + script: rpm -qa | sort | tee $TMT_PLAN_DATA/rpmqa.txt diff --git a/tests/tests.yml b/tests/tests.yml deleted file mode 100644 index 22b2cb7..0000000 --- a/tests/tests.yml +++ /dev/null @@ -1,48 +0,0 @@ ---- -- hosts: localhost - tags: - - classic - tasks: - - dnf: - name: "*" - state: latest - -- hosts: localhost - tags: - - classic - pre_tasks: - - import_role: - name: standard-test-source - vars: - fetch_only: True - roles: - - role: standard-test-basic - tests: - - rpm_qa: - dir: . - run: rpm -qa | sort - - pythonabi: - dir: . - run: ./pythonabi.sh - - pythonname: - dir: . - run: ./pythonname.sh - - pythondist: - dir: . - run: ./pythondist.sh - - console_script: - dir: . - run: ./console_script.sh - - pytest: - dir: . - run: ./download_data_and_run_pytest.sh - required_packages: - - rpm-build - - rpmdevtools - - fedpkg-minimal - - python3-devel - - python3-pip - - python3-pytest - - python3-pyyaml - - python3-setuptools - - python3-wheel