diff --git a/00251-change-user-install-location.patch b/00251-change-user-install-location.patch index 1381023..9edee00 100644 --- a/00251-change-user-install-location.patch +++ b/00251-change-user-install-location.patch @@ -30,10 +30,10 @@ Co-authored-by: Lumír Balhar 3 files changed, 72 insertions(+), 4 deletions(-) diff --git a/Lib/site.py b/Lib/site.py -index 7eace190f5..8d193abfbb 100644 +index 0a0dc47b17..bb42e1cf5a 100644 --- a/Lib/site.py +++ b/Lib/site.py -@@ -406,8 +406,15 @@ def getsitepackages(prefixes=None): +@@ -414,8 +414,15 @@ def getsitepackages(prefixes=None): return sitepackages def addsitepackages(known_paths, prefixes=None): @@ -51,7 +51,7 @@ index 7eace190f5..8d193abfbb 100644 if os.path.isdir(sitedir): addsitedir(sitedir, known_paths) diff --git a/Lib/sysconfig/__init__.py b/Lib/sysconfig/__init__.py -index 98a14e5d3a..8369073fee 100644 +index 83e057c177..8b167dca31 100644 --- a/Lib/sysconfig/__init__.py +++ b/Lib/sysconfig/__init__.py @@ -106,6 +106,12 @@ @@ -130,7 +130,7 @@ index 98a14e5d3a..8369073fee 100644 # On Windows we want to substitute 'lib' for schemes rather # than the native value (without modifying vars, in case it diff --git a/Lib/test/test_sysconfig.py b/Lib/test/test_sysconfig.py -index 9233304c6a..4acaad5ed6 100644 +index 37cee92768..ffb63452be 100644 --- a/Lib/test/test_sysconfig.py +++ b/Lib/test/test_sysconfig.py @@ -121,8 +121,19 @@ def test_get_path(self): diff --git a/00430-gh-121245-amend-d611c4c8e9-correct-import.patch b/00430-gh-121245-amend-d611c4c8e9-correct-import.patch deleted file mode 100644 index d98110f..0000000 --- a/00430-gh-121245-amend-d611c4c8e9-correct-import.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Sergey B Kirpichev -Date: Tue, 2 Jul 2024 12:40:01 +0300 -Subject: [PATCH] 00430: gh-121245: Amend d611c4c8e9 (correct import) (#121255) -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Co-authored-by: Miro Hrončok ---- - Lib/site.py | 3 +-- - .../Library/2024-07-02-11-34-06.gh-issue-121245.sSkDAr.rst | 2 ++ - 2 files changed, 3 insertions(+), 2 deletions(-) - create mode 100644 Misc/NEWS.d/next/Library/2024-07-02-11-34-06.gh-issue-121245.sSkDAr.rst - -diff --git a/Lib/site.py b/Lib/site.py -index 8d193abfbb..7fff22328e 100644 ---- a/Lib/site.py -+++ b/Lib/site.py -@@ -533,8 +533,7 @@ def register_readline(): - - def write_history(): - try: -- # _pyrepl.__main__ is executed as the __main__ module -- from __main__ import CAN_USE_PYREPL -+ from _pyrepl.main import CAN_USE_PYREPL - except ImportError: - CAN_USE_PYREPL = False - -diff --git a/Misc/NEWS.d/next/Library/2024-07-02-11-34-06.gh-issue-121245.sSkDAr.rst b/Misc/NEWS.d/next/Library/2024-07-02-11-34-06.gh-issue-121245.sSkDAr.rst -new file mode 100644 -index 0000000000..6e9dec2545 ---- /dev/null -+++ b/Misc/NEWS.d/next/Library/2024-07-02-11-34-06.gh-issue-121245.sSkDAr.rst -@@ -0,0 +1,2 @@ -+Fix a bug in the handling of the command history of the new :term:`REPL` that caused -+the history file to be wiped at REPL exit. diff --git a/00432-account-with-abi_thread-in-test_sysconfig-test_user_similar.patch b/00432-account-with-abi_thread-in-test_sysconfig-test_user_similar.patch new file mode 100644 index 0000000..b023c47 --- /dev/null +++ b/00432-account-with-abi_thread-in-test_sysconfig-test_user_similar.patch @@ -0,0 +1,30 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Karolina Surma +Date: Fri, 19 Jul 2024 11:20:27 +0200 +Subject: [PATCH] 00432: Account with abi_thread in + test_sysconfig.test_user_similar + +From https://github.com/python/cpython/pull/122017 +--- + Lib/test/test_sysconfig.py | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/Lib/test/test_sysconfig.py b/Lib/test/test_sysconfig.py +index ffb63452be..43cab7ba21 100644 +--- a/Lib/test/test_sysconfig.py ++++ b/Lib/test/test_sysconfig.py +@@ -428,10 +428,10 @@ def test_user_similar(self): + # bpo-44860: platlib of posix_user doesn't use sys.platlibdir, + # whereas posix_prefix does. + if name == 'platlib': +- # Replace "/lib64/python3.11/site-packages" suffix +- # with "/lib/python3.11/site-packages". +- py_version_short = sysconfig.get_python_version() +- suffix = f'python{py_version_short}/site-packages' ++ # Replace "/lib64/python3.11{abi_thread}/site-packages" suffix ++ # with "/lib/python3.11{abi_thread}/site-packages". ++ py_version_abi = sysconfig._get_python_version_abi() ++ suffix = f'python{py_version_abi}/site-packages' + expected = expected.replace(f'/{sys.platlibdir}/{suffix}', + f'/lib/{suffix}') + self.assertEqual(user_path, expected) diff --git a/python3.13.spec b/python3.13.spec index 8b7e66b..084f339 100644 --- a/python3.13.spec +++ b/python3.13.spec @@ -14,10 +14,10 @@ URL: https://www.python.org/ # WARNING When rebasing to a new Python version, # remember to update the python3-docs package as well %global general_version %{pybasever}.0 -%global prerel b3 +%global prerel b4 %global upstream_version %{general_version}%{?prerel} Version: %{general_version}%{?prerel:~%{prerel}} -Release: 3%{?dist} +Release: 1%{?dist} License: Python-2.0.1 @@ -176,9 +176,6 @@ Provides: bundled(python3dist(packaging)) = 24 %global exename python%{pybasever} %endif -%global pylibdir %{_libdir}/python%{pybasever} -%global dynload_dir %{pylibdir}/lib-dynload - # ABIFLAGS, LDVERSION and SOABI are in the upstream configure.ac # See PEP 3149 for some background: http://www.python.org/dev/peps/pep-3149/ %global ABIFLAGS_optimized %{nil} @@ -191,6 +188,13 @@ Provides: bundled(python3dist(packaging)) = 24 %global LDVERSION_freethreading %{pybasever}%{ABIFLAGS_freethreading} %global LDVERSION_freethreading_debug %{pybasever}%{ABIFLAGS_freethreading_debug} +%global pylibdir %{_libdir}/python%{pybasever} +%global dynload_dir %{pylibdir}/lib-dynload +# freethreading libraries are located in e.g. /usr/lib64/python3.13t/ +# https://github.com/python/cpython/issues/121103 +%global pylibdir_freethreading %{pylibdir}%{ABIFLAGS_freethreading} +%global dynload_dir_freethreading %{pylibdir_freethreading}/lib-dynload + # We use the upstream arch triplets, we convert them from %%{_arch}-linux%%{_gnu} %global platform_triplet %{expand:%(echo %{_arch}-linux%{_gnu} | sed -E \\ -e 's/^arm(eb)?-linux-gnueabi$/arm\\1-linux-gnueabihf/' \\ @@ -395,9 +399,11 @@ Patch251: 00251-change-user-install-location.patch # Another process might have already moved jit_stencils.h.new Patch429: 00429-gh-118943-fix-another-race-condition-when-generating-jit_stencils-h.patch -# 00430 # e6851cbe4b1043e8d99e3f3dfa9c9f286fe0d511 -# gh-121245: Amend d611c4c8e9 (correct import) (#121255) -Patch430: 00430-gh-121245-amend-d611c4c8e9-correct-import.patch +# 00432 # 74b8ebb01dac2390dea7d76a8040ad54198c73c4 +# Account with abi_thread in test_sysconfig.test_user_similar +# +# From https://github.com/python/cpython/pull/122017 +Patch432: 00432-account-with-abi_thread-in-test_sysconfig-test_user_similar.patch # (New patches go here ^^^) # @@ -722,17 +728,30 @@ The debug runtime additionally supports debug builds of C-API extensions # At least until the PEP 703 build remains provisional. %package -n python%{pybasever}-freethreading Summary: Free Threading (PEP 703) version of the Python runtime -License: %{libs_license} -# The freethreading build is an all-in-one package version of the regular build, and -# shares the same .py/.pyc files and directories as the regular build. Hence -# we depend on all of the subpackages of the regular build: -Requires: %{pkgname}%{?_isa} = %{version}-%{release} -Requires: %{pkgname}-libs%{?_isa} = %{version}-%{release} -Requires: %{pkgname}-devel%{?_isa} = %{version}-%{release} -Requires: %{pkgname}-test%{?_isa} = %{version}-%{release} -Requires: %{pkgname}-tkinter%{?_isa} = %{version}-%{release} -Requires: %{pkgname}-idle%{?_isa} = %{version}-%{release} +%if %{with rpmwheels} +Requires: %{python_wheel_pkg_prefix}-pip-wheel >= 23.1.2 +Requires: %{python_wheel_pkg_prefix}-setuptools-wheel +Requires: %{python_wheel_pkg_prefix}-wheel-wheel +License: %{libs_license} +%else +Provides: bundled(python3dist(pip)) = %{pip_version} +%pip_bundled_provides +Provides: bundled(python3dist(setuptools)) = %{setuptools_version} +%setuptools_bundled_provides +Provides: bundled(python3dist(wheel)) = %{wheel_version} +%wheel_bundled_provides +# License combined from Python libs + pip + setuptools + wheel +License: %{libs_license} AND Apache-2.0 AND BSD-2-Clause AND BSD-3-Clause AND ISC AND LGPL-2.1-only AND MPL-2.0 AND (Apache-2.0 OR BSD-2-Clause) +%endif + +# This package doesn't depend on python3-libs, so we need to explicitly +# define the same Provides and Requires. +# See the comments in the definition of -libs subpackage for detailed explanations +Provides: bundled(libb2) = 0.98.1 +Provides: bundled(mimalloc) = 2.12 +Requires: tzdata +Requires: expat >= 2.6 %description -n python%{pybasever}-freethreading The provisional Free Threading (PEP 703) build of Python. @@ -752,15 +771,8 @@ and with the necessary changes needed to make the interpreter thread-safe. Summary: Free Threading (PEP 703) version of the Python runtime (debug build) License: %{libs_license} -# The debug build is an all-in-one package version of the regular build, and -# shares the same .py/.pyc files and directories as the regular build. Hence -# we depend on all of the subpackages of the regular build: -Requires: %{pkgname}%{?_isa} = %{version}-%{release} -Requires: %{pkgname}-libs%{?_isa} = %{version}-%{release} -Requires: %{pkgname}-devel%{?_isa} = %{version}-%{release} -Requires: %{pkgname}-test%{?_isa} = %{version}-%{release} -Requires: %{pkgname}-tkinter%{?_isa} = %{version}-%{release} -Requires: %{pkgname}-idle%{?_isa} = %{version}-%{release} +# This uses the pure Python modules from the freethreading package +Requires: python%{pybasever}-freethreading%{?_isa} = %{version}-%{release} %description -n python%{pybasever}-freethreading-debug The provisional Free Threading (PEP 703) build of Python. Debug build. @@ -1090,6 +1102,9 @@ install -d -m 0755 %{buildroot}%{pylibdir}/site-packages/__pycache__ # Note that rpmlint will complain about hardcoded library path; # this is intentional. install -d -m 0755 %{buildroot}%{_prefix}/lib/python%{pybasever}/site-packages/__pycache__ +%if %{with freethreading_build} +install -d -m 0755 %{buildroot}%{_prefix}/lib/python%{pybasever}%{ABIFLAGS_freethreading}/site-packages/__pycache__ +%endif # with freethreading_build %endif %if %{with main_python} @@ -1156,7 +1171,7 @@ find . -name "*~" -exec rm -f {} \; %if 0%{?clamp_mtime_to_source_date_epoch} LD_LIBRARY_PATH="%{buildroot}%{dynload_dir}/:%{buildroot}%{_libdir}" \ PYTHONPATH="%{_rpmconfigdir}/redhat" \ -%{buildroot}%{_bindir}/python%{pybasever} -s -B -m clamp_source_mtime %{buildroot}%{pylibdir} +%{buildroot}%{_bindir}/python%{pybasever} -s -B -m clamp_source_mtime %{buildroot}%{pylibdir} %{?with_freethreading_build:%{buildroot}%{pylibdir_freethreading}} %endif # compileall CMD line options: # -f - force rebuild even if timestamps are up to date @@ -1354,59 +1369,61 @@ CheckPython freethreading %license %{pylibdir}/LICENSE.txt # Pure Python modules -%{pylibdir}/*.py -%dir %{pylibdir}/__pycache__/ -%{pylibdir}/__pycache__/*%{bytecode_suffixes} - -%{pylibdir}/_pyrepl/ -%{pylibdir}/asyncio/ -%{pylibdir}/collections/ -%{pylibdir}/concurrent/ -%{pylibdir}/ctypes/ -%{pylibdir}/curses/ -%{pylibdir}/dbm/ -%{pylibdir}/encodings/ -%{pylibdir}/html/ -%{pylibdir}/http/ -%{pylibdir}/importlib/ -%{pylibdir}/json/ -%{pylibdir}/logging/ -%{pylibdir}/multiprocessing/ -%{pylibdir}/pathlib/ -%{pylibdir}/pydoc_data/ -%{pylibdir}/re/ -%{pylibdir}/sqlite3/ -%{pylibdir}/sysconfig/ -%{pylibdir}/tomllib/ -%{pylibdir}/unittest/ -%{pylibdir}/urllib/ -%{pylibdir}/venv/ -%{pylibdir}/wsgiref/ -%{pylibdir}/xml/ -%{pylibdir}/xmlrpc/ -%{pylibdir}/zipfile/ -%{pylibdir}/zoneinfo/ - -# Handle the email module in detail to mark architecture.rst as %%doc -%dir %{pylibdir}/email/ -%dir %{pylibdir}/email/__pycache__/ -%{pylibdir}/email/*.py -%{pylibdir}/email/__pycache__/*%{bytecode_suffixes} -%{pylibdir}/email/mime/ -%doc %{pylibdir}/email/architecture.rst - -# Handle the ensurepip module in detail to not accidentally ship wheels -%dir %{pylibdir}/ensurepip/ -%dir %{pylibdir}/ensurepip/__pycache__/ -%{pylibdir}/ensurepip/*.py -%{pylibdir}/ensurepip/__pycache__/*%{bytecode_suffixes} -%if %{with rpmwheels} -%exclude %{pylibdir}/ensurepip/_bundled -%else -%dir %{pylibdir}/ensurepip/_bundled -%{pylibdir}/ensurepip/_bundled/pip-%{pip_version}-py3-none-any.whl +# This is macronized for reuse in the -freethreading package +%define pure_python_modules() \ +%{1}/*.py\ +%dir %{1}/__pycache__/\ +%{1}/__pycache__/*%{bytecode_suffixes}\ +\ +%{1}/_pyrepl/\ +%{1}/asyncio/\ +%{1}/collections/\ +%{1}/concurrent/\ +%{1}/ctypes/\ +%{1}/curses/\ +%{1}/dbm/\ +%{1}/encodings/\ +%{1}/html/\ +%{1}/http/\ +%{1}/importlib/\ +%{1}/json/\ +%{1}/logging/\ +%{1}/multiprocessing/\ +%{1}/pathlib/\ +%{1}/pydoc_data/\ +%{1}/re/\ +%{1}/sqlite3/\ +%{1}/sysconfig/\ +%{1}/tomllib/\ +%{1}/unittest/\ +%{1}/urllib/\ +%{1}/venv/\ +%{1}/wsgiref/\ +%{1}/xml/\ +%{1}/xmlrpc/\ +%{1}/zipfile/\ +%{1}/zoneinfo/\ +# Handle the email module in detail to mark architecture.rst as %%doc\ +%dir %{1}/email/\ +%dir %{1}/email/__pycache__/\ +%{1}/email/*.py\ +%{1}/email/__pycache__/*%{bytecode_suffixes}\ +%{1}/email/mime/\ +%doc %{1}/email/architecture.rst\ +# Handle the ensurepip module in detail to not accidentally ship wheels\ +%dir %{1}/ensurepip/\ +%dir %{1}/ensurepip/__pycache__/\ +%{1}/ensurepip/*.py\ +%{1}/ensurepip/__pycache__/*%{bytecode_suffixes}\ +%if %{with rpmwheels}\ +%exclude %{1}/ensurepip/_bundled\ +%else\ +%dir %{1}/ensurepip/_bundled\ +%{1}/ensurepip/_bundled/pip-%{pip_version}-py3-none-any.whl\ %endif +%pure_python_modules %{pylibdir} + # This will be in the tkinter package %exclude %{pylibdir}/turtle.py %exclude %{pylibdir}/__pycache__/turtle*%{bytecode_suffixes} @@ -1420,72 +1437,72 @@ CheckPython freethreading # Extension modules # This is macronized for reuse in the -debug package %define extension_modules() \ -%{dynload_dir}/_asyncio.%{1}.so\ -%{dynload_dir}/_bisect.%{1}.so\ -%{dynload_dir}/_blake2.%{1}.so\ -%{dynload_dir}/_bz2.%{1}.so\ -%{dynload_dir}/_codecs_cn.%{1}.so\ -%{dynload_dir}/_codecs_hk.%{1}.so\ -%{dynload_dir}/_codecs_iso2022.%{1}.so\ -%{dynload_dir}/_codecs_jp.%{1}.so\ -%{dynload_dir}/_codecs_kr.%{1}.so\ -%{dynload_dir}/_codecs_tw.%{1}.so\ -%{dynload_dir}/_contextvars.%{1}.so\ -%{dynload_dir}/_csv.%{1}.so\ -%{dynload_dir}/_ctypes.%{1}.so\ -%{dynload_dir}/_curses.%{1}.so\ -%{dynload_dir}/_curses_panel.%{1}.so\ -%{dynload_dir}/_datetime.%{1}.so\ -%{dynload_dir}/_dbm.%{1}.so\ +%{1}/_asyncio.%{2}.so\ +%{1}/_bisect.%{2}.so\ +%{1}/_blake2.%{2}.so\ +%{1}/_bz2.%{2}.so\ +%{1}/_codecs_cn.%{2}.so\ +%{1}/_codecs_hk.%{2}.so\ +%{1}/_codecs_iso2022.%{2}.so\ +%{1}/_codecs_jp.%{2}.so\ +%{1}/_codecs_kr.%{2}.so\ +%{1}/_codecs_tw.%{2}.so\ +%{1}/_contextvars.%{2}.so\ +%{1}/_csv.%{2}.so\ +%{1}/_ctypes.%{2}.so\ +%{1}/_curses.%{2}.so\ +%{1}/_curses_panel.%{2}.so\ +%{1}/_datetime.%{2}.so\ +%{1}/_dbm.%{2}.so\ %if %{with gdbm}\ -%{dynload_dir}/_gdbm.%{1}.so\ +%{1}/_gdbm.%{2}.so\ %endif\ -%{dynload_dir}/_decimal.%{1}.so\ -%{dynload_dir}/_elementtree.%{1}.so\ -%{dynload_dir}/_hashlib.%{1}.so\ -%{dynload_dir}/_heapq.%{1}.so\ -%{dynload_dir}/_interpchannels.%{1}.so\ -%{dynload_dir}/_interpqueues.%{1}.so\ -%{dynload_dir}/_interpreters.%{1}.so\ -%{dynload_dir}/_json.%{1}.so\ -%{dynload_dir}/_lsprof.%{1}.so\ -%{dynload_dir}/_lzma.%{1}.so\ -%{dynload_dir}/_md5.%{1}.so\ -%{dynload_dir}/_multibytecodec.%{1}.so\ -%{dynload_dir}/_multiprocessing.%{1}.so\ -%{dynload_dir}/_opcode.%{1}.so\ -%{dynload_dir}/_pickle.%{1}.so\ -%{dynload_dir}/_posixshmem.%{1}.so\ -%{dynload_dir}/_posixsubprocess.%{1}.so\ -%{dynload_dir}/_queue.%{1}.so\ -%{dynload_dir}/_random.%{1}.so\ -%{dynload_dir}/_sha1.%{1}.so\ -%{dynload_dir}/_sha2.%{1}.so\ -%{dynload_dir}/_sha3.%{1}.so\ -%{dynload_dir}/_socket.%{1}.so\ -%{dynload_dir}/_sqlite3.%{1}.so\ -%{dynload_dir}/_ssl.%{1}.so\ -%{dynload_dir}/_statistics.%{1}.so\ -%{dynload_dir}/_struct.%{1}.so\ -%{dynload_dir}/_uuid.%{1}.so\ -%{dynload_dir}/_zoneinfo.%{1}.so\ -%{dynload_dir}/array.%{1}.so\ -%{dynload_dir}/binascii.%{1}.so\ -%{dynload_dir}/cmath.%{1}.so\ -%{dynload_dir}/fcntl.%{1}.so\ -%{dynload_dir}/grp.%{1}.so\ -%{dynload_dir}/math.%{1}.so\ -%{dynload_dir}/mmap.%{1}.so\ -%{dynload_dir}/pyexpat.%{1}.so\ -%{dynload_dir}/readline.%{1}.so\ -%{dynload_dir}/resource.%{1}.so\ -%{dynload_dir}/select.%{1}.so\ -%{dynload_dir}/syslog.%{1}.so\ -%{dynload_dir}/termios.%{1}.so\ -%{dynload_dir}/unicodedata.%{1}.so\ -%{dynload_dir}/zlib.%{1}.so +%{1}/_decimal.%{2}.so\ +%{1}/_elementtree.%{2}.so\ +%{1}/_hashlib.%{2}.so\ +%{1}/_heapq.%{2}.so\ +%{1}/_interpchannels.%{2}.so\ +%{1}/_interpqueues.%{2}.so\ +%{1}/_interpreters.%{2}.so\ +%{1}/_json.%{2}.so\ +%{1}/_lsprof.%{2}.so\ +%{1}/_lzma.%{2}.so\ +%{1}/_md5.%{2}.so\ +%{1}/_multibytecodec.%{2}.so\ +%{1}/_multiprocessing.%{2}.so\ +%{1}/_opcode.%{2}.so\ +%{1}/_pickle.%{2}.so\ +%{1}/_posixshmem.%{2}.so\ +%{1}/_posixsubprocess.%{2}.so\ +%{1}/_queue.%{2}.so\ +%{1}/_random.%{2}.so\ +%{1}/_sha1.%{2}.so\ +%{1}/_sha2.%{2}.so\ +%{1}/_sha3.%{2}.so\ +%{1}/_socket.%{2}.so\ +%{1}/_sqlite3.%{2}.so\ +%{1}/_ssl.%{2}.so\ +%{1}/_statistics.%{2}.so\ +%{1}/_struct.%{2}.so\ +%{1}/_uuid.%{2}.so\ +%{1}/_zoneinfo.%{2}.so\ +%{1}/array.%{2}.so\ +%{1}/binascii.%{2}.so\ +%{1}/cmath.%{2}.so\ +%{1}/fcntl.%{2}.so\ +%{1}/grp.%{2}.so\ +%{1}/math.%{2}.so\ +%{1}/mmap.%{2}.so\ +%{1}/pyexpat.%{2}.so\ +%{1}/readline.%{2}.so\ +%{1}/resource.%{2}.so\ +%{1}/select.%{2}.so\ +%{1}/syslog.%{2}.so\ +%{1}/termios.%{2}.so\ +%{1}/unicodedata.%{2}.so\ +%{1}/zlib.%{2}.so -%extension_modules %{SOABI_optimized} +%extension_modules %{dynload_dir} %{SOABI_optimized} %dir %{pylibdir}/site-packages/ %dir %{pylibdir}/site-packages/__pycache__/ @@ -1582,23 +1599,23 @@ CheckPython freethreading # Extension modules # This is macronized for reuse in the -debug package %define extension_modules_test() \ -%{dynload_dir}/_ctypes_test.%{1}.so\ -%{dynload_dir}/_testbuffer.%{1}.so\ -%{dynload_dir}/_testcapi.%{1}.so\ -%{dynload_dir}/_testclinic.%{1}.so\ -%{dynload_dir}/_testclinic_limited.%{1}.so\ -%{dynload_dir}/_testexternalinspection.%{1}.so\ -%{dynload_dir}/_testimportmultiple.%{1}.so\ -%{dynload_dir}/_testinternalcapi.%{1}.so\ -%{dynload_dir}/_testlimitedcapi.%{1}.so\ -%{dynload_dir}/_testmultiphase.%{1}.so\ -%{dynload_dir}/_testsinglephase.%{1}.so\ -%{dynload_dir}/_xxtestfuzz.%{1}.so\ -%{dynload_dir}/xxlimited.%{1}.so\ -%{dynload_dir}/xxlimited_35.%{1}.so\ -%{dynload_dir}/xxsubtype.%{1}.so +%{1}/_ctypes_test.%{2}.so\ +%{1}/_testbuffer.%{2}.so\ +%{1}/_testcapi.%{2}.so\ +%{1}/_testclinic.%{2}.so\ +%{1}/_testclinic_limited.%{2}.so\ +%{1}/_testexternalinspection.%{2}.so\ +%{1}/_testimportmultiple.%{2}.so\ +%{1}/_testinternalcapi.%{2}.so\ +%{1}/_testlimitedcapi.%{2}.so\ +%{1}/_testmultiphase.%{2}.so\ +%{1}/_testsinglephase.%{2}.so\ +%{1}/_xxtestfuzz.%{2}.so\ +%{1}/xxlimited.%{2}.so\ +%{1}/xxlimited_35.%{2}.so\ +%{1}/xxsubtype.%{2}.so -%extension_modules_test %{SOABI_optimized} +%extension_modules_test %{dynload_dir} %{SOABI_optimized} # We don't bother splitting the debug build out into further subpackages: @@ -1620,8 +1637,8 @@ CheckPython freethreading %{_libdir}/%{py_INSTSONAME_debug} # Analog of the libs, test, and tkinter extension modules: -%extension_modules %{SOABI_debug} -%extension_modules_test %{SOABI_debug} +%extension_modules %{dynload_dir} %{SOABI_debug} +%extension_modules_test %{dynload_dir} %{SOABI_debug} %{dynload_dir}/_tkinter.%{SOABI_debug}.so # Analog of the -devel subpackage's files: @@ -1640,19 +1657,40 @@ CheckPython freethreading %if %{with freethreading_build} %files -n python%{pybasever}-freethreading +%dir %{pylibdir_freethreading} +%dir %{dynload_dir_freethreading} + +%license %{pylibdir_freethreading}/LICENSE.txt +%doc %{pylibdir_freethreading}/site-packages/README.txt + +# Pure Python modules +%pure_python_modules %{pylibdir_freethreading} + +# Modules that we separate from python3-libs, but want to ship in -freethreading +%{pylibdir_freethreading}/__phello__/ +%{pylibdir_freethreading}/idlelib/ +%{pylibdir_freethreading}/test/ +%{pylibdir_freethreading}/tkinter/ +%{pylibdir_freethreading}/turtledemo/ + +# This will be in the -freethreading-debug package +%if %{with debug_build} +%exclude %{pylibdir_freethreading}/_sysconfigdata_%{ABIFLAGS_freethreading_debug}_linux_%{platform_triplet}.py +%exclude %{pylibdir_freethreading}/__pycache__/_sysconfigdata_%{ABIFLAGS_freethreading_debug}_linux_%{platform_triplet}%{bytecode_suffixes} +%endif + # Analog of the core subpackage's files: %{_bindir}/python%{LDVERSION_freethreading} # Analog to the -libs subpackage's files: %{_libdir}/%{py_INSTSONAME_freethreading} -# Analog of the libs, test, and tkinter extension modules: -%extension_modules %{SOABI_freethreading} -%extension_modules_test %{SOABI_freethreading} -%{dynload_dir}/_tkinter.%{SOABI_freethreading}.so +%extension_modules %{dynload_dir_freethreading} %{SOABI_freethreading} +%extension_modules_test %{dynload_dir_freethreading} %{SOABI_freethreading} +%{dynload_dir_freethreading}/_tkinter.%{SOABI_freethreading}.so # Analog of the -devel subpackage's files: -%{pylibdir}/config-%{LDVERSION_freethreading}-%{platform_triplet}/ +%{pylibdir_freethreading}/config-%{LDVERSION_freethreading}-%{platform_triplet}/ %{_includedir}/python%{LDVERSION_freethreading}/ %{_bindir}/python%{LDVERSION_freethreading}-config %{_bindir}/python%{LDVERSION_freethreading}-*-config @@ -1660,9 +1698,6 @@ CheckPython freethreading %{_libdir}/pkgconfig/python-%{LDVERSION_freethreading}.pc %{_libdir}/pkgconfig/python-%{LDVERSION_freethreading}-embed.pc -%{pylibdir}/_sysconfigdata_%{ABIFLAGS_freethreading}_linux_%{platform_triplet}.py -%{pylibdir}/__pycache__/_sysconfigdata_%{ABIFLAGS_freethreading}_linux_%{platform_triplet}%{bytecode_suffixes} - %endif # with freethreading_build %if %{with freethreading_build} && %{with debug_build} @@ -1674,12 +1709,12 @@ CheckPython freethreading %{_libdir}/%{py_INSTSONAME_freethreading_debug} # Analog of the libs, test, and tkinter extension modules: -%extension_modules %{SOABI_freethreading_debug} -%extension_modules_test %{SOABI_freethreading_debug} -%{dynload_dir}/_tkinter.%{SOABI_freethreading_debug}.so +%extension_modules %{dynload_dir_freethreading} %{SOABI_freethreading_debug} +%extension_modules_test %{dynload_dir_freethreading} %{SOABI_freethreading_debug} +%{dynload_dir_freethreading}/_tkinter.%{SOABI_freethreading_debug}.so # Analog of the -devel subpackage's files: -%{pylibdir}/config-%{LDVERSION_freethreading_debug}-%{platform_triplet}/ +%{pylibdir_freethreading}/config-%{LDVERSION_freethreading_debug}-%{platform_triplet}/ %{_includedir}/python%{LDVERSION_freethreading_debug}/ %{_bindir}/python%{LDVERSION_freethreading_debug}-config %{_bindir}/python%{LDVERSION_freethreading_debug}-*-config @@ -1687,8 +1722,8 @@ CheckPython freethreading %{_libdir}/pkgconfig/python-%{LDVERSION_freethreading_debug}.pc %{_libdir}/pkgconfig/python-%{LDVERSION_freethreading_debug}-embed.pc -%{pylibdir}/_sysconfigdata_%{ABIFLAGS_freethreading_debug}_linux_%{platform_triplet}.py -%{pylibdir}/__pycache__/_sysconfigdata_%{ABIFLAGS_freethreading_debug}_linux_%{platform_triplet}%{bytecode_suffixes} +%{pylibdir_freethreading}/_sysconfigdata_%{ABIFLAGS_freethreading_debug}_linux_%{platform_triplet}.py +%{pylibdir_freethreading}/__pycache__/_sysconfigdata_%{ABIFLAGS_freethreading_debug}_linux_%{platform_triplet}%{bytecode_suffixes} %endif # with freethreading_build && debug_build @@ -1713,6 +1748,9 @@ CheckPython freethreading # ====================================================== %changelog +* Fri Jul 19 2024 Miro Hrončok - 3.13.0~b4-1 +- Update to Python 3.13.0b4 + * Fri Jul 19 2024 Fedora Release Engineering - 3.13.0~b3-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild diff --git a/rpmlint.toml b/rpmlint.toml index 2b157ef..231aec5 100644 --- a/rpmlint.toml +++ b/rpmlint.toml @@ -6,7 +6,7 @@ Filters = [ # TESTS: - '(zero-length|pem-certificate|uncompressed-zip) /usr/lib(64)?/python3\.\d+/test', + '(zero-length|pem-certificate|uncompressed-zip) /usr/lib(64)?/python3\.\d+t?/test', # OTHER DELIBERATES: @@ -14,7 +14,7 @@ Filters = [ 'missing-call-to-chdir-with-chroot', # gethostbyname function calls gethostbyname - '(E|W): binary-or-shlib-calls-gethostbyname /usr/lib(64)?/python3\.\d+/lib-dynload/_socket\.', + '(E|W): binary-or-shlib-calls-gethostbyname /usr/lib(64)?/python3\.\d+t?/lib-dynload/_socket\.', # intentionally unversioned and selfobsoleted 'unversioned-explicit-obsoletes python', @@ -28,18 +28,18 @@ Filters = [ 'only-non-binary-in-usr-lib', # some devel files that are deliberately needed - 'devel-file-in-non-devel-package /usr/include/python3\.\d+m?/pyconfig-(32|64)\.h', - 'devel-file-in-non-devel-package /usr/lib(64)?/python3\.\d+/distutils/tests/xxmodule\.c', + 'devel-file-in-non-devel-package /usr/include/python3\.\d+m?t?/pyconfig-(32|64)\.h', + 'devel-file-in-non-devel-package /usr/lib(64)?/python3\.\d+t?/distutils/tests/xxmodule\.c', # ...or are used as test data - 'devel-file-in-non-devel-package /usr/lib(64)?/python3\.\d+/test', + 'devel-file-in-non-devel-package /usr/lib(64)?/python3\.\d+t?/test', # some bytecode is shipped without sources on purpose, as a space optimization # if this regex needs to be relaxed in the future, make sure it **does not** match pyc files in __pycache__ - 'python-bytecode-without-source /usr/lib(64)?/python3\.\d+/(encodings|pydoc_data)/[^/]+.pyc', + 'python-bytecode-without-source /usr/lib(64)?/python3\.\d+t?/(encodings|pydoc_data)/[^/]+.pyc', # DUPLICATE FILES # test data are often duplicated - '(E|W): files-duplicate /usr/lib(64)?/python3\.\d+/(test|__phello__)/', + '(E|W): files-duplicate /usr/lib(64)?/python3\.\d+t?/(test|__phello__)/', # duplicated inits or mains are also common '(E|W): files-duplicate .+__init__\.py.+__init__\.py', '(E|W): files-duplicate .+__main__\.py.+__main__\.py', diff --git a/sources b/sources index 58ea498..aa5263c 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (Python-3.13.0b3.tar.xz) = 1f0ef2d6f5d450664ad4104b92193b5a2dbe9c79add0a79c35ad9508f9fc7f1a5561efd5e4367defddf45457291524d353705d9a60b3550065920e204c77357d -SHA512 (Python-3.13.0b3.tar.xz.asc) = 3d8bdc8c26441a12518940d264e93a8897042e297ccf9cd2ddec725716a58486475be9462582ee489bd189a4d028b43504f979298174c1b008d521b7ab5fbf1b +SHA512 (Python-3.13.0b4.tar.xz) = e556f7a4e54b688d0424b0bd84f9849b52f4f7e04c68d4d5b877d86b4f9ded92c9efaa2b7ab33f345235f35e8d544833542f7a4cb100d0ff15b7d98b8367b935 +SHA512 (Python-3.13.0b4.tar.xz.asc) = 243637efff94965aa4d997fe26c91a7c1aa7dcfdf7f78d35d6f4fc408b654dfa9d075d1c73bc5a90d145f6e5029ee395a86faf7e027c24a55fabfea6ca20fbd4