Compare commits

...
Sign in to create a new pull request.

14 commits

Author SHA1 Message Date
Lukáš Zachar
b284634b22 Drop STI and use tmt instead
Resolves: rhbz#2383043
2025-08-15 17:33:08 +02:00
Fedora Release Engineering
0bb99dc9e9 Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild 2025-07-25 10:14:53 +00:00
Fedora Release Engineering
db95d6e735 Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild 2025-01-18 18:59:56 +00:00
Karolina Surma
03fc0de4ac 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.
2024-11-06 12:31:35 +01:00
Karolina Surma
91729cf8a0 CI: Look for the correct obsolete name in tests 2024-08-19 14:24:39 +02:00
Fedora Release Engineering
02ef9fde40 Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild 2024-07-19 15:32:13 +00:00
Fedora Release Engineering
223b71bb5e Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-26 10:19:05 +00:00
Fedora Release Engineering
f3d6832f4d Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-22 06:41:25 +00:00
Miro Hrončok
592400f58b 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.
2023-10-06 11:59:15 +02:00
Miro Hrončok
52372a464c Avoid DeprecationWarning: Implicit None on return values is deprecated and will raise KeyErrors
The warning only happened on corrupted metadata.

The warning originates in 880a6219a1
2023-10-03 12:07:49 +02:00
Fedora Release Engineering
8fe27ad070 Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-07-21 13:45:10 +00:00
Todd Zullinger
f9b21eca49 Fix URL tag
The Pagure instance at src.fedoraproject.org requires namespaces.  This
project is in the rpms namespace.  Update the URL tag accordingly.
2023-05-24 12:58:14 -04:00
Miro Hrončok
50768e7a3d Declare the license via a complex SPDX expression rather than "effective license" 2023-05-05 14:14:41 +02:00
Miro Hrončok
e348b87fd9 License: Clarify pythonbundles.py license
See https://gitlab.com/fedora/legal/fedora-license-data/-/issues/214

The script was only ever contributed to by me and Tomas Orsava.

    $ git log --format='%aN <%aE>' pythonbundles.py | sort -u
    Miro Hrončok <miro@hroncok.cz>
    Tomas Orsava <torsava@redhat.com>

This license clarification is:

Signed-off-by: Miro Hrončok <miro@hroncok.cz>
Signed-off-by: Tomas Orsava <torsava@redhat.com>
2023-05-05 14:01:14 +02:00
9 changed files with 98 additions and 69 deletions

1
.fmf/version Normal file
View file

@ -0,0 +1 @@
1

45
plan.fmf Normal file
View file

@ -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

View file

@ -1,19 +1,28 @@
Name: python-rpm-generators
Summary: Dependency generators for Python RPMs
Version: 14
Release: 4%{?dist}
Release: 13%{?dist}
# Originally all those files were part of RPM, so license is kept here
License: GPLv2+
Url: https://src.fedoraproject.org/python-rpm-generators
# Commit is the last change in following files
Url: https://src.fedoraproject.org/rpms/python-rpm-generators
# Originally the following files were part of RPM, so the license is inherited: GPL-2.0-or-later
# The COPYING file is grabbed from the last commit that changed the files
Source0: https://raw.githubusercontent.com/rpm-software-management/rpm/102eab50b3d0d6546dfe082eac0ade21e6b3dbf1/COPYING
Source1: python.attr
Source2: pythondist.attr
# This was crafted in-place as a fork of python.attr, hence also GPL-2.0-or-later
Source3: pythonname.attr
# This one is also originally from RPM, but it has its own license declaration: LGPL-2.1-or-later
Source4: pythondistdeps.py
# This was crafted in-place with the following license declaration:
# LicenseRef-Fedora-Public-Domain OR CC0-1.0 OR LGPL-2.1-or-later OR GPL-2.0-or-later
# Note that CC0-1.0 is not allowed for code in Fedora, so we skip it in the package License tag
Source5: pythonbundles.py
# See individual licenses above Source declarations
# Originally, this was simplified to GPL-2.0-or-later, but "effective license" analysis is no longer allowed
License: GPL-2.0-or-later AND LGPL-2.1-or-later AND (LicenseRef-Fedora-Public-Domain OR LGPL-2.1-or-later OR GPL-2.0-or-later)
BuildArch: noarch
%description
@ -47,6 +56,33 @@ install -Dpm0755 -t %{buildroot}%{_rpmconfigdir} *.py
%{_rpmconfigdir}/pythonbundles.py
%changelog
* Fri Jul 25 2025 Fedora Release Engineering <releng@fedoraproject.org> - 14-13
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
* Sat Jan 18 2025 Fedora Release Engineering <releng@fedoraproject.org> - 14-12
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
* Fri Jul 19 2024 Fedora Release Engineering <releng@fedoraproject.org> - 14-11
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
* Fri Jan 26 2024 Fedora Release Engineering <releng@fedoraproject.org> - 14-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Mon Jan 22 2024 Fedora Release Engineering <releng@fedoraproject.org> - 14-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Tue Oct 03 2023 Miro Hrončok <mhroncok@redhat.com> - 14-8
- Avoid DeprecationWarning: Implicit None on return values is deprecated and will raise KeyErrors
* Fri Jul 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 14-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Wed May 24 2023 Todd Zullinger <tmz@pobox.com> - 14-6
- Fix URL tag
* Fri May 05 2023 Miro Hrončok <mhroncok@redhat.com> - 14-5
- Declare the license via a complex SPDX expression rather than "effective license"
* Mon Apr 17 2023 Kalev Lember <klember@redhat.com> - 14-4
- Generate provides for /app-installed flatpak builds

View file

@ -4,7 +4,7 @@
# This program is free software.
#
# It is placed in the public domain or under the CC0-1.0-Universal license,
# whichever is more permissive.
# whichever you choose.
#
# Alternatively, it may be redistributed and/or modified under the terms of
# the LGPL version 2.1 (or later) or GPL version 2 (or later).

View file

@ -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

View file

@ -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

View file

@ -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/

View file

@ -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"

View file

@ -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