The package rpms/python3.13.git has added or updated architecture specific content in its spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s): https://src.fedoraproject.org/cgit/rpms/python3.13.git/commit/?id=f1315eaf0b....
Change: +%ifarch x86_64 aarch64
Thanks.
Full change: ============
commit f1315eaf0bf93ef8f7d514df1529ebce303a4efd Author: Miro Hrončok miro@hroncok.cz Date: Sun May 12 19:32:37 2024 +0200
On Fedora 40+ x86_64 and aarch64, build Python with the experimental JIT compiler
diff --git a/00429-gh-118943-fix-another-race-condition-when-generating-jit_stencils-h.patch b/00429-gh-118943-fix-another-race-condition-when-generating-jit_stencils-h.patch new file mode 100644 index 0000000..f6ab16e --- /dev/null +++ b/00429-gh-118943-fix-another-race-condition-when-generating-jit_stencils-h.patch @@ -0,0 +1,40 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= miro@hroncok.cz +Date: Tue, 18 Jun 2024 15:25:31 +0200 +Subject: [PATCH] 00429: GH-118943: Fix another race condition when generating + jit_stencils.h + +Another process might have already moved jit_stencils.h.new +--- + .../Build/2024-06-18-15-28-25.gh-issue-118943.aie7nn.rst | 3 +++ + Tools/jit/_targets.py | 7 ++++++- + 2 files changed, 9 insertions(+), 1 deletion(-) + create mode 100644 Misc/NEWS.d/next/Build/2024-06-18-15-28-25.gh-issue-118943.aie7nn.rst + +diff --git a/Misc/NEWS.d/next/Build/2024-06-18-15-28-25.gh-issue-118943.aie7nn.rst b/Misc/NEWS.d/next/Build/2024-06-18-15-28-25.gh-issue-118943.aie7nn.rst +new file mode 100644 +index 0000000000..997c990a96 +--- /dev/null ++++ b/Misc/NEWS.d/next/Build/2024-06-18-15-28-25.gh-issue-118943.aie7nn.rst +@@ -0,0 +1,3 @@ ++Fix a possible race condition affecting parallel builds configured with ++``--enable-experimental-jit``, in which :exc:`FileNotFoundError` could be caused by ++another process already moving ``jit_stencils.h.new`` to ``jit_stencils.h``. +diff --git a/Tools/jit/_targets.py b/Tools/jit/_targets.py +index 5604c429bc..73d10a1287 100644 +--- a/Tools/jit/_targets.py ++++ b/Tools/jit/_targets.py +@@ -221,7 +221,12 @@ def build( + file.write("\n") + for line in _writer.dump(stencil_groups): + file.write(f"{line}\n") +- jit_stencils_new.replace(jit_stencils) ++ try: ++ jit_stencils_new.replace(jit_stencils) ++ except FileNotFoundError: ++ # another process probably already moved the file ++ if not jit_stencils.is_file(): ++ raise + finally: + jit_stencils_new.unlink(missing_ok=True) + diff --git a/python3.13.spec b/python3.13.spec index db59320..32ef5b1 100644 --- a/python3.13.spec +++ b/python3.13.spec @@ -17,7 +17,7 @@ URL: https://www.python.org/ %global prerel b2 %global upstream_version %{general_version}%{?prerel} Version: %{general_version}%{?prerel:~%{prerel}} -Release: 3%{?dist} +Release: 4%{?dist} License: Python-2.0.1
@@ -138,6 +138,22 @@ Provides: bundled(python3dist(packaging)) = 24 # (the -freethreading subpackage) %bcond_without freethreading_build
+# PEP 744: JIT Compilation +# Whether to build with the experimental JIT compiler +# We can only have this on Fedora 40+, where clang 18+ is available +# And only on certain architectures: https://peps.python.org/pep-0744/#support +# The freethreading build (when enabled) does not support JIT yet +%bcond_with jit +%ifarch x86_64 aarch64 +%if 0%{?fedora} >= 40 || 0%{?rhel} >= 10 +%bcond_without jit +%endif +%endif +%if %{with jit} +# When built with JIT, it still needs to be enabled on runtime via PYTHON_JIT=1 +%global jit_flag --enable-experimental-jit=yes-off +%endif + # Support for the GDB debugger %bcond_without gdb_hooks
@@ -299,6 +315,11 @@ BuildRequires: tcl-devel BuildRequires: tk-devel BuildRequires: tzdata
+%if %{with jit} +BuildRequires: clang(major) = 18 +BuildRequires: llvm(major) = 18 +%endif + %if %{with valgrind} BuildRequires: valgrind-devel %endif @@ -373,6 +394,12 @@ Source11: idle3.appdata.xml # pypa/distutils integration: https://github.com/pypa/distutils/pull/70 Patch251: 00251-change-user-install-location.patch
+# 00429 # fa7831be5e5365646d4dd400e23e977f83f64923 +# GH-118943: Fix another race condition when generating jit_stencils.h +# +# Another process might have already moved jit_stencils.h.new +Patch429: 00429-gh-118943-fix-another-race-condition-when-generating-jit_stencils-h.patch + # (New patches go here ^^^) # # When adding new patches to "python" and "python3" in Fedora, EL, etc., @@ -906,12 +933,12 @@ BuildPython() { # option produces too many warnings when compiling at the O0 optimization level. # See also: https://bugzilla.redhat.com/show_bug.cgi?id=1818857 BuildPython debug \ - "--without-ensurepip --with-pydebug" \ + "--without-ensurepip --with-pydebug %{?jit_flag}" \ "%{optflags_debug}" %endif # with debug_build
BuildPython optimized \ - "--without-ensurepip %{optimizations_flag}" \ + "--without-ensurepip %{?jit_flag} %{optimizations_flag}" \ "%{optflags_optimized}"
%if %{with freethreading_build} && %{with debug_build} @@ -1687,6 +1714,11 @@ CheckPython freethreading # ======================================================
%changelog +* Tue Jun 18 2024 Miro Hrončok mhroncok@redhat.com - 3.13.0~b2-4 +- On Fedora 40+ x86_64 and aarch64, build Python with the experimental JIT compiler +- To enable it on runtime, set the PYTHON_JIT environment variable to 1 +- https://peps.python.org/pep-0744/ + * Thu Jun 06 2024 Python Maint python-maint@redhat.com - 3.13.0~b2-3 - Rebuilt for Python 3.13
commit 29ab7b7006c2dcc24bd0b603412428578fd11cf7 Author: Karolina Surma ksurma@redhat.com Date: Fri Jun 7 14:06:06 2024 +0200
Skip test_deadlock on s390x
diff --git a/python3.13.spec b/python3.13.spec index 6ae61cb..db59320 100644 --- a/python3.13.spec +++ b/python3.13.spec @@ -1262,6 +1262,8 @@ CheckPython() { # see: https://github.com/python/cpython/issues/104280#issuecomment-1669249980 # test_gdb is skipped due to https://bugzilla.redhat.com/2275274#c11 # test_signal is skipped due to https://github.com/python/cpython/issues/118989 + # test.test_concurrent_futures.test_deadlock tends to time out on s390x in + # freethreading{,-debug} build, skipping it to shorten the build time LD_LIBRARY_PATH=$ConfDir $ConfDir/python -m test.regrtest \ -wW --slowest %{_smp_mflags} --timeout=2700 \ -i test_freeze_simple_script \ @@ -1272,6 +1274,7 @@ CheckPython() { %endif %ifarch s390x -x test_signal \ + -i test_deadlock \ %endif
echo FINISHED: CHECKING OF PYTHON FOR CONFIGURATION: $ConfName
commit 5cf9f2e9e5bcf78ee01a8384c40eca1edecd825b Author: Python Maint python-maint@redhat.com Date: Thu Jun 6 18:27:18 2024 +0200
Rebuilt for Python 3.13
diff --git a/python3.13.spec b/python3.13.spec index 0da5d22..6ae61cb 100644 --- a/python3.13.spec +++ b/python3.13.spec @@ -17,7 +17,7 @@ URL: https://www.python.org/ %global prerel b2 %global upstream_version %{general_version}%{?prerel} Version: %{general_version}%{?prerel:~%{prerel}} -Release: 2%{?dist} +Release: 3%{?dist} License: Python-2.0.1
@@ -58,11 +58,11 @@ License: Python-2.0.1 # IMPORTANT: When bootstrapping, it's very likely python-pip-wheel is # not available. Turn off the rpmwheels bcond until # python-pip is built with a wheel to get around the issue. -%bcond_without bootstrap +%bcond_with bootstrap
# Whether to use RPM build wheels from the python-{pip,setuptools,wheel}-wheel packages # Uses upstream bundled prebuilt wheels otherwise -%bcond_with rpmwheels +%bcond_without rpmwheels # If the rpmwheels condition is disabled, we use the bundled wheel packages # from Python with the versions below. # This needs to be manually updated when we update Python. @@ -125,10 +125,10 @@ Provides: bundled(python3dist(packaging)) = 24 }
# Expensive optimizations (mainly, profile-guided optimizations) -%bcond_with optimizations +%bcond_without optimizations
# Run the test suite in %%check -%bcond_with tests +%bcond_without tests
# Extra build for debugging the interpreter or C-API extensions # (the -debug subpackages) @@ -1684,6 +1684,9 @@ CheckPython freethreading # ======================================================
%changelog +* Thu Jun 06 2024 Python Maint python-maint@redhat.com - 3.13.0~b2-3 +- Rebuilt for Python 3.13 + * Thu Jun 06 2024 Python Maint python-maint@redhat.com - 3.13.0~b2-2 - Bootstrap for Python 3.13
commit a84345561014ffa696a390b9985907f951a7acd1 Author: Python Maint python-maint@redhat.com Date: Thu Jun 6 16:08:11 2024 +0200
Bootstrap for Python 3.13
diff --git a/python3.13.spec b/python3.13.spec index d44d76d..0da5d22 100644 --- a/python3.13.spec +++ b/python3.13.spec @@ -17,7 +17,7 @@ URL: https://www.python.org/ %global prerel b2 %global upstream_version %{general_version}%{?prerel} Version: %{general_version}%{?prerel:~%{prerel}} -Release: 1%{?dist} +Release: 2%{?dist} License: Python-2.0.1
@@ -58,11 +58,11 @@ License: Python-2.0.1 # IMPORTANT: When bootstrapping, it's very likely python-pip-wheel is # not available. Turn off the rpmwheels bcond until # python-pip is built with a wheel to get around the issue. -%bcond_with bootstrap +%bcond_without bootstrap
# Whether to use RPM build wheels from the python-{pip,setuptools,wheel}-wheel packages # Uses upstream bundled prebuilt wheels otherwise -%bcond_without rpmwheels +%bcond_with rpmwheels # If the rpmwheels condition is disabled, we use the bundled wheel packages # from Python with the versions below. # This needs to be manually updated when we update Python. @@ -125,10 +125,10 @@ Provides: bundled(python3dist(packaging)) = 24 }
# Expensive optimizations (mainly, profile-guided optimizations) -%bcond_without optimizations +%bcond_with optimizations
# Run the test suite in %%check -%bcond_without tests +%bcond_with tests
# Extra build for debugging the interpreter or C-API extensions # (the -debug subpackages) @@ -1684,6 +1684,9 @@ CheckPython freethreading # ======================================================
%changelog +* Thu Jun 06 2024 Python Maint python-maint@redhat.com - 3.13.0~b2-2 +- Bootstrap for Python 3.13 + * Wed Jun 05 2024 Miro Hrončok mhroncok@redhat.com - 3.13.0~b2-1 - Update to Python 3.13.0b2
arch-excludes@lists.fedoraproject.org