On Fedora 44+, split this package into multiple subpackages
python3.9 and python3.6 are the only remaining Pythons that are "flatpackaged". As they are likely to stay around for a while, it makes no sense to wait this out (like we did with e.g. 3.7 and 3.8). This (together with similar change in python3.6) will make all the packaged Pythons packaged in the same way. Additionally, this also enables the debug build, which was added to CI.
This commit is contained in:
parent
5d32305ea3
commit
7a81f94ccc
2 changed files with 46 additions and 12 deletions
17
plan.fmf
17
plan.fmf
|
|
@ -5,6 +5,9 @@ provision:
|
|||
hardware:
|
||||
memory: '>= 3 GB'
|
||||
|
||||
environment:
|
||||
pybasever: '3.9'
|
||||
|
||||
discover:
|
||||
- name: tests_python
|
||||
how: shell
|
||||
|
|
@ -12,13 +15,16 @@ discover:
|
|||
tests:
|
||||
- name: smoke
|
||||
path: /smoke
|
||||
test: "VERSION=3.9 ./venv.sh"
|
||||
test: "VERSION=${pybasever} ./venv.sh"
|
||||
- name: debugsmoke
|
||||
path: /smoke
|
||||
test: "PYTHON=python${pybasever}d TOX=false VERSION=${pybasever} INSTALL_OR_SKIP=true ./venv.sh"
|
||||
- name: selftest
|
||||
path: /selftest
|
||||
test: VERSION=3.9 X="-x test_wsgiref" ./parallel.sh
|
||||
test: VERSION=${pybasever} X="-x test_wsgiref" ./parallel.sh
|
||||
- name: marshalparser
|
||||
path: /marshalparser
|
||||
test: "VERSION=3.9 SAMPLE=10 ./test_marshalparser_compatibility.sh"
|
||||
test: "VERSION=${pybasever} SAMPLE=10 ./test_marshalparser_compatibility.sh"
|
||||
|
||||
prepare:
|
||||
- name: Install dependencies
|
||||
|
|
@ -26,7 +32,10 @@ prepare:
|
|||
package:
|
||||
- gcc # for extension building in venv and selftest
|
||||
- gdb # for test_gdb
|
||||
- python3.9 # the test subject
|
||||
- "python${pybasever}" # the test subject
|
||||
- "python${pybasever}-devel" # for extension building in venv and selftest
|
||||
- "python${pybasever}-tkinter" # for selftest
|
||||
- "python${pybasever}-test" # for selftest
|
||||
- python3-tox # for venv tests
|
||||
- glibc-all-langpacks # for locale tests
|
||||
- marshalparser # for testing compatibility (magic numbers) with marshalparser
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ URL: https://www.python.org/
|
|||
#global prerel ...
|
||||
%global upstream_version %{general_version}%{?prerel}
|
||||
Version: %{general_version}%{?prerel:~%{prerel}}
|
||||
Release: 1%{?dist}
|
||||
Release: 2%{?dist}
|
||||
License: Python
|
||||
|
||||
|
||||
|
|
@ -40,9 +40,10 @@ License: Python
|
|||
%endif
|
||||
|
||||
# Flat package, i.e. no separate subpackages
|
||||
# Default (in Fedora): if this is a main Python, it is not a flatpackage
|
||||
# Default (in Fedora >= 44): disabled
|
||||
# Default (in Fedora < 44): enabled when this is not the main Python
|
||||
# Not supported: Combination of flatpackage enabled and main_python enabled
|
||||
%if %{with main_python}
|
||||
%if %{with main_python} || 0%{?fedora} >= 44
|
||||
%bcond_with flatpackage
|
||||
%else
|
||||
%bcond_without flatpackage
|
||||
|
|
@ -467,9 +468,18 @@ Obsoletes: platform-python < %{pybasever}
|
|||
Provides: python%{pyshortver} = %{version}-%{release}
|
||||
Obsoletes: python%{pyshortver} < %{version}-%{release}
|
||||
|
||||
# https://docs.fedoraproject.org/en-US/packaging-guidelines/#_one_to_many_replacement
|
||||
Obsoletes: %{pkgname} < 3.9.24-2
|
||||
|
||||
%if %{with main_python}
|
||||
# Packages with Python modules in standard locations automatically
|
||||
# depend on python(abi). Provide that here.
|
||||
Provides: python(abi) = %{pybasever}
|
||||
%else
|
||||
# We exclude the `python(abi)` Provides
|
||||
%global __requires_exclude ^python\\(abi\\) = 3\\..+
|
||||
%global __provides_exclude ^python\\(abi\\) = 3\\..+
|
||||
%endif
|
||||
|
||||
Requires: %{pkgname}-libs%{?_isa} = %{version}-%{release}
|
||||
|
||||
|
|
@ -584,6 +594,8 @@ Conflicts: python-libs < 3
|
|||
# (We explicitly conflict with python-libs and not python2-libs, so only the
|
||||
# old Python 2 builds that still provided unversioned Python are handled.)
|
||||
|
||||
# https://docs.fedoraproject.org/en-US/packaging-guidelines/#_one_to_many_replacement
|
||||
Obsoletes: %{pkgname} < 3.9.24-2
|
||||
|
||||
%description -n %{pkgname}-libs
|
||||
This package contains runtime libraries for use by Python:
|
||||
|
|
@ -603,6 +615,7 @@ Requires: (python3-rpm-macros if rpm-build)
|
|||
Requires: (pyproject-rpm-macros if rpm-build)
|
||||
|
||||
%if %{without bootstrap}
|
||||
%if %{with main_python}
|
||||
# This is not "API" (packages that need setuptools should still BuildRequire it)
|
||||
# However some packages apparently can build both with and without setuptools
|
||||
# producing egg-info as file or directory (depending on setuptools presence).
|
||||
|
|
@ -611,6 +624,7 @@ Requires: (pyproject-rpm-macros if rpm-build)
|
|||
# See https://bugzilla.redhat.com/show_bug.cgi?id=1623914
|
||||
# See https://fedoraproject.org/wiki/Packaging:Directory_Replacement
|
||||
Requires: (%{pkgname}-setuptools if rpm-build)
|
||||
%endif
|
||||
|
||||
Requires: (python3-rpm-generators if rpm-build)
|
||||
%endif
|
||||
|
|
@ -630,6 +644,9 @@ Provides: platform-python-devel%{?_isa} = %{version}-%{release}
|
|||
Obsoletes: platform-python-devel < %{pybasever}
|
||||
%endif
|
||||
|
||||
# https://docs.fedoraproject.org/en-US/packaging-guidelines/#_one_to_many_replacement
|
||||
Obsoletes: %{pkgname} < 3.9.24-2
|
||||
|
||||
%description -n %{pkgname}-devel
|
||||
This package contains the header files and configuration needed to compile
|
||||
Python extension modules (typically written in C or C++), to embed Python
|
||||
|
|
@ -654,6 +671,9 @@ Obsoletes: %{pkgname}-tools < %{version}-%{release}
|
|||
# In Fedora 31, /usr/bin/idle was moved here from Python 2.
|
||||
Conflicts: python-tools < 3
|
||||
|
||||
# https://docs.fedoraproject.org/en-US/packaging-guidelines/#_one_to_many_replacement
|
||||
Obsoletes: %{pkgname} < 3.9.24-2
|
||||
|
||||
%description -n %{pkgname}-idle
|
||||
IDLE is Python’s Integrated Development and Learning Environment.
|
||||
|
||||
|
|
@ -675,6 +695,9 @@ Requires: %{pkgname} = %{version}-%{release}
|
|||
# (We don't provide python3-turtledemo, that's not too useful when imported.)
|
||||
%py_provides %{pkgname}-turtle
|
||||
|
||||
# https://docs.fedoraproject.org/en-US/packaging-guidelines/#_one_to_many_replacement
|
||||
Obsoletes: %{pkgname} < 3.9.24-2
|
||||
|
||||
%description -n %{pkgname}-tkinter
|
||||
The Tkinter (Tk interface) library is a graphical user interface toolkit for
|
||||
the Python programming language.
|
||||
|
|
@ -685,6 +708,9 @@ Summary: The self-test suite for the main python3 package
|
|||
Requires: %{pkgname} = %{version}-%{release}
|
||||
Requires: %{pkgname}-libs%{?_isa} = %{version}-%{release}
|
||||
|
||||
# https://docs.fedoraproject.org/en-US/packaging-guidelines/#_one_to_many_replacement
|
||||
Obsoletes: %{pkgname} < 3.9.24-2
|
||||
|
||||
%description -n %{pkgname}-test
|
||||
The self-test suite for the Python interpreter.
|
||||
|
||||
|
|
@ -735,11 +761,6 @@ The debug runtime additionally supports debug builds of C-API extensions
|
|||
|
||||
%else # with flatpackage
|
||||
|
||||
# We'll not provide this, on purpose
|
||||
# No package in Fedora shall ever depend on flatpackage via this
|
||||
%global __requires_exclude ^python\\(abi\\) = 3\\..$
|
||||
%global __provides_exclude ^python\\(abi\\) = 3\\..$
|
||||
|
||||
# Python interpreter packages used to be named (or provide) name pythonXY (e.g.
|
||||
# python39). However, to align it with the executable names and to prepare for
|
||||
# Python 3.10, they were renamed to pythonX.Y (e.g. python3.9, python3.10). We
|
||||
|
|
@ -1856,6 +1877,10 @@ CheckPython optimized
|
|||
# ======================================================
|
||||
|
||||
%changelog
|
||||
* Wed Oct 15 2025 Miro Hrončok <mhroncok@redhat.com> - 3.9.24-2
|
||||
- On Fedora 44+, split this package into multiple subpackages
|
||||
- This mimics newer Python versions
|
||||
|
||||
* Fri Oct 10 2025 Karolina Surma <ksurma@redhat.com> - 3.9.24-1
|
||||
- Update to Python 3.9.24
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue