diff --git a/plugins/python-build/share/python-build/3.10.22 b/plugins/python-build/share/python-build/3.10.22 new file mode 100644 index 00000000..f41d679a --- /dev/null +++ b/plugins/python-build/share/python-build/3.10.22 @@ -0,0 +1,9 @@ +prefer_openssl3 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-3.6.5" "https://github.com/openssl/openssl/releases/download/openssl-3.6.5/openssl-3.6.5.tar.gz#a2157c2830efdec3788939b00c9b0638306d3f0bbb76dc4832ee503bb397df98" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.3" "https://ftpmirror.gnu.org/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.10.22" "https://www.python.org/ftp/python/3.10.22/Python-3.10.22.tar.xz#c61fe9b1a1a7ec2a0b0388e664187c378a5325a89e3606d220abf5bdfccb2543" standard verify_py310 copy_python_gdb ensurepip +else + install_package "Python-3.10.22" "https://www.python.org/ftp/python/3.10.22/Python-3.10.22.tgz#9448b34d16f8e3db0964ac3ed9fb283197747543c2c021f283ffd2c8b7287357" standard verify_py310 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.11.17 b/plugins/python-build/share/python-build/3.11.17 new file mode 100644 index 00000000..dc1ab2bd --- /dev/null +++ b/plugins/python-build/share/python-build/3.11.17 @@ -0,0 +1,11 @@ +prefer_openssl3 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 +install_package "openssl-3.6.5" "https://github.com/openssl/openssl/releases/download/openssl-3.6.5/openssl-3.6.5.tar.gz#a2157c2830efdec3788939b00c9b0638306d3f0bbb76dc4832ee503bb397df98" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.3" "https://ftpmirror.gnu.org/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.11.17" "https://www.python.org/ftp/python/3.11.17/Python-3.11.17.tar.xz#bfb74ad39efae27cda510f134ab408e00f9992c56851cfc0b1cdb5646da11599" standard verify_py311 copy_python_gdb ensurepip +else + install_package "Python-3.11.17" "https://www.python.org/ftp/python/3.11.17/Python-3.11.17.tgz#53cdee63ac4bf12387b7b33a53d3b1f8f4941cad73807a7b4fe91bb001ef004a" standard verify_py311 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/patches/3.10.22/Python-3.10.22/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch b/plugins/python-build/share/python-build/patches/3.10.22/Python-3.10.22/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch new file mode 100644 index 00000000..6da534e2 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.10.22/Python-3.10.22/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch @@ -0,0 +1,27 @@ +From 3fec519d6b326918f39ceb142ef762042ce8365f Mon Sep 17 00:00:00 2001 +From: Ivan Pozdeev +Date: Fri, 26 Dec 2025 13:39:21 +0300 +Subject: [PATCH] Recognize an argument to -j in MAKEFLAGS + +--- + setup.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/setup.py b/setup.py +index ad8fb81b218..5666deaf67b 100644 +--- a/setup.py ++++ b/setup.py +@@ -307,8 +307,8 @@ def __init__(self, dist): + self.failed_on_import = [] + self.missing = [] + self.disabled_configure = [] +- if '-j' in os.environ.get('MAKEFLAGS', ''): +- self.parallel = True ++ if (m:=re.search(r'(?:^|\s)(?:-j|--jobs)(?:\s+|=)?(\d*)',os.environ.get('MAKEFLAGS', ''))) is not None: ++ self.parallel = int(m.group(1)) if m.group(1) else True + + def add(self, ext): + self.extensions.append(ext) +-- +2.36.1.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/3.10.22/Python-3.10.22/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch b/plugins/python-build/share/python-build/patches/3.10.22/Python-3.10.22/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch new file mode 100644 index 00000000..7e5d9aaa --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.10.22/Python-3.10.22/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch @@ -0,0 +1,109 @@ +From cf8eba395ddf888ce7d9e5e4a257209841aff6a4 Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 10:30:17 +0300 +Subject: [PATCH] (downstream) [3.10] gh-153711: Avoid use of dup3 and pipe2 + calls introduced in macOS 27 (#155211) + +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 +++ + configure | 23 +++++++++++++++++-- + configure.ac | 11 +++++++-- + 3 files changed, 33 insertions(+), 4 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index 4b71c4e00f8..bfe3e819fff 100755 +--- a/configure ++++ b/configure +@@ -11952,7 +11952,7 @@ fi + + # checks for library functions + for ac_func in alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ +- clock confstr close_range copy_file_range ctermid dup3 execv explicit_bzero \ ++ clock confstr close_range copy_file_range ctermid execv explicit_bzero \ + explicit_memset faccessat fchmod fchmodat fchown fchownat \ + fdwalk fexecve fdopendir fork fpathconf fstatat ftime ftruncate futimesat \ + futimens futimes gai_strerror getentropy \ +@@ -11962,7 +11962,7 @@ for ac_func in alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ + if_nameindex \ + initgroups kill killpg lchown lockf linkat lstat lutimes mmap \ + memrchr mbrtowc mkdirat mkfifo \ +- madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause pipe2 plock poll \ ++ madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause plock poll \ + posix_fallocate posix_fadvise posix_spawn posix_spawnp pread preadv preadv2 \ + pthread_condattr_setclock pthread_init pthread_kill pwrite pwritev pwritev2 \ + readlink readlinkat readv realpath renameat \ +@@ -12005,6 +12005,25 @@ done + + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf '%s\n' "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf '%s\n' "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ ++fi ++ + ac_fn_c_check_decl "$LINENO" "dirfd" "ac_cv_have_decl_dirfd" "#include + #include + " +diff --git a/configure.ac b/configure.ac +index ac3be3850a9..0b88132edfb 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -3708,7 +3708,7 @@ fi + + # checks for library functions + AC_CHECK_FUNCS(alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ +- clock confstr close_range copy_file_range ctermid dup3 execv explicit_bzero \ ++ clock confstr close_range copy_file_range ctermid execv explicit_bzero \ + explicit_memset faccessat fchmod fchmodat fchown fchownat \ + fdwalk fexecve fdopendir fork fpathconf fstatat ftime ftruncate futimesat \ + futimens futimes gai_strerror getentropy \ +@@ -3718,7 +3718,7 @@ AC_CHECK_FUNCS(alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ + if_nameindex \ + initgroups kill killpg lchown lockf linkat lstat lutimes mmap \ + memrchr mbrtowc mkdirat mkfifo \ +- madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause pipe2 plock poll \ ++ madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause plock poll \ + posix_fallocate posix_fadvise posix_spawn posix_spawnp pread preadv preadv2 \ + pthread_condattr_setclock pthread_init pthread_kill pwrite pwritev pwritev2 \ + readlink readlinkat readv realpath renameat \ +@@ -3740,6 +3740,13 @@ if test "$MACHDEP" != linux; then + AC_CHECK_FUNCS(lchmod) + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) ++fi ++ + AC_CHECK_DECL(dirfd, + AC_DEFINE(HAVE_DIRFD, 1, + Define if you have the 'dirfd' function or macro.), , +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.11.17/Python-3.11.17/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch b/plugins/python-build/share/python-build/patches/3.11.17/Python-3.11.17/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch new file mode 100644 index 00000000..6da534e2 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.11.17/Python-3.11.17/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch @@ -0,0 +1,27 @@ +From 3fec519d6b326918f39ceb142ef762042ce8365f Mon Sep 17 00:00:00 2001 +From: Ivan Pozdeev +Date: Fri, 26 Dec 2025 13:39:21 +0300 +Subject: [PATCH] Recognize an argument to -j in MAKEFLAGS + +--- + setup.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/setup.py b/setup.py +index ad8fb81b218..5666deaf67b 100644 +--- a/setup.py ++++ b/setup.py +@@ -307,8 +307,8 @@ def __init__(self, dist): + self.failed_on_import = [] + self.missing = [] + self.disabled_configure = [] +- if '-j' in os.environ.get('MAKEFLAGS', ''): +- self.parallel = True ++ if (m:=re.search(r'(?:^|\s)(?:-j|--jobs)(?:\s+|=)?(\d*)',os.environ.get('MAKEFLAGS', ''))) is not None: ++ self.parallel = int(m.group(1)) if m.group(1) else True + + def add(self, ext): + self.extensions.append(ext) +-- +2.36.1.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/3.11.17/Python-3.11.17/0002-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch b/plugins/python-build/share/python-build/patches/3.11.17/Python-3.11.17/0002-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch new file mode 100644 index 00000000..3997f914 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.11.17/Python-3.11.17/0002-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch @@ -0,0 +1,64 @@ +From cc13eabc7ce08accf49656e258ba500f74a1dae8 Mon Sep 17 00:00:00 2001 +From: Ronald Oussoren +Date: Thu, 28 Dec 2023 09:42:05 +0100 +Subject: [PATCH] gh-110459: Make sure --with-openssl-rpath works on macOS + (#113441) + +* gh-110459: Make sure --with-openssl-rpath works on macOS + +On macOS the `-rpath` linker flag is spelled differently +than on on platforms. +--- + .../macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst | 2 ++ + configure | 7 ++++++- + configure.ac | 7 ++++++- + 3 files changed, 14 insertions(+), 2 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst + +diff --git a/Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst b/Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst +new file mode 100644 +index 00000000000..44ffd857785 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst +@@ -0,0 +1,2 @@ ++Running ``configure ... --with-openssl-rpath=X/Y/Z`` no longer fails to detect ++OpenSSL on macOS. +diff --git a/configure b/configure +index 7e50abc29d0..6d65d3abc18 100755 +--- a/configure ++++ b/configure +@@ -27478,7 +27478,12 @@ then : + + else $as_nop + +- rpath_arg="-Wl,-rpath=" ++ if test "$ac_sys_system" = "Darwin" ++ then ++ rpath_arg="-Wl,-rpath," ++ else ++ rpath_arg="-Wl,-rpath=" ++ fi + + fi + +diff --git a/configure.ac b/configure.ac +index e064848af9e..bfdabc4474e 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -6808,7 +6808,12 @@ AX_CHECK_OPENSSL([have_openssl=yes],[have_openssl=no]) + AS_VAR_IF([GNULD], [yes], [ + rpath_arg="-Wl,--enable-new-dtags,-rpath=" + ], [ +- rpath_arg="-Wl,-rpath=" ++ if test "$ac_sys_system" = "Darwin" ++ then ++ rpath_arg="-Wl,-rpath," ++ else ++ rpath_arg="-Wl,-rpath=" ++ fi + ]) + + AC_MSG_CHECKING([for --with-openssl-rpath]) +-- +2.46.2.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/3.11.17/Python-3.11.17/0003-downstream-3.11-gh-153711-Avoid-use-of-dup3-and-pipe.patch b/plugins/python-build/share/python-build/patches/3.11.17/Python-3.11.17/0003-downstream-3.11-gh-153711-Avoid-use-of-dup3-and-pipe.patch new file mode 100644 index 00000000..0025217f --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.11.17/Python-3.11.17/0003-downstream-3.11-gh-153711-Avoid-use-of-dup3-and-pipe.patch @@ -0,0 +1,109 @@ +From 29e98f7040994fa86bf63845b00ab9a4d80f5931 Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 10:30:17 +0300 +Subject: [PATCH] (downstream) [3.11] gh-153711: Avoid use of dup3 and pipe2 + calls introduced in macOS 27 (#155211) + +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 +++ + configure | 23 +++++++++++++++++-- + configure.ac | 11 +++++++-- + 3 files changed, 33 insertions(+), 4 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index a1ad0ae2510..76a3eec37be 100755 +--- a/configure ++++ b/configure +@@ -15209,7 +15209,7 @@ fi + # checks for library functions + for ac_func in \ + accept4 alarm bind_textdomain_codeset chmod chown clock close_range confstr \ +- copy_file_range ctermid dup dup3 execv explicit_bzero explicit_memset \ ++ copy_file_range ctermid dup execv explicit_bzero explicit_memset \ + faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \ + fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \ + gai_strerror getegid getentropy geteuid getgid getgrgid getgrgid_r \ +@@ -15219,7 +15219,7 @@ for ac_func in \ + getspnam getuid getwd if_nameindex initgroups kill killpg lchown linkat \ + lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \ + mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \ +- pipe2 plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ + pread preadv preadv2 pthread_condattr_setclock pthread_init pthread_kill \ + pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ + rtpSpawn sched_get_priority_max sched_rr_get_interval sched_setaffinity \ +@@ -15262,6 +15262,25 @@ done + + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf '%s\n' "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf '%s\n' "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ ++fi ++ + ac_fn_c_check_decl "$LINENO" "dirfd" "ac_cv_have_decl_dirfd" "#include + #include + " +diff --git a/configure.ac b/configure.ac +index 7b4000fa9c3..44167040f3e 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -4594,7 +4594,7 @@ fi + # checks for library functions + AC_CHECK_FUNCS([ \ + accept4 alarm bind_textdomain_codeset chmod chown clock close_range confstr \ +- copy_file_range ctermid dup dup3 execv explicit_bzero explicit_memset \ ++ copy_file_range ctermid dup execv explicit_bzero explicit_memset \ + faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \ + fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \ + gai_strerror getegid getentropy geteuid getgid getgrgid getgrgid_r \ +@@ -4604,7 +4604,7 @@ AC_CHECK_FUNCS([ \ + getspnam getuid getwd if_nameindex initgroups kill killpg lchown linkat \ + lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \ + mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \ +- pipe2 plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ + pread preadv preadv2 pthread_condattr_setclock pthread_init pthread_kill \ + pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ + rtpSpawn sched_get_priority_max sched_rr_get_interval sched_setaffinity \ +@@ -4626,6 +4626,13 @@ if test "$MACHDEP" != linux; then + AC_CHECK_FUNCS(lchmod) + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) ++fi ++ + AC_CHECK_DECL(dirfd, + AC_DEFINE(HAVE_DIRFD, 1, + Define if you have the 'dirfd' function or macro.), , +-- +2.55.0.windows.3 +