Compare commits
14 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b284634b22 | ||
|
|
0bb99dc9e9 | ||
|
|
db95d6e735 | ||
|
|
03fc0de4ac | ||
|
|
91729cf8a0 | ||
|
|
02ef9fde40 | ||
|
|
223b71bb5e | ||
|
|
f3d6832f4d | ||
|
|
592400f58b | ||
|
|
52372a464c | ||
|
|
8fe27ad070 | ||
|
|
f9b21eca49 | ||
|
|
50768e7a3d | ||
|
|
e348b87fd9 |
9 changed files with 98 additions and 69 deletions
1
.fmf/version
Normal file
1
.fmf/version
Normal file
|
|
@ -0,0 +1 @@
|
|||
1
|
||||
45
plan.fmf
Normal file
45
plan.fmf
Normal 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
|
||||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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).
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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/
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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
|
||||
Loading…
Add table
Add a link
Reference in a new issue