diff --git a/plugins/python-build/share/python-build/3.13.11t b/plugins/python-build/share/python-build/3.13.11t new file mode 100644 index 00000000..518be93e --- /dev/null +++ b/plugins/python-build/share/python-build/3.13.11t @@ -0,0 +1,2 @@ +export PYTHON_BUILD_FREE_THREADING=1 +source "${BASH_SOURCE[0]%t}" diff --git a/plugins/python-build/share/python-build/patches/3.13.0/Python-3.13.0/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch b/plugins/python-build/share/python-build/patches/3.13.0/Python-3.13.0/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch new file mode 100644 index 00000000..8450b2a1 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.0/Python-3.13.0/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch @@ -0,0 +1,105 @@ +From 8d6715d85ad670ddfc69dbfffc8c03ac2ce166eb Mon Sep 17 00:00:00 2001 +From: Russell Keith-Magee +Date: Tue, 26 May 2026 13:07:20 +0800 +Subject: [PATCH] [3.13] gh-150443: Exclude explicit dup3 and pipe2 checks on + iOS builds. (GH-150444) (#150448) + +Exclude explicit dup3 and pipe2 checks on iOS builds. +(cherry picked from commit 629da5c914b4407e01c1dc06cbcbd8dce825fef3) +--- + configure | 26 +++++++++++++------------- + configure.ac | 6 +++--- + 2 files changed, 16 insertions(+), 16 deletions(-) + +diff --git a/configure b/configure +index 7cdd386c387..e85f3f0ea3d 100755 +--- a/configure ++++ b/configure +@@ -17953,12 +17953,6 @@ if test "x$ac_cv_func_dup" = xyes + then : + printf "%s\n" "#define HAVE_DUP 1" >>confdefs.h + +-fi +-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" "execv" "ac_cv_func_execv" + if test "x$ac_cv_func_execv" = xyes +@@ -18427,12 +18421,6 @@ if test "x$ac_cv_func_pipe" = xyes + then : + printf "%s\n" "#define HAVE_PIPE 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 + ac_fn_c_check_func "$LINENO" "plock" "ac_cv_func_plock" + if test "x$ac_cv_func_plock" = xyes +@@ -19048,7 +19036,13 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" ++ 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" "getentropy" "ac_cv_func_getentropy" + if test "x$ac_cv_func_getentropy" = xyes + then : + printf "%s\n" "#define HAVE_GETENTROPY 1" >>confdefs.h +@@ -19059,6 +19053,12 @@ if test "x$ac_cv_func_getgroups" = xyes + then : + printf "%s\n" "#define HAVE_GETGROUPS 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 + ac_fn_c_check_func "$LINENO" "system" "ac_cv_func_system" + if test "x$ac_cv_func_system" = xyes +diff --git a/configure.ac b/configure.ac +index 24e28a1e2de..25b0587ec12 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -5088,7 +5088,7 @@ fi + # checks for library functions + AC_CHECK_FUNCS([ \ + accept4 alarm bind_textdomain_codeset chmod chown clock closefrom 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 geteuid getgid getgrent getgrgid getgrgid_r \ +@@ -5098,7 +5098,7 @@ AC_CHECK_FUNCS([ \ + getspnam getuid getwd grantpt 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_openpt posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_openpt posix_spawn posix_spawnp \ + posix_spawn_file_actions_addclosefrom_np \ + pread preadv preadv2 process_vm_readv pthread_cond_timedwait_relative_np pthread_condattr_setclock pthread_init \ + pthread_kill ptsname ptsname_r pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ +@@ -5126,7 +5126,7 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- AC_CHECK_FUNCS([getentropy getgroups system]) ++ AC_CHECK_FUNCS([dup3 getentropy getgroups pipe2 system]) + fi + + AC_CHECK_DECL([dirfd], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.13.0/Python-3.13.0/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch b/plugins/python-build/share/python-build/patches/3.13.0/Python-3.13.0/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch new file mode 100644 index 00000000..5547ab1e --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.0/Python-3.13.0/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch @@ -0,0 +1,103 @@ +From 0a97b1ca8dc1e5d689edbd87591962ba93c21db6 Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 00:30:17 -0700 +Subject: [PATCH] [3.13] gh-153711: Avoid use of dup3 and pipe2 calls + introduced in macOS 27 (#155211) + +This prevents potential segfaults when builds are used on older +systems and avoids adding new code for supporting weaklinking. +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 ++ + configure | 32 +++++++++++-------- + configure.ac | 8 ++++- + 3 files changed, 29 insertions(+), 14 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 e85f3f0ea3d..3b63517ddfb 100755 +--- a/configure ++++ b/configure +@@ -19036,13 +19036,7 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; 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" "getentropy" "ac_cv_func_getentropy" ++ ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" + if test "x$ac_cv_func_getentropy" = xyes + then : + printf "%s\n" "#define HAVE_GETENTROPY 1" >>confdefs.h +@@ -19053,12 +19047,6 @@ if test "x$ac_cv_func_getgroups" = xyes + then : + printf "%s\n" "#define HAVE_GETGROUPS 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 + ac_fn_c_check_func "$LINENO" "system" "ac_cv_func_system" + if test "x$ac_cv_func_system" = xyes +@@ -19067,6 +19055,24 @@ then : + + fi + ++fi ++# In addition, 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" != "iOS" -a "$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 + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5 +diff --git a/configure.ac b/configure.ac +index 25b0587ec12..d4e233e24a6 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -5126,7 +5126,13 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- AC_CHECK_FUNCS([dup3 getentropy getgroups pipe2 system]) ++ AC_CHECK_FUNCS([getentropy getgroups system]) ++fi ++# In addition, 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" != "iOS" -a "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) + fi + + AC_CHECK_DECL([dirfd], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.13.0t b/plugins/python-build/share/python-build/patches/3.13.0t new file mode 120000 index 00000000..77fdc6bb --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.0t @@ -0,0 +1 @@ +3.13.0 \ No newline at end of file diff --git a/plugins/python-build/share/python-build/patches/3.13.1/Python-3.13.1/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch b/plugins/python-build/share/python-build/patches/3.13.1/Python-3.13.1/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch new file mode 100644 index 00000000..57aa95db --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.1/Python-3.13.1/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch @@ -0,0 +1,105 @@ +From 389f221839f2b21fb8ce5faa50f97d7d6592394c Mon Sep 17 00:00:00 2001 +From: Russell Keith-Magee +Date: Tue, 26 May 2026 13:07:20 +0800 +Subject: [PATCH] [3.13] gh-150443: Exclude explicit dup3 and pipe2 checks on + iOS builds. (GH-150444) (#150448) + +Exclude explicit dup3 and pipe2 checks on iOS builds. +(cherry picked from commit 629da5c914b4407e01c1dc06cbcbd8dce825fef3) +--- + configure | 26 +++++++++++++------------- + configure.ac | 6 +++--- + 2 files changed, 16 insertions(+), 16 deletions(-) + +diff --git a/configure b/configure +index ae70f02f70e..4c3965e3a62 100755 +--- a/configure ++++ b/configure +@@ -17956,12 +17956,6 @@ if test "x$ac_cv_func_dup" = xyes + then : + printf "%s\n" "#define HAVE_DUP 1" >>confdefs.h + +-fi +-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" "execv" "ac_cv_func_execv" + if test "x$ac_cv_func_execv" = xyes +@@ -18430,12 +18424,6 @@ if test "x$ac_cv_func_pipe" = xyes + then : + printf "%s\n" "#define HAVE_PIPE 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 + ac_fn_c_check_func "$LINENO" "plock" "ac_cv_func_plock" + if test "x$ac_cv_func_plock" = xyes +@@ -19051,7 +19039,13 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" ++ 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" "getentropy" "ac_cv_func_getentropy" + if test "x$ac_cv_func_getentropy" = xyes + then : + printf "%s\n" "#define HAVE_GETENTROPY 1" >>confdefs.h +@@ -19062,6 +19056,12 @@ if test "x$ac_cv_func_getgroups" = xyes + then : + printf "%s\n" "#define HAVE_GETGROUPS 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 + ac_fn_c_check_func "$LINENO" "system" "ac_cv_func_system" + if test "x$ac_cv_func_system" = xyes +diff --git a/configure.ac b/configure.ac +index a764028e49f..1035134c48e 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -5091,7 +5091,7 @@ fi + # checks for library functions + AC_CHECK_FUNCS([ \ + accept4 alarm bind_textdomain_codeset chmod chown clock closefrom 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 geteuid getgid getgrent getgrgid getgrgid_r \ +@@ -5101,7 +5101,7 @@ AC_CHECK_FUNCS([ \ + getspnam getuid getwd grantpt 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_openpt posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_openpt posix_spawn posix_spawnp \ + posix_spawn_file_actions_addclosefrom_np \ + pread preadv preadv2 process_vm_readv pthread_cond_timedwait_relative_np pthread_condattr_setclock pthread_init \ + pthread_kill ptsname ptsname_r pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ +@@ -5129,7 +5129,7 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- AC_CHECK_FUNCS([getentropy getgroups system]) ++ AC_CHECK_FUNCS([dup3 getentropy getgroups pipe2 system]) + fi + + AC_CHECK_DECL([dirfd], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.13.1/Python-3.13.1/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch b/plugins/python-build/share/python-build/patches/3.13.1/Python-3.13.1/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch new file mode 100644 index 00000000..8dec9ec5 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.1/Python-3.13.1/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch @@ -0,0 +1,103 @@ +From 262ca735e924a4dfc93573c72a723c221a540aba Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 00:30:17 -0700 +Subject: [PATCH] [3.13] gh-153711: Avoid use of dup3 and pipe2 calls + introduced in macOS 27 (#155211) + +This prevents potential segfaults when builds are used on older +systems and avoids adding new code for supporting weaklinking. +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 ++ + configure | 32 +++++++++++-------- + configure.ac | 8 ++++- + 3 files changed, 29 insertions(+), 14 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 4c3965e3a62..b8ba6a16c81 100755 +--- a/configure ++++ b/configure +@@ -19039,13 +19039,7 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; 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" "getentropy" "ac_cv_func_getentropy" ++ ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" + if test "x$ac_cv_func_getentropy" = xyes + then : + printf "%s\n" "#define HAVE_GETENTROPY 1" >>confdefs.h +@@ -19056,12 +19050,6 @@ if test "x$ac_cv_func_getgroups" = xyes + then : + printf "%s\n" "#define HAVE_GETGROUPS 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 + ac_fn_c_check_func "$LINENO" "system" "ac_cv_func_system" + if test "x$ac_cv_func_system" = xyes +@@ -19070,6 +19058,24 @@ then : + + fi + ++fi ++# In addition, 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" != "iOS" -a "$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 + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5 +diff --git a/configure.ac b/configure.ac +index 1035134c48e..2b6f37482d3 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -5129,7 +5129,13 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- AC_CHECK_FUNCS([dup3 getentropy getgroups pipe2 system]) ++ AC_CHECK_FUNCS([getentropy getgroups system]) ++fi ++# In addition, 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" != "iOS" -a "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) + fi + + AC_CHECK_DECL([dirfd], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.13.10/Python-3.13.10/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch b/plugins/python-build/share/python-build/patches/3.13.10/Python-3.13.10/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch new file mode 100644 index 00000000..d4f7b51d --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.10/Python-3.13.10/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch @@ -0,0 +1,105 @@ +From ab182dfdeff041b61fbd36c3c11433bfdfbcaa1e Mon Sep 17 00:00:00 2001 +From: Russell Keith-Magee +Date: Tue, 26 May 2026 13:07:20 +0800 +Subject: [PATCH] [3.13] gh-150443: Exclude explicit dup3 and pipe2 checks on + iOS builds. (GH-150444) (#150448) + +Exclude explicit dup3 and pipe2 checks on iOS builds. +(cherry picked from commit 629da5c914b4407e01c1dc06cbcbd8dce825fef3) +--- + configure | 26 +++++++++++++------------- + configure.ac | 6 +++--- + 2 files changed, 16 insertions(+), 16 deletions(-) + +diff --git a/configure b/configure +index 901a26c9602..4ade7c21754 100755 +--- a/configure ++++ b/configure +@@ -18191,12 +18191,6 @@ if test "x$ac_cv_func_dup" = xyes + then : + printf "%s\n" "#define HAVE_DUP 1" >>confdefs.h + +-fi +-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" "execv" "ac_cv_func_execv" + if test "x$ac_cv_func_execv" = xyes +@@ -18671,12 +18665,6 @@ if test "x$ac_cv_func_pipe" = xyes + then : + printf "%s\n" "#define HAVE_PIPE 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 + ac_fn_c_check_func "$LINENO" "plock" "ac_cv_func_plock" + if test "x$ac_cv_func_plock" = xyes +@@ -19292,7 +19280,13 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" ++ 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" "getentropy" "ac_cv_func_getentropy" + if test "x$ac_cv_func_getentropy" = xyes + then : + printf "%s\n" "#define HAVE_GETENTROPY 1" >>confdefs.h +@@ -19303,6 +19297,12 @@ if test "x$ac_cv_func_getgroups" = xyes + then : + printf "%s\n" "#define HAVE_GETGROUPS 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 + ac_fn_c_check_func "$LINENO" "system" "ac_cv_func_system" + if test "x$ac_cv_func_system" = xyes +diff --git a/configure.ac b/configure.ac +index 597a44b331a..6ffcb8694d4 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -5217,7 +5217,7 @@ fi + # checks for library functions + AC_CHECK_FUNCS([ \ + accept4 alarm bind_textdomain_codeset chmod chown clock closefrom 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 geteuid getgid getgrent getgrgid getgrgid_r \ +@@ -5227,7 +5227,7 @@ AC_CHECK_FUNCS([ \ + getspnam getuid getwd grantpt 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_openpt posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_openpt posix_spawn posix_spawnp \ + posix_spawn_file_actions_addclosefrom_np \ + pread preadv preadv2 process_vm_readv pthread_cond_timedwait_relative_np pthread_condattr_setclock pthread_init \ + pthread_kill ptsname ptsname_r pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ +@@ -5255,7 +5255,7 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- AC_CHECK_FUNCS([getentropy getgroups system]) ++ AC_CHECK_FUNCS([dup3 getentropy getgroups pipe2 system]) + fi + + AC_CHECK_DECL([dirfd], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.13.10/Python-3.13.10/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch b/plugins/python-build/share/python-build/patches/3.13.10/Python-3.13.10/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch new file mode 100644 index 00000000..437f1a0a --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.10/Python-3.13.10/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch @@ -0,0 +1,103 @@ +From 1f505104c4c968b8f4478cf97c50ea2129e12a66 Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 00:30:17 -0700 +Subject: [PATCH] [3.13] gh-153711: Avoid use of dup3 and pipe2 calls + introduced in macOS 27 (#155211) + +This prevents potential segfaults when builds are used on older +systems and avoids adding new code for supporting weaklinking. +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 ++ + configure | 32 +++++++++++-------- + configure.ac | 8 ++++- + 3 files changed, 29 insertions(+), 14 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 4ade7c21754..6fd245e4c3b 100755 +--- a/configure ++++ b/configure +@@ -19280,13 +19280,7 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; 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" "getentropy" "ac_cv_func_getentropy" ++ ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" + if test "x$ac_cv_func_getentropy" = xyes + then : + printf "%s\n" "#define HAVE_GETENTROPY 1" >>confdefs.h +@@ -19297,12 +19291,6 @@ if test "x$ac_cv_func_getgroups" = xyes + then : + printf "%s\n" "#define HAVE_GETGROUPS 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 + ac_fn_c_check_func "$LINENO" "system" "ac_cv_func_system" + if test "x$ac_cv_func_system" = xyes +@@ -19311,6 +19299,24 @@ then : + + fi + ++fi ++# In addition, 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" != "iOS" -a "$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 + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5 +diff --git a/configure.ac b/configure.ac +index 6ffcb8694d4..f75d0ff02ba 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -5255,7 +5255,13 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- AC_CHECK_FUNCS([dup3 getentropy getgroups pipe2 system]) ++ AC_CHECK_FUNCS([getentropy getgroups system]) ++fi ++# In addition, 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" != "iOS" -a "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) + fi + + AC_CHECK_DECL([dirfd], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.13.10t b/plugins/python-build/share/python-build/patches/3.13.10t new file mode 120000 index 00000000..99345fd8 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.10t @@ -0,0 +1 @@ +3.13.10 \ No newline at end of file diff --git a/plugins/python-build/share/python-build/patches/3.13.11/Python-3.13.11/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch b/plugins/python-build/share/python-build/patches/3.13.11/Python-3.13.11/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch new file mode 100644 index 00000000..88f681bc --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.11/Python-3.13.11/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch @@ -0,0 +1,105 @@ +From dafe995d585cebef41da426be559e595134c5da9 Mon Sep 17 00:00:00 2001 +From: Russell Keith-Magee +Date: Tue, 26 May 2026 13:07:20 +0800 +Subject: [PATCH] [3.13] gh-150443: Exclude explicit dup3 and pipe2 checks on + iOS builds. (GH-150444) (#150448) + +Exclude explicit dup3 and pipe2 checks on iOS builds. +(cherry picked from commit 629da5c914b4407e01c1dc06cbcbd8dce825fef3) +--- + configure | 26 +++++++++++++------------- + configure.ac | 6 +++--- + 2 files changed, 16 insertions(+), 16 deletions(-) + +diff --git a/configure b/configure +index 901a26c9602..4ade7c21754 100755 +--- a/configure ++++ b/configure +@@ -18191,12 +18191,6 @@ if test "x$ac_cv_func_dup" = xyes + then : + printf "%s\n" "#define HAVE_DUP 1" >>confdefs.h + +-fi +-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" "execv" "ac_cv_func_execv" + if test "x$ac_cv_func_execv" = xyes +@@ -18671,12 +18665,6 @@ if test "x$ac_cv_func_pipe" = xyes + then : + printf "%s\n" "#define HAVE_PIPE 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 + ac_fn_c_check_func "$LINENO" "plock" "ac_cv_func_plock" + if test "x$ac_cv_func_plock" = xyes +@@ -19292,7 +19280,13 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" ++ 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" "getentropy" "ac_cv_func_getentropy" + if test "x$ac_cv_func_getentropy" = xyes + then : + printf "%s\n" "#define HAVE_GETENTROPY 1" >>confdefs.h +@@ -19303,6 +19297,12 @@ if test "x$ac_cv_func_getgroups" = xyes + then : + printf "%s\n" "#define HAVE_GETGROUPS 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 + ac_fn_c_check_func "$LINENO" "system" "ac_cv_func_system" + if test "x$ac_cv_func_system" = xyes +diff --git a/configure.ac b/configure.ac +index 597a44b331a..6ffcb8694d4 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -5217,7 +5217,7 @@ fi + # checks for library functions + AC_CHECK_FUNCS([ \ + accept4 alarm bind_textdomain_codeset chmod chown clock closefrom 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 geteuid getgid getgrent getgrgid getgrgid_r \ +@@ -5227,7 +5227,7 @@ AC_CHECK_FUNCS([ \ + getspnam getuid getwd grantpt 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_openpt posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_openpt posix_spawn posix_spawnp \ + posix_spawn_file_actions_addclosefrom_np \ + pread preadv preadv2 process_vm_readv pthread_cond_timedwait_relative_np pthread_condattr_setclock pthread_init \ + pthread_kill ptsname ptsname_r pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ +@@ -5255,7 +5255,7 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- AC_CHECK_FUNCS([getentropy getgroups system]) ++ AC_CHECK_FUNCS([dup3 getentropy getgroups pipe2 system]) + fi + + AC_CHECK_DECL([dirfd], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.13.11/Python-3.13.11/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch b/plugins/python-build/share/python-build/patches/3.13.11/Python-3.13.11/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch new file mode 100644 index 00000000..b6241374 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.11/Python-3.13.11/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch @@ -0,0 +1,103 @@ +From c76e73a290159e530499f89addff8e0befc8230d Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 00:30:17 -0700 +Subject: [PATCH] [3.13] gh-153711: Avoid use of dup3 and pipe2 calls + introduced in macOS 27 (#155211) + +This prevents potential segfaults when builds are used on older +systems and avoids adding new code for supporting weaklinking. +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 ++ + configure | 32 +++++++++++-------- + configure.ac | 8 ++++- + 3 files changed, 29 insertions(+), 14 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 4ade7c21754..6fd245e4c3b 100755 +--- a/configure ++++ b/configure +@@ -19280,13 +19280,7 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; 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" "getentropy" "ac_cv_func_getentropy" ++ ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" + if test "x$ac_cv_func_getentropy" = xyes + then : + printf "%s\n" "#define HAVE_GETENTROPY 1" >>confdefs.h +@@ -19297,12 +19291,6 @@ if test "x$ac_cv_func_getgroups" = xyes + then : + printf "%s\n" "#define HAVE_GETGROUPS 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 + ac_fn_c_check_func "$LINENO" "system" "ac_cv_func_system" + if test "x$ac_cv_func_system" = xyes +@@ -19311,6 +19299,24 @@ then : + + fi + ++fi ++# In addition, 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" != "iOS" -a "$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 + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5 +diff --git a/configure.ac b/configure.ac +index 6ffcb8694d4..f75d0ff02ba 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -5255,7 +5255,13 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- AC_CHECK_FUNCS([dup3 getentropy getgroups pipe2 system]) ++ AC_CHECK_FUNCS([getentropy getgroups system]) ++fi ++# In addition, 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" != "iOS" -a "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) + fi + + AC_CHECK_DECL([dirfd], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.13.11t b/plugins/python-build/share/python-build/patches/3.13.11t new file mode 120000 index 00000000..05879da0 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.11t @@ -0,0 +1 @@ +3.13.11 \ No newline at end of file diff --git a/plugins/python-build/share/python-build/patches/3.13.12/Python-3.13.12/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch b/plugins/python-build/share/python-build/patches/3.13.12/Python-3.13.12/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch new file mode 100644 index 00000000..25919c61 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.12/Python-3.13.12/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch @@ -0,0 +1,105 @@ +From 91483b88e099ef9d4c2f3e1db1a370491120c93d Mon Sep 17 00:00:00 2001 +From: Russell Keith-Magee +Date: Tue, 26 May 2026 13:07:20 +0800 +Subject: [PATCH] [3.13] gh-150443: Exclude explicit dup3 and pipe2 checks on + iOS builds. (GH-150444) (#150448) + +Exclude explicit dup3 and pipe2 checks on iOS builds. +(cherry picked from commit 629da5c914b4407e01c1dc06cbcbd8dce825fef3) +--- + configure | 26 +++++++++++++------------- + configure.ac | 6 +++--- + 2 files changed, 16 insertions(+), 16 deletions(-) + +diff --git a/configure b/configure +index 49b6795703a..95c9f306baa 100755 +--- a/configure ++++ b/configure +@@ -18191,12 +18191,6 @@ if test "x$ac_cv_func_dup" = xyes + then : + printf "%s\n" "#define HAVE_DUP 1" >>confdefs.h + +-fi +-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" "execv" "ac_cv_func_execv" + if test "x$ac_cv_func_execv" = xyes +@@ -18671,12 +18665,6 @@ if test "x$ac_cv_func_pipe" = xyes + then : + printf "%s\n" "#define HAVE_PIPE 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 + ac_fn_c_check_func "$LINENO" "plock" "ac_cv_func_plock" + if test "x$ac_cv_func_plock" = xyes +@@ -19292,7 +19280,13 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" ++ 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" "getentropy" "ac_cv_func_getentropy" + if test "x$ac_cv_func_getentropy" = xyes + then : + printf "%s\n" "#define HAVE_GETENTROPY 1" >>confdefs.h +@@ -19303,6 +19297,12 @@ if test "x$ac_cv_func_getgroups" = xyes + then : + printf "%s\n" "#define HAVE_GETGROUPS 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 + ac_fn_c_check_func "$LINENO" "system" "ac_cv_func_system" + if test "x$ac_cv_func_system" = xyes +diff --git a/configure.ac b/configure.ac +index 94776540d1b..747c630c329 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -5217,7 +5217,7 @@ fi + # checks for library functions + AC_CHECK_FUNCS([ \ + accept4 alarm bind_textdomain_codeset chmod chown clock closefrom 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 geteuid getgid getgrent getgrgid getgrgid_r \ +@@ -5227,7 +5227,7 @@ AC_CHECK_FUNCS([ \ + getspnam getuid getwd grantpt 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_openpt posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_openpt posix_spawn posix_spawnp \ + posix_spawn_file_actions_addclosefrom_np \ + pread preadv preadv2 process_vm_readv pthread_cond_timedwait_relative_np pthread_condattr_setclock pthread_init \ + pthread_kill ptsname ptsname_r pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ +@@ -5255,7 +5255,7 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- AC_CHECK_FUNCS([getentropy getgroups system]) ++ AC_CHECK_FUNCS([dup3 getentropy getgroups pipe2 system]) + fi + + AC_CHECK_DECL([dirfd], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.13.12/Python-3.13.12/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch b/plugins/python-build/share/python-build/patches/3.13.12/Python-3.13.12/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch new file mode 100644 index 00000000..344ccc47 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.12/Python-3.13.12/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch @@ -0,0 +1,103 @@ +From 53b2f0d288f7f5b91c45da11aa9246ecab6b8f95 Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 00:30:17 -0700 +Subject: [PATCH] [3.13] gh-153711: Avoid use of dup3 and pipe2 calls + introduced in macOS 27 (#155211) + +This prevents potential segfaults when builds are used on older +systems and avoids adding new code for supporting weaklinking. +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 ++ + configure | 32 +++++++++++-------- + configure.ac | 8 ++++- + 3 files changed, 29 insertions(+), 14 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 95c9f306baa..317191ae0f8 100755 +--- a/configure ++++ b/configure +@@ -19280,13 +19280,7 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; 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" "getentropy" "ac_cv_func_getentropy" ++ ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" + if test "x$ac_cv_func_getentropy" = xyes + then : + printf "%s\n" "#define HAVE_GETENTROPY 1" >>confdefs.h +@@ -19297,12 +19291,6 @@ if test "x$ac_cv_func_getgroups" = xyes + then : + printf "%s\n" "#define HAVE_GETGROUPS 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 + ac_fn_c_check_func "$LINENO" "system" "ac_cv_func_system" + if test "x$ac_cv_func_system" = xyes +@@ -19311,6 +19299,24 @@ then : + + fi + ++fi ++# In addition, 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" != "iOS" -a "$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 + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5 +diff --git a/configure.ac b/configure.ac +index 747c630c329..d3173900340 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -5255,7 +5255,13 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- AC_CHECK_FUNCS([dup3 getentropy getgroups pipe2 system]) ++ AC_CHECK_FUNCS([getentropy getgroups system]) ++fi ++# In addition, 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" != "iOS" -a "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) + fi + + AC_CHECK_DECL([dirfd], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.13.12t b/plugins/python-build/share/python-build/patches/3.13.12t new file mode 120000 index 00000000..177facf6 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.12t @@ -0,0 +1 @@ +3.13.12 \ No newline at end of file diff --git a/plugins/python-build/share/python-build/patches/3.13.13/Python-3.13.13/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch b/plugins/python-build/share/python-build/patches/3.13.13/Python-3.13.13/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch new file mode 100644 index 00000000..e2e87d16 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.13/Python-3.13.13/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch @@ -0,0 +1,105 @@ +From 211716524135a5c5b322540ec19ca4f5ae6abdbc Mon Sep 17 00:00:00 2001 +From: Russell Keith-Magee +Date: Tue, 26 May 2026 13:07:20 +0800 +Subject: [PATCH] [3.13] gh-150443: Exclude explicit dup3 and pipe2 checks on + iOS builds. (GH-150444) (#150448) + +Exclude explicit dup3 and pipe2 checks on iOS builds. +(cherry picked from commit 629da5c914b4407e01c1dc06cbcbd8dce825fef3) +--- + configure | 26 +++++++++++++------------- + configure.ac | 6 +++--- + 2 files changed, 16 insertions(+), 16 deletions(-) + +diff --git a/configure b/configure +index 9ddb712b534..ff4eedd4df9 100755 +--- a/configure ++++ b/configure +@@ -18228,12 +18228,6 @@ if test "x$ac_cv_func_dup" = xyes + then : + printf "%s\n" "#define HAVE_DUP 1" >>confdefs.h + +-fi +-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" "execv" "ac_cv_func_execv" + if test "x$ac_cv_func_execv" = xyes +@@ -18708,12 +18702,6 @@ if test "x$ac_cv_func_pipe" = xyes + then : + printf "%s\n" "#define HAVE_PIPE 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 + ac_fn_c_check_func "$LINENO" "plock" "ac_cv_func_plock" + if test "x$ac_cv_func_plock" = xyes +@@ -19329,7 +19317,13 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" ++ 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" "getentropy" "ac_cv_func_getentropy" + if test "x$ac_cv_func_getentropy" = xyes + then : + printf "%s\n" "#define HAVE_GETENTROPY 1" >>confdefs.h +@@ -19340,6 +19334,12 @@ if test "x$ac_cv_func_getgroups" = xyes + then : + printf "%s\n" "#define HAVE_GETGROUPS 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 + ac_fn_c_check_func "$LINENO" "system" "ac_cv_func_system" + if test "x$ac_cv_func_system" = xyes +diff --git a/configure.ac b/configure.ac +index d9acfce793e..0c20b4f2dc0 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -5220,7 +5220,7 @@ fi + # checks for library functions + AC_CHECK_FUNCS([ \ + accept4 alarm bind_textdomain_codeset chmod chown clock closefrom 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 geteuid getgid getgrent getgrgid getgrgid_r \ +@@ -5230,7 +5230,7 @@ AC_CHECK_FUNCS([ \ + getspnam getuid getwd grantpt 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_openpt posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_openpt posix_spawn posix_spawnp \ + posix_spawn_file_actions_addclosefrom_np \ + pread preadv preadv2 process_vm_readv pthread_cond_timedwait_relative_np pthread_condattr_setclock pthread_init \ + pthread_kill ptsname ptsname_r pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ +@@ -5258,7 +5258,7 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- AC_CHECK_FUNCS([getentropy getgroups system]) ++ AC_CHECK_FUNCS([dup3 getentropy getgroups pipe2 system]) + fi + + AC_CHECK_DECL([dirfd], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.13.13/Python-3.13.13/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch b/plugins/python-build/share/python-build/patches/3.13.13/Python-3.13.13/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch new file mode 100644 index 00000000..b3058864 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.13/Python-3.13.13/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch @@ -0,0 +1,103 @@ +From 2ffa77601e05d7c515edfb16ba6c2277675cb684 Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 00:30:17 -0700 +Subject: [PATCH] [3.13] gh-153711: Avoid use of dup3 and pipe2 calls + introduced in macOS 27 (#155211) + +This prevents potential segfaults when builds are used on older +systems and avoids adding new code for supporting weaklinking. +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 ++ + configure | 32 +++++++++++-------- + configure.ac | 8 ++++- + 3 files changed, 29 insertions(+), 14 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 ff4eedd4df9..099b552e763 100755 +--- a/configure ++++ b/configure +@@ -19317,13 +19317,7 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; 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" "getentropy" "ac_cv_func_getentropy" ++ ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" + if test "x$ac_cv_func_getentropy" = xyes + then : + printf "%s\n" "#define HAVE_GETENTROPY 1" >>confdefs.h +@@ -19334,12 +19328,6 @@ if test "x$ac_cv_func_getgroups" = xyes + then : + printf "%s\n" "#define HAVE_GETGROUPS 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 + ac_fn_c_check_func "$LINENO" "system" "ac_cv_func_system" + if test "x$ac_cv_func_system" = xyes +@@ -19348,6 +19336,24 @@ then : + + fi + ++fi ++# In addition, 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" != "iOS" -a "$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 + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5 +diff --git a/configure.ac b/configure.ac +index 0c20b4f2dc0..3e792193278 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -5258,7 +5258,13 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- AC_CHECK_FUNCS([dup3 getentropy getgroups pipe2 system]) ++ AC_CHECK_FUNCS([getentropy getgroups system]) ++fi ++# In addition, 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" != "iOS" -a "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) + fi + + AC_CHECK_DECL([dirfd], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.13.13t b/plugins/python-build/share/python-build/patches/3.13.13t new file mode 120000 index 00000000..fb3c6783 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.13t @@ -0,0 +1 @@ +3.13.13 \ No newline at end of file diff --git a/plugins/python-build/share/python-build/patches/3.13.14/Python-3.13.14/0001-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch b/plugins/python-build/share/python-build/patches/3.13.14/Python-3.13.14/0001-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch new file mode 100644 index 00000000..c6eb2bbb --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.14/Python-3.13.14/0001-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch @@ -0,0 +1,103 @@ +From 690e11097e2d313513a354ffbb0517866e201831 Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 00:30:17 -0700 +Subject: [PATCH] [3.13] gh-153711: Avoid use of dup3 and pipe2 calls + introduced in macOS 27 (#155211) + +This prevents potential segfaults when builds are used on older +systems and avoids adding new code for supporting weaklinking. +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 ++ + configure | 32 +++++++++++-------- + configure.ac | 8 ++++- + 3 files changed, 29 insertions(+), 14 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 0df47513085..59d67626ad6 100755 +--- a/configure ++++ b/configure +@@ -19368,13 +19368,7 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; 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" "getentropy" "ac_cv_func_getentropy" ++ ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" + if test "x$ac_cv_func_getentropy" = xyes + then : + printf "%s\n" "#define HAVE_GETENTROPY 1" >>confdefs.h +@@ -19385,12 +19379,6 @@ if test "x$ac_cv_func_getgroups" = xyes + then : + printf "%s\n" "#define HAVE_GETGROUPS 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 + ac_fn_c_check_func "$LINENO" "system" "ac_cv_func_system" + if test "x$ac_cv_func_system" = xyes +@@ -19399,6 +19387,24 @@ then : + + fi + ++fi ++# In addition, 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" != "iOS" -a "$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 + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5 +diff --git a/configure.ac b/configure.ac +index a016a439c6c..c4d1e59a5e3 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -5280,7 +5280,13 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- AC_CHECK_FUNCS([dup3 getentropy getgroups pipe2 system]) ++ AC_CHECK_FUNCS([getentropy getgroups system]) ++fi ++# In addition, 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" != "iOS" -a "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) + fi + + AC_CHECK_DECL([dirfd], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.13.14t b/plugins/python-build/share/python-build/patches/3.13.14t new file mode 120000 index 00000000..39e159e3 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.14t @@ -0,0 +1 @@ +3.13.14 \ No newline at end of file diff --git a/plugins/python-build/share/python-build/patches/3.13.1t b/plugins/python-build/share/python-build/patches/3.13.1t new file mode 120000 index 00000000..7918c7ab --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.1t @@ -0,0 +1 @@ +3.13.1 \ No newline at end of file diff --git a/plugins/python-build/share/python-build/patches/3.13.2/Python-3.13.2/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch b/plugins/python-build/share/python-build/patches/3.13.2/Python-3.13.2/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch new file mode 100644 index 00000000..c5fe3d64 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.2/Python-3.13.2/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch @@ -0,0 +1,105 @@ +From 72c96d07c449da15ef88369a1b4ea9ac3a76b5b5 Mon Sep 17 00:00:00 2001 +From: Russell Keith-Magee +Date: Tue, 26 May 2026 13:07:20 +0800 +Subject: [PATCH] [3.13] gh-150443: Exclude explicit dup3 and pipe2 checks on + iOS builds. (GH-150444) (#150448) + +Exclude explicit dup3 and pipe2 checks on iOS builds. +(cherry picked from commit 629da5c914b4407e01c1dc06cbcbd8dce825fef3) +--- + configure | 26 +++++++++++++------------- + configure.ac | 6 +++--- + 2 files changed, 16 insertions(+), 16 deletions(-) + +diff --git a/configure b/configure +index 1cd1f690f7b..8c6a9648485 100755 +--- a/configure ++++ b/configure +@@ -17976,12 +17976,6 @@ if test "x$ac_cv_func_dup" = xyes + then : + printf "%s\n" "#define HAVE_DUP 1" >>confdefs.h + +-fi +-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" "execv" "ac_cv_func_execv" + if test "x$ac_cv_func_execv" = xyes +@@ -18450,12 +18444,6 @@ if test "x$ac_cv_func_pipe" = xyes + then : + printf "%s\n" "#define HAVE_PIPE 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 + ac_fn_c_check_func "$LINENO" "plock" "ac_cv_func_plock" + if test "x$ac_cv_func_plock" = xyes +@@ -19071,7 +19059,13 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" ++ 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" "getentropy" "ac_cv_func_getentropy" + if test "x$ac_cv_func_getentropy" = xyes + then : + printf "%s\n" "#define HAVE_GETENTROPY 1" >>confdefs.h +@@ -19082,6 +19076,12 @@ if test "x$ac_cv_func_getgroups" = xyes + then : + printf "%s\n" "#define HAVE_GETGROUPS 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 + ac_fn_c_check_func "$LINENO" "system" "ac_cv_func_system" + if test "x$ac_cv_func_system" = xyes +diff --git a/configure.ac b/configure.ac +index 3fcb18922c5..09223e4d2f0 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -5112,7 +5112,7 @@ fi + # checks for library functions + AC_CHECK_FUNCS([ \ + accept4 alarm bind_textdomain_codeset chmod chown clock closefrom 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 geteuid getgid getgrent getgrgid getgrgid_r \ +@@ -5122,7 +5122,7 @@ AC_CHECK_FUNCS([ \ + getspnam getuid getwd grantpt 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_openpt posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_openpt posix_spawn posix_spawnp \ + posix_spawn_file_actions_addclosefrom_np \ + pread preadv preadv2 process_vm_readv pthread_cond_timedwait_relative_np pthread_condattr_setclock pthread_init \ + pthread_kill ptsname ptsname_r pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ +@@ -5150,7 +5150,7 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- AC_CHECK_FUNCS([getentropy getgroups system]) ++ AC_CHECK_FUNCS([dup3 getentropy getgroups pipe2 system]) + fi + + AC_CHECK_DECL([dirfd], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.13.2/Python-3.13.2/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch b/plugins/python-build/share/python-build/patches/3.13.2/Python-3.13.2/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch new file mode 100644 index 00000000..66b11dff --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.2/Python-3.13.2/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch @@ -0,0 +1,103 @@ +From 42d1ab9db0112d76647402436bfc69251b844536 Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 00:30:17 -0700 +Subject: [PATCH] [3.13] gh-153711: Avoid use of dup3 and pipe2 calls + introduced in macOS 27 (#155211) + +This prevents potential segfaults when builds are used on older +systems and avoids adding new code for supporting weaklinking. +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 ++ + configure | 32 +++++++++++-------- + configure.ac | 8 ++++- + 3 files changed, 29 insertions(+), 14 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 8c6a9648485..3c4c3584a4a 100755 +--- a/configure ++++ b/configure +@@ -19059,13 +19059,7 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; 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" "getentropy" "ac_cv_func_getentropy" ++ ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" + if test "x$ac_cv_func_getentropy" = xyes + then : + printf "%s\n" "#define HAVE_GETENTROPY 1" >>confdefs.h +@@ -19076,12 +19070,6 @@ if test "x$ac_cv_func_getgroups" = xyes + then : + printf "%s\n" "#define HAVE_GETGROUPS 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 + ac_fn_c_check_func "$LINENO" "system" "ac_cv_func_system" + if test "x$ac_cv_func_system" = xyes +@@ -19090,6 +19078,24 @@ then : + + fi + ++fi ++# In addition, 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" != "iOS" -a "$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 + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5 +diff --git a/configure.ac b/configure.ac +index 09223e4d2f0..c48de4ecc12 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -5150,7 +5150,13 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- AC_CHECK_FUNCS([dup3 getentropy getgroups pipe2 system]) ++ AC_CHECK_FUNCS([getentropy getgroups system]) ++fi ++# In addition, 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" != "iOS" -a "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) + fi + + AC_CHECK_DECL([dirfd], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.13.2t b/plugins/python-build/share/python-build/patches/3.13.2t new file mode 120000 index 00000000..97c68419 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.2t @@ -0,0 +1 @@ +3.13.2 \ No newline at end of file diff --git a/plugins/python-build/share/python-build/patches/3.13.3/Python-3.13.3/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch b/plugins/python-build/share/python-build/patches/3.13.3/Python-3.13.3/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch new file mode 100644 index 00000000..0bfd7f86 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.3/Python-3.13.3/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch @@ -0,0 +1,105 @@ +From dbadbc64aefb216fb54c5a751c6870976ad473d9 Mon Sep 17 00:00:00 2001 +From: Russell Keith-Magee +Date: Tue, 26 May 2026 13:07:20 +0800 +Subject: [PATCH] [3.13] gh-150443: Exclude explicit dup3 and pipe2 checks on + iOS builds. (GH-150444) (#150448) + +Exclude explicit dup3 and pipe2 checks on iOS builds. +(cherry picked from commit 629da5c914b4407e01c1dc06cbcbd8dce825fef3) +--- + configure | 26 +++++++++++++------------- + configure.ac | 6 +++--- + 2 files changed, 16 insertions(+), 16 deletions(-) + +diff --git a/configure b/configure +index 1cd1f690f7b..8c6a9648485 100755 +--- a/configure ++++ b/configure +@@ -17976,12 +17976,6 @@ if test "x$ac_cv_func_dup" = xyes + then : + printf "%s\n" "#define HAVE_DUP 1" >>confdefs.h + +-fi +-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" "execv" "ac_cv_func_execv" + if test "x$ac_cv_func_execv" = xyes +@@ -18450,12 +18444,6 @@ if test "x$ac_cv_func_pipe" = xyes + then : + printf "%s\n" "#define HAVE_PIPE 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 + ac_fn_c_check_func "$LINENO" "plock" "ac_cv_func_plock" + if test "x$ac_cv_func_plock" = xyes +@@ -19071,7 +19059,13 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" ++ 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" "getentropy" "ac_cv_func_getentropy" + if test "x$ac_cv_func_getentropy" = xyes + then : + printf "%s\n" "#define HAVE_GETENTROPY 1" >>confdefs.h +@@ -19082,6 +19076,12 @@ if test "x$ac_cv_func_getgroups" = xyes + then : + printf "%s\n" "#define HAVE_GETGROUPS 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 + ac_fn_c_check_func "$LINENO" "system" "ac_cv_func_system" + if test "x$ac_cv_func_system" = xyes +diff --git a/configure.ac b/configure.ac +index 3fcb18922c5..09223e4d2f0 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -5112,7 +5112,7 @@ fi + # checks for library functions + AC_CHECK_FUNCS([ \ + accept4 alarm bind_textdomain_codeset chmod chown clock closefrom 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 geteuid getgid getgrent getgrgid getgrgid_r \ +@@ -5122,7 +5122,7 @@ AC_CHECK_FUNCS([ \ + getspnam getuid getwd grantpt 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_openpt posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_openpt posix_spawn posix_spawnp \ + posix_spawn_file_actions_addclosefrom_np \ + pread preadv preadv2 process_vm_readv pthread_cond_timedwait_relative_np pthread_condattr_setclock pthread_init \ + pthread_kill ptsname ptsname_r pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ +@@ -5150,7 +5150,7 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- AC_CHECK_FUNCS([getentropy getgroups system]) ++ AC_CHECK_FUNCS([dup3 getentropy getgroups pipe2 system]) + fi + + AC_CHECK_DECL([dirfd], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.13.3/Python-3.13.3/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch b/plugins/python-build/share/python-build/patches/3.13.3/Python-3.13.3/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch new file mode 100644 index 00000000..27e2de49 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.3/Python-3.13.3/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch @@ -0,0 +1,103 @@ +From da3966ecc33d03d3cabacaa5af11fbf933c9d135 Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 00:30:17 -0700 +Subject: [PATCH] [3.13] gh-153711: Avoid use of dup3 and pipe2 calls + introduced in macOS 27 (#155211) + +This prevents potential segfaults when builds are used on older +systems and avoids adding new code for supporting weaklinking. +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 ++ + configure | 32 +++++++++++-------- + configure.ac | 8 ++++- + 3 files changed, 29 insertions(+), 14 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 8c6a9648485..3c4c3584a4a 100755 +--- a/configure ++++ b/configure +@@ -19059,13 +19059,7 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; 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" "getentropy" "ac_cv_func_getentropy" ++ ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" + if test "x$ac_cv_func_getentropy" = xyes + then : + printf "%s\n" "#define HAVE_GETENTROPY 1" >>confdefs.h +@@ -19076,12 +19070,6 @@ if test "x$ac_cv_func_getgroups" = xyes + then : + printf "%s\n" "#define HAVE_GETGROUPS 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 + ac_fn_c_check_func "$LINENO" "system" "ac_cv_func_system" + if test "x$ac_cv_func_system" = xyes +@@ -19090,6 +19078,24 @@ then : + + fi + ++fi ++# In addition, 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" != "iOS" -a "$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 + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5 +diff --git a/configure.ac b/configure.ac +index 09223e4d2f0..c48de4ecc12 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -5150,7 +5150,13 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- AC_CHECK_FUNCS([dup3 getentropy getgroups pipe2 system]) ++ AC_CHECK_FUNCS([getentropy getgroups system]) ++fi ++# In addition, 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" != "iOS" -a "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) + fi + + AC_CHECK_DECL([dirfd], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.13.3t b/plugins/python-build/share/python-build/patches/3.13.3t new file mode 120000 index 00000000..faedad41 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.3t @@ -0,0 +1 @@ +3.13.3 \ No newline at end of file diff --git a/plugins/python-build/share/python-build/patches/3.13.4/Python-3.13.4/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch b/plugins/python-build/share/python-build/patches/3.13.4/Python-3.13.4/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch new file mode 100644 index 00000000..3b4f9955 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.4/Python-3.13.4/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch @@ -0,0 +1,105 @@ +From 7707acff006c594de6216d9c911017e7ca44a4c1 Mon Sep 17 00:00:00 2001 +From: Russell Keith-Magee +Date: Tue, 26 May 2026 13:07:20 +0800 +Subject: [PATCH] [3.13] gh-150443: Exclude explicit dup3 and pipe2 checks on + iOS builds. (GH-150444) (#150448) + +Exclude explicit dup3 and pipe2 checks on iOS builds. +(cherry picked from commit 629da5c914b4407e01c1dc06cbcbd8dce825fef3) +--- + configure | 26 +++++++++++++------------- + configure.ac | 6 +++--- + 2 files changed, 16 insertions(+), 16 deletions(-) + +diff --git a/configure b/configure +index 1cd1f690f7b..8c6a9648485 100755 +--- a/configure ++++ b/configure +@@ -17976,12 +17976,6 @@ if test "x$ac_cv_func_dup" = xyes + then : + printf "%s\n" "#define HAVE_DUP 1" >>confdefs.h + +-fi +-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" "execv" "ac_cv_func_execv" + if test "x$ac_cv_func_execv" = xyes +@@ -18450,12 +18444,6 @@ if test "x$ac_cv_func_pipe" = xyes + then : + printf "%s\n" "#define HAVE_PIPE 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 + ac_fn_c_check_func "$LINENO" "plock" "ac_cv_func_plock" + if test "x$ac_cv_func_plock" = xyes +@@ -19071,7 +19059,13 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" ++ 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" "getentropy" "ac_cv_func_getentropy" + if test "x$ac_cv_func_getentropy" = xyes + then : + printf "%s\n" "#define HAVE_GETENTROPY 1" >>confdefs.h +@@ -19082,6 +19076,12 @@ if test "x$ac_cv_func_getgroups" = xyes + then : + printf "%s\n" "#define HAVE_GETGROUPS 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 + ac_fn_c_check_func "$LINENO" "system" "ac_cv_func_system" + if test "x$ac_cv_func_system" = xyes +diff --git a/configure.ac b/configure.ac +index 3fcb18922c5..09223e4d2f0 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -5112,7 +5112,7 @@ fi + # checks for library functions + AC_CHECK_FUNCS([ \ + accept4 alarm bind_textdomain_codeset chmod chown clock closefrom 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 geteuid getgid getgrent getgrgid getgrgid_r \ +@@ -5122,7 +5122,7 @@ AC_CHECK_FUNCS([ \ + getspnam getuid getwd grantpt 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_openpt posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_openpt posix_spawn posix_spawnp \ + posix_spawn_file_actions_addclosefrom_np \ + pread preadv preadv2 process_vm_readv pthread_cond_timedwait_relative_np pthread_condattr_setclock pthread_init \ + pthread_kill ptsname ptsname_r pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ +@@ -5150,7 +5150,7 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- AC_CHECK_FUNCS([getentropy getgroups system]) ++ AC_CHECK_FUNCS([dup3 getentropy getgroups pipe2 system]) + fi + + AC_CHECK_DECL([dirfd], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.13.4/Python-3.13.4/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch b/plugins/python-build/share/python-build/patches/3.13.4/Python-3.13.4/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch new file mode 100644 index 00000000..d9fe0a3c --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.4/Python-3.13.4/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch @@ -0,0 +1,103 @@ +From eb84f748e1b9f2953d534a4eaaa562ed80968d2d Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 00:30:17 -0700 +Subject: [PATCH] [3.13] gh-153711: Avoid use of dup3 and pipe2 calls + introduced in macOS 27 (#155211) + +This prevents potential segfaults when builds are used on older +systems and avoids adding new code for supporting weaklinking. +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 ++ + configure | 32 +++++++++++-------- + configure.ac | 8 ++++- + 3 files changed, 29 insertions(+), 14 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 8c6a9648485..3c4c3584a4a 100755 +--- a/configure ++++ b/configure +@@ -19059,13 +19059,7 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; 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" "getentropy" "ac_cv_func_getentropy" ++ ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" + if test "x$ac_cv_func_getentropy" = xyes + then : + printf "%s\n" "#define HAVE_GETENTROPY 1" >>confdefs.h +@@ -19076,12 +19070,6 @@ if test "x$ac_cv_func_getgroups" = xyes + then : + printf "%s\n" "#define HAVE_GETGROUPS 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 + ac_fn_c_check_func "$LINENO" "system" "ac_cv_func_system" + if test "x$ac_cv_func_system" = xyes +@@ -19090,6 +19078,24 @@ then : + + fi + ++fi ++# In addition, 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" != "iOS" -a "$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 + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5 +diff --git a/configure.ac b/configure.ac +index 09223e4d2f0..c48de4ecc12 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -5150,7 +5150,13 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- AC_CHECK_FUNCS([dup3 getentropy getgroups pipe2 system]) ++ AC_CHECK_FUNCS([getentropy getgroups system]) ++fi ++# In addition, 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" != "iOS" -a "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) + fi + + AC_CHECK_DECL([dirfd], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.13.4t b/plugins/python-build/share/python-build/patches/3.13.4t new file mode 120000 index 00000000..82dc52c3 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.4t @@ -0,0 +1 @@ +3.13.4 \ No newline at end of file diff --git a/plugins/python-build/share/python-build/patches/3.13.5/Python-3.13.5/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch b/plugins/python-build/share/python-build/patches/3.13.5/Python-3.13.5/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch new file mode 100644 index 00000000..0aeb6fc7 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.5/Python-3.13.5/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch @@ -0,0 +1,105 @@ +From edfd8c357cabbb59e3d2db9ab7b6eb1f2eff80fe Mon Sep 17 00:00:00 2001 +From: Russell Keith-Magee +Date: Tue, 26 May 2026 13:07:20 +0800 +Subject: [PATCH] [3.13] gh-150443: Exclude explicit dup3 and pipe2 checks on + iOS builds. (GH-150444) (#150448) + +Exclude explicit dup3 and pipe2 checks on iOS builds. +(cherry picked from commit 629da5c914b4407e01c1dc06cbcbd8dce825fef3) +--- + configure | 26 +++++++++++++------------- + configure.ac | 6 +++--- + 2 files changed, 16 insertions(+), 16 deletions(-) + +diff --git a/configure b/configure +index 519caa8ca74..f19e43c8573 100755 +--- a/configure ++++ b/configure +@@ -17976,12 +17976,6 @@ if test "x$ac_cv_func_dup" = xyes + then : + printf "%s\n" "#define HAVE_DUP 1" >>confdefs.h + +-fi +-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" "execv" "ac_cv_func_execv" + if test "x$ac_cv_func_execv" = xyes +@@ -18456,12 +18450,6 @@ if test "x$ac_cv_func_pipe" = xyes + then : + printf "%s\n" "#define HAVE_PIPE 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 + ac_fn_c_check_func "$LINENO" "plock" "ac_cv_func_plock" + if test "x$ac_cv_func_plock" = xyes +@@ -19077,7 +19065,13 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" ++ 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" "getentropy" "ac_cv_func_getentropy" + if test "x$ac_cv_func_getentropy" = xyes + then : + printf "%s\n" "#define HAVE_GETENTROPY 1" >>confdefs.h +@@ -19088,6 +19082,12 @@ if test "x$ac_cv_func_getgroups" = xyes + then : + printf "%s\n" "#define HAVE_GETGROUPS 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 + ac_fn_c_check_func "$LINENO" "system" "ac_cv_func_system" + if test "x$ac_cv_func_system" = xyes +diff --git a/configure.ac b/configure.ac +index 2a037569e49..ce6625a752c 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -5112,7 +5112,7 @@ fi + # checks for library functions + AC_CHECK_FUNCS([ \ + accept4 alarm bind_textdomain_codeset chmod chown clock closefrom 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 geteuid getgid getgrent getgrgid getgrgid_r \ +@@ -5122,7 +5122,7 @@ AC_CHECK_FUNCS([ \ + getspnam getuid getwd grantpt 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_openpt posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_openpt posix_spawn posix_spawnp \ + posix_spawn_file_actions_addclosefrom_np \ + pread preadv preadv2 process_vm_readv pthread_cond_timedwait_relative_np pthread_condattr_setclock pthread_init \ + pthread_kill ptsname ptsname_r pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ +@@ -5150,7 +5150,7 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- AC_CHECK_FUNCS([getentropy getgroups system]) ++ AC_CHECK_FUNCS([dup3 getentropy getgroups pipe2 system]) + fi + + AC_CHECK_DECL([dirfd], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.13.5/Python-3.13.5/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch b/plugins/python-build/share/python-build/patches/3.13.5/Python-3.13.5/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch new file mode 100644 index 00000000..498a3fe9 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.5/Python-3.13.5/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch @@ -0,0 +1,103 @@ +From 972a7e832fa8941b6ed92d366175748fd2172639 Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 00:30:17 -0700 +Subject: [PATCH] [3.13] gh-153711: Avoid use of dup3 and pipe2 calls + introduced in macOS 27 (#155211) + +This prevents potential segfaults when builds are used on older +systems and avoids adding new code for supporting weaklinking. +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 ++ + configure | 32 +++++++++++-------- + configure.ac | 8 ++++- + 3 files changed, 29 insertions(+), 14 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 f19e43c8573..89f394a998b 100755 +--- a/configure ++++ b/configure +@@ -19065,13 +19065,7 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; 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" "getentropy" "ac_cv_func_getentropy" ++ ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" + if test "x$ac_cv_func_getentropy" = xyes + then : + printf "%s\n" "#define HAVE_GETENTROPY 1" >>confdefs.h +@@ -19082,12 +19076,6 @@ if test "x$ac_cv_func_getgroups" = xyes + then : + printf "%s\n" "#define HAVE_GETGROUPS 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 + ac_fn_c_check_func "$LINENO" "system" "ac_cv_func_system" + if test "x$ac_cv_func_system" = xyes +@@ -19096,6 +19084,24 @@ then : + + fi + ++fi ++# In addition, 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" != "iOS" -a "$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 + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5 +diff --git a/configure.ac b/configure.ac +index ce6625a752c..3abe99594c8 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -5150,7 +5150,13 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- AC_CHECK_FUNCS([dup3 getentropy getgroups pipe2 system]) ++ AC_CHECK_FUNCS([getentropy getgroups system]) ++fi ++# In addition, 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" != "iOS" -a "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) + fi + + AC_CHECK_DECL([dirfd], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.13.5t b/plugins/python-build/share/python-build/patches/3.13.5t new file mode 120000 index 00000000..3523e81f --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.5t @@ -0,0 +1 @@ +3.13.5 \ No newline at end of file diff --git a/plugins/python-build/share/python-build/patches/3.13.6/Python-3.13.6/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch b/plugins/python-build/share/python-build/patches/3.13.6/Python-3.13.6/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch new file mode 100644 index 00000000..51e28e4a --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.6/Python-3.13.6/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch @@ -0,0 +1,105 @@ +From 583757a560f95d29d4a8078dd1bcbdf3c3de1678 Mon Sep 17 00:00:00 2001 +From: Russell Keith-Magee +Date: Tue, 26 May 2026 13:07:20 +0800 +Subject: [PATCH] [3.13] gh-150443: Exclude explicit dup3 and pipe2 checks on + iOS builds. (GH-150444) (#150448) + +Exclude explicit dup3 and pipe2 checks on iOS builds. +(cherry picked from commit 629da5c914b4407e01c1dc06cbcbd8dce825fef3) +--- + configure | 26 +++++++++++++------------- + configure.ac | 6 +++--- + 2 files changed, 16 insertions(+), 16 deletions(-) + +diff --git a/configure b/configure +index 901a26c9602..4ade7c21754 100755 +--- a/configure ++++ b/configure +@@ -18191,12 +18191,6 @@ if test "x$ac_cv_func_dup" = xyes + then : + printf "%s\n" "#define HAVE_DUP 1" >>confdefs.h + +-fi +-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" "execv" "ac_cv_func_execv" + if test "x$ac_cv_func_execv" = xyes +@@ -18671,12 +18665,6 @@ if test "x$ac_cv_func_pipe" = xyes + then : + printf "%s\n" "#define HAVE_PIPE 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 + ac_fn_c_check_func "$LINENO" "plock" "ac_cv_func_plock" + if test "x$ac_cv_func_plock" = xyes +@@ -19292,7 +19280,13 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" ++ 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" "getentropy" "ac_cv_func_getentropy" + if test "x$ac_cv_func_getentropy" = xyes + then : + printf "%s\n" "#define HAVE_GETENTROPY 1" >>confdefs.h +@@ -19303,6 +19297,12 @@ if test "x$ac_cv_func_getgroups" = xyes + then : + printf "%s\n" "#define HAVE_GETGROUPS 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 + ac_fn_c_check_func "$LINENO" "system" "ac_cv_func_system" + if test "x$ac_cv_func_system" = xyes +diff --git a/configure.ac b/configure.ac +index 597a44b331a..6ffcb8694d4 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -5217,7 +5217,7 @@ fi + # checks for library functions + AC_CHECK_FUNCS([ \ + accept4 alarm bind_textdomain_codeset chmod chown clock closefrom 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 geteuid getgid getgrent getgrgid getgrgid_r \ +@@ -5227,7 +5227,7 @@ AC_CHECK_FUNCS([ \ + getspnam getuid getwd grantpt 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_openpt posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_openpt posix_spawn posix_spawnp \ + posix_spawn_file_actions_addclosefrom_np \ + pread preadv preadv2 process_vm_readv pthread_cond_timedwait_relative_np pthread_condattr_setclock pthread_init \ + pthread_kill ptsname ptsname_r pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ +@@ -5255,7 +5255,7 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- AC_CHECK_FUNCS([getentropy getgroups system]) ++ AC_CHECK_FUNCS([dup3 getentropy getgroups pipe2 system]) + fi + + AC_CHECK_DECL([dirfd], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.13.6/Python-3.13.6/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch b/plugins/python-build/share/python-build/patches/3.13.6/Python-3.13.6/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch new file mode 100644 index 00000000..f67c1b9f --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.6/Python-3.13.6/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch @@ -0,0 +1,103 @@ +From 8d221378537d08de2a43e1cbfcfbdf7a5613292b Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 00:30:17 -0700 +Subject: [PATCH] [3.13] gh-153711: Avoid use of dup3 and pipe2 calls + introduced in macOS 27 (#155211) + +This prevents potential segfaults when builds are used on older +systems and avoids adding new code for supporting weaklinking. +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 ++ + configure | 32 +++++++++++-------- + configure.ac | 8 ++++- + 3 files changed, 29 insertions(+), 14 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 4ade7c21754..6fd245e4c3b 100755 +--- a/configure ++++ b/configure +@@ -19280,13 +19280,7 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; 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" "getentropy" "ac_cv_func_getentropy" ++ ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" + if test "x$ac_cv_func_getentropy" = xyes + then : + printf "%s\n" "#define HAVE_GETENTROPY 1" >>confdefs.h +@@ -19297,12 +19291,6 @@ if test "x$ac_cv_func_getgroups" = xyes + then : + printf "%s\n" "#define HAVE_GETGROUPS 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 + ac_fn_c_check_func "$LINENO" "system" "ac_cv_func_system" + if test "x$ac_cv_func_system" = xyes +@@ -19311,6 +19299,24 @@ then : + + fi + ++fi ++# In addition, 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" != "iOS" -a "$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 + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5 +diff --git a/configure.ac b/configure.ac +index 6ffcb8694d4..f75d0ff02ba 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -5255,7 +5255,13 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- AC_CHECK_FUNCS([dup3 getentropy getgroups pipe2 system]) ++ AC_CHECK_FUNCS([getentropy getgroups system]) ++fi ++# In addition, 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" != "iOS" -a "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) + fi + + AC_CHECK_DECL([dirfd], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.13.6t b/plugins/python-build/share/python-build/patches/3.13.6t new file mode 120000 index 00000000..78472f99 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.6t @@ -0,0 +1 @@ +3.13.6 \ No newline at end of file diff --git a/plugins/python-build/share/python-build/patches/3.13.7/Python-3.13.7/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch b/plugins/python-build/share/python-build/patches/3.13.7/Python-3.13.7/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch new file mode 100644 index 00000000..7de70b0a --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.7/Python-3.13.7/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch @@ -0,0 +1,105 @@ +From fd99fe3b35195f34b00d0ba0ca8c26958e28fed4 Mon Sep 17 00:00:00 2001 +From: Russell Keith-Magee +Date: Tue, 26 May 2026 13:07:20 +0800 +Subject: [PATCH] [3.13] gh-150443: Exclude explicit dup3 and pipe2 checks on + iOS builds. (GH-150444) (#150448) + +Exclude explicit dup3 and pipe2 checks on iOS builds. +(cherry picked from commit 629da5c914b4407e01c1dc06cbcbd8dce825fef3) +--- + configure | 26 +++++++++++++------------- + configure.ac | 6 +++--- + 2 files changed, 16 insertions(+), 16 deletions(-) + +diff --git a/configure b/configure +index 901a26c9602..4ade7c21754 100755 +--- a/configure ++++ b/configure +@@ -18191,12 +18191,6 @@ if test "x$ac_cv_func_dup" = xyes + then : + printf "%s\n" "#define HAVE_DUP 1" >>confdefs.h + +-fi +-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" "execv" "ac_cv_func_execv" + if test "x$ac_cv_func_execv" = xyes +@@ -18671,12 +18665,6 @@ if test "x$ac_cv_func_pipe" = xyes + then : + printf "%s\n" "#define HAVE_PIPE 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 + ac_fn_c_check_func "$LINENO" "plock" "ac_cv_func_plock" + if test "x$ac_cv_func_plock" = xyes +@@ -19292,7 +19280,13 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" ++ 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" "getentropy" "ac_cv_func_getentropy" + if test "x$ac_cv_func_getentropy" = xyes + then : + printf "%s\n" "#define HAVE_GETENTROPY 1" >>confdefs.h +@@ -19303,6 +19297,12 @@ if test "x$ac_cv_func_getgroups" = xyes + then : + printf "%s\n" "#define HAVE_GETGROUPS 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 + ac_fn_c_check_func "$LINENO" "system" "ac_cv_func_system" + if test "x$ac_cv_func_system" = xyes +diff --git a/configure.ac b/configure.ac +index 597a44b331a..6ffcb8694d4 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -5217,7 +5217,7 @@ fi + # checks for library functions + AC_CHECK_FUNCS([ \ + accept4 alarm bind_textdomain_codeset chmod chown clock closefrom 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 geteuid getgid getgrent getgrgid getgrgid_r \ +@@ -5227,7 +5227,7 @@ AC_CHECK_FUNCS([ \ + getspnam getuid getwd grantpt 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_openpt posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_openpt posix_spawn posix_spawnp \ + posix_spawn_file_actions_addclosefrom_np \ + pread preadv preadv2 process_vm_readv pthread_cond_timedwait_relative_np pthread_condattr_setclock pthread_init \ + pthread_kill ptsname ptsname_r pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ +@@ -5255,7 +5255,7 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- AC_CHECK_FUNCS([getentropy getgroups system]) ++ AC_CHECK_FUNCS([dup3 getentropy getgroups pipe2 system]) + fi + + AC_CHECK_DECL([dirfd], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.13.7/Python-3.13.7/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch b/plugins/python-build/share/python-build/patches/3.13.7/Python-3.13.7/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch new file mode 100644 index 00000000..f4fa8d3b --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.7/Python-3.13.7/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch @@ -0,0 +1,103 @@ +From f8dd6d4a22e74635cb2e1e7e8ad47033f06a4946 Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 00:30:17 -0700 +Subject: [PATCH] [3.13] gh-153711: Avoid use of dup3 and pipe2 calls + introduced in macOS 27 (#155211) + +This prevents potential segfaults when builds are used on older +systems and avoids adding new code for supporting weaklinking. +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 ++ + configure | 32 +++++++++++-------- + configure.ac | 8 ++++- + 3 files changed, 29 insertions(+), 14 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 4ade7c21754..6fd245e4c3b 100755 +--- a/configure ++++ b/configure +@@ -19280,13 +19280,7 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; 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" "getentropy" "ac_cv_func_getentropy" ++ ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" + if test "x$ac_cv_func_getentropy" = xyes + then : + printf "%s\n" "#define HAVE_GETENTROPY 1" >>confdefs.h +@@ -19297,12 +19291,6 @@ if test "x$ac_cv_func_getgroups" = xyes + then : + printf "%s\n" "#define HAVE_GETGROUPS 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 + ac_fn_c_check_func "$LINENO" "system" "ac_cv_func_system" + if test "x$ac_cv_func_system" = xyes +@@ -19311,6 +19299,24 @@ then : + + fi + ++fi ++# In addition, 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" != "iOS" -a "$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 + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5 +diff --git a/configure.ac b/configure.ac +index 6ffcb8694d4..f75d0ff02ba 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -5255,7 +5255,13 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- AC_CHECK_FUNCS([dup3 getentropy getgroups pipe2 system]) ++ AC_CHECK_FUNCS([getentropy getgroups system]) ++fi ++# In addition, 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" != "iOS" -a "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) + fi + + AC_CHECK_DECL([dirfd], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.13.7t b/plugins/python-build/share/python-build/patches/3.13.7t new file mode 120000 index 00000000..7acdc739 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.7t @@ -0,0 +1 @@ +3.13.7 \ No newline at end of file diff --git a/plugins/python-build/share/python-build/patches/3.13.8/Python-3.13.8/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch b/plugins/python-build/share/python-build/patches/3.13.8/Python-3.13.8/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch new file mode 100644 index 00000000..a0b890fa --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.8/Python-3.13.8/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch @@ -0,0 +1,105 @@ +From 8f7c908415d76ab2e71f6bc6479c912c1ba99bd2 Mon Sep 17 00:00:00 2001 +From: Russell Keith-Magee +Date: Tue, 26 May 2026 13:07:20 +0800 +Subject: [PATCH] [3.13] gh-150443: Exclude explicit dup3 and pipe2 checks on + iOS builds. (GH-150444) (#150448) + +Exclude explicit dup3 and pipe2 checks on iOS builds. +(cherry picked from commit 629da5c914b4407e01c1dc06cbcbd8dce825fef3) +--- + configure | 26 +++++++++++++------------- + configure.ac | 6 +++--- + 2 files changed, 16 insertions(+), 16 deletions(-) + +diff --git a/configure b/configure +index 901a26c9602..4ade7c21754 100755 +--- a/configure ++++ b/configure +@@ -18191,12 +18191,6 @@ if test "x$ac_cv_func_dup" = xyes + then : + printf "%s\n" "#define HAVE_DUP 1" >>confdefs.h + +-fi +-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" "execv" "ac_cv_func_execv" + if test "x$ac_cv_func_execv" = xyes +@@ -18671,12 +18665,6 @@ if test "x$ac_cv_func_pipe" = xyes + then : + printf "%s\n" "#define HAVE_PIPE 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 + ac_fn_c_check_func "$LINENO" "plock" "ac_cv_func_plock" + if test "x$ac_cv_func_plock" = xyes +@@ -19292,7 +19280,13 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" ++ 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" "getentropy" "ac_cv_func_getentropy" + if test "x$ac_cv_func_getentropy" = xyes + then : + printf "%s\n" "#define HAVE_GETENTROPY 1" >>confdefs.h +@@ -19303,6 +19297,12 @@ if test "x$ac_cv_func_getgroups" = xyes + then : + printf "%s\n" "#define HAVE_GETGROUPS 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 + ac_fn_c_check_func "$LINENO" "system" "ac_cv_func_system" + if test "x$ac_cv_func_system" = xyes +diff --git a/configure.ac b/configure.ac +index 597a44b331a..6ffcb8694d4 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -5217,7 +5217,7 @@ fi + # checks for library functions + AC_CHECK_FUNCS([ \ + accept4 alarm bind_textdomain_codeset chmod chown clock closefrom 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 geteuid getgid getgrent getgrgid getgrgid_r \ +@@ -5227,7 +5227,7 @@ AC_CHECK_FUNCS([ \ + getspnam getuid getwd grantpt 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_openpt posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_openpt posix_spawn posix_spawnp \ + posix_spawn_file_actions_addclosefrom_np \ + pread preadv preadv2 process_vm_readv pthread_cond_timedwait_relative_np pthread_condattr_setclock pthread_init \ + pthread_kill ptsname ptsname_r pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ +@@ -5255,7 +5255,7 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- AC_CHECK_FUNCS([getentropy getgroups system]) ++ AC_CHECK_FUNCS([dup3 getentropy getgroups pipe2 system]) + fi + + AC_CHECK_DECL([dirfd], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.13.8/Python-3.13.8/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch b/plugins/python-build/share/python-build/patches/3.13.8/Python-3.13.8/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch new file mode 100644 index 00000000..a53dc267 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.8/Python-3.13.8/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch @@ -0,0 +1,103 @@ +From c706d5d58dc4f620b665258946f86d0f48ad39f8 Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 00:30:17 -0700 +Subject: [PATCH] [3.13] gh-153711: Avoid use of dup3 and pipe2 calls + introduced in macOS 27 (#155211) + +This prevents potential segfaults when builds are used on older +systems and avoids adding new code for supporting weaklinking. +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 ++ + configure | 32 +++++++++++-------- + configure.ac | 8 ++++- + 3 files changed, 29 insertions(+), 14 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 4ade7c21754..6fd245e4c3b 100755 +--- a/configure ++++ b/configure +@@ -19280,13 +19280,7 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; 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" "getentropy" "ac_cv_func_getentropy" ++ ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" + if test "x$ac_cv_func_getentropy" = xyes + then : + printf "%s\n" "#define HAVE_GETENTROPY 1" >>confdefs.h +@@ -19297,12 +19291,6 @@ if test "x$ac_cv_func_getgroups" = xyes + then : + printf "%s\n" "#define HAVE_GETGROUPS 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 + ac_fn_c_check_func "$LINENO" "system" "ac_cv_func_system" + if test "x$ac_cv_func_system" = xyes +@@ -19311,6 +19299,24 @@ then : + + fi + ++fi ++# In addition, 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" != "iOS" -a "$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 + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5 +diff --git a/configure.ac b/configure.ac +index 6ffcb8694d4..f75d0ff02ba 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -5255,7 +5255,13 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- AC_CHECK_FUNCS([dup3 getentropy getgroups pipe2 system]) ++ AC_CHECK_FUNCS([getentropy getgroups system]) ++fi ++# In addition, 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" != "iOS" -a "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) + fi + + AC_CHECK_DECL([dirfd], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.13.8t b/plugins/python-build/share/python-build/patches/3.13.8t new file mode 120000 index 00000000..0b9554bc --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.8t @@ -0,0 +1 @@ +3.13.8 \ No newline at end of file diff --git a/plugins/python-build/share/python-build/patches/3.13.9/Python-3.13.9/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch b/plugins/python-build/share/python-build/patches/3.13.9/Python-3.13.9/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch new file mode 100644 index 00000000..badca20d --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.9/Python-3.13.9/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch @@ -0,0 +1,105 @@ +From b0c32c8d11e63c3cc6f8741e3362e67965b5e446 Mon Sep 17 00:00:00 2001 +From: Russell Keith-Magee +Date: Tue, 26 May 2026 13:07:20 +0800 +Subject: [PATCH] [3.13] gh-150443: Exclude explicit dup3 and pipe2 checks on + iOS builds. (GH-150444) (#150448) + +Exclude explicit dup3 and pipe2 checks on iOS builds. +(cherry picked from commit 629da5c914b4407e01c1dc06cbcbd8dce825fef3) +--- + configure | 26 +++++++++++++------------- + configure.ac | 6 +++--- + 2 files changed, 16 insertions(+), 16 deletions(-) + +diff --git a/configure b/configure +index 901a26c9602..4ade7c21754 100755 +--- a/configure ++++ b/configure +@@ -18191,12 +18191,6 @@ if test "x$ac_cv_func_dup" = xyes + then : + printf "%s\n" "#define HAVE_DUP 1" >>confdefs.h + +-fi +-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" "execv" "ac_cv_func_execv" + if test "x$ac_cv_func_execv" = xyes +@@ -18671,12 +18665,6 @@ if test "x$ac_cv_func_pipe" = xyes + then : + printf "%s\n" "#define HAVE_PIPE 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 + ac_fn_c_check_func "$LINENO" "plock" "ac_cv_func_plock" + if test "x$ac_cv_func_plock" = xyes +@@ -19292,7 +19280,13 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" ++ 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" "getentropy" "ac_cv_func_getentropy" + if test "x$ac_cv_func_getentropy" = xyes + then : + printf "%s\n" "#define HAVE_GETENTROPY 1" >>confdefs.h +@@ -19303,6 +19297,12 @@ if test "x$ac_cv_func_getgroups" = xyes + then : + printf "%s\n" "#define HAVE_GETGROUPS 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 + ac_fn_c_check_func "$LINENO" "system" "ac_cv_func_system" + if test "x$ac_cv_func_system" = xyes +diff --git a/configure.ac b/configure.ac +index 597a44b331a..6ffcb8694d4 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -5217,7 +5217,7 @@ fi + # checks for library functions + AC_CHECK_FUNCS([ \ + accept4 alarm bind_textdomain_codeset chmod chown clock closefrom 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 geteuid getgid getgrent getgrgid getgrgid_r \ +@@ -5227,7 +5227,7 @@ AC_CHECK_FUNCS([ \ + getspnam getuid getwd grantpt 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_openpt posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_openpt posix_spawn posix_spawnp \ + posix_spawn_file_actions_addclosefrom_np \ + pread preadv preadv2 process_vm_readv pthread_cond_timedwait_relative_np pthread_condattr_setclock pthread_init \ + pthread_kill ptsname ptsname_r pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ +@@ -5255,7 +5255,7 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- AC_CHECK_FUNCS([getentropy getgroups system]) ++ AC_CHECK_FUNCS([dup3 getentropy getgroups pipe2 system]) + fi + + AC_CHECK_DECL([dirfd], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.13.9/Python-3.13.9/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch b/plugins/python-build/share/python-build/patches/3.13.9/Python-3.13.9/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch new file mode 100644 index 00000000..c00b2521 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.9/Python-3.13.9/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch @@ -0,0 +1,103 @@ +From 3fc7c23cce6b846952067df633f113510a83e2c3 Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 00:30:17 -0700 +Subject: [PATCH] [3.13] gh-153711: Avoid use of dup3 and pipe2 calls + introduced in macOS 27 (#155211) + +This prevents potential segfaults when builds are used on older +systems and avoids adding new code for supporting weaklinking. +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 ++ + configure | 32 +++++++++++-------- + configure.ac | 8 ++++- + 3 files changed, 29 insertions(+), 14 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 4ade7c21754..6fd245e4c3b 100755 +--- a/configure ++++ b/configure +@@ -19280,13 +19280,7 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; 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" "getentropy" "ac_cv_func_getentropy" ++ ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" + if test "x$ac_cv_func_getentropy" = xyes + then : + printf "%s\n" "#define HAVE_GETENTROPY 1" >>confdefs.h +@@ -19297,12 +19291,6 @@ if test "x$ac_cv_func_getgroups" = xyes + then : + printf "%s\n" "#define HAVE_GETGROUPS 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 + ac_fn_c_check_func "$LINENO" "system" "ac_cv_func_system" + if test "x$ac_cv_func_system" = xyes +@@ -19311,6 +19299,24 @@ then : + + fi + ++fi ++# In addition, 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" != "iOS" -a "$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 + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5 +diff --git a/configure.ac b/configure.ac +index 6ffcb8694d4..f75d0ff02ba 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -5255,7 +5255,13 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- AC_CHECK_FUNCS([dup3 getentropy getgroups pipe2 system]) ++ AC_CHECK_FUNCS([getentropy getgroups system]) ++fi ++# In addition, 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" != "iOS" -a "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) + fi + + AC_CHECK_DECL([dirfd], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.13.9t b/plugins/python-build/share/python-build/patches/3.13.9t new file mode 120000 index 00000000..4fd0f831 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.9t @@ -0,0 +1 @@ +3.13.9 \ No newline at end of file