python3.14: update to version 3.14.0rc3. (#12939)

This commit is contained in:
OscarL
2025-09-19 23:59:57 -03:00
committed by GitHub
parent 6e70a085c1
commit d6f676bfed
2 changed files with 72 additions and 63 deletions

View File

@@ -1,4 +1,4 @@
From 27f146534f05b6f401b27f8908c9ea78b611e26b Mon Sep 17 00:00:00 2001
From 4a584c41aa8b9c9bc25eb98300864095f637db92 Mon Sep 17 00:00:00 2001
From: Oscar Lesta <oscar.lesta@gmail.com>
Date: Sun, 8 Oct 2023 01:02:25 -0300
Subject: initial Haiku patch
@@ -22,7 +22,7 @@ index 3eac119..1e5df7e 100644
// See PyUnicode_DecodeFSDefaultAndSize(), PyUnicode_EncodeFSDefault(),
// Py_DecodeLocale() and Py_EncodeLocale().
diff --git a/Makefile.pre.in b/Makefile.pre.in
index 01e10d1..a4540e7 100644
index 764eef5..c5d8a08 100644
--- a/Makefile.pre.in
+++ b/Makefile.pre.in
@@ -156,7 +156,7 @@ BINDIR= @bindir@
@@ -148,7 +148,7 @@ index 63624d5..3692640 100644
#include <bluetooth/bluetooth.h>
#include <bluetooth/rfcomm.h>
diff --git a/configure.ac b/configure.ac
index d605947..befb551 100644
index 42d9477..a2104fe 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1585,6 +1585,16 @@ if test $enable_shared = "yes"; then
@@ -194,10 +194,10 @@ index d605947..befb551 100644
esac
AC_MSG_CHECKING([for --with-libm=STRING])
--
2.48.1
2.50.1
From 3064b60fb1e2820ccf135f215c6212bbea583f8b Mon Sep 17 00:00:00 2001
From 53f5060bb30f940ce8b9e0b45c6c29b2fe9af7ff Mon Sep 17 00:00:00 2001
From: Jerome Duval <jerome.duval@gmail.com>
Date: Sun, 16 Apr 2017 10:05:42 +0200
Subject: fix for negative errnos
@@ -232,10 +232,10 @@ index b542f86..a996ebf 100644
*--cur = Py_hexdigits[saved_errno % 16];
saved_errno /= 16;
--
2.48.1
2.50.1
From 5221da2e8af1c775798645759feed7e7209c5708 Mon Sep 17 00:00:00 2001
From 2b323e031f8b87f6b58e96d93f5becd0f5d20baf Mon Sep 17 00:00:00 2001
From: Oscar Lesta <oscar.lesta@gmail.com>
Date: Sun, 8 Oct 2023 20:06:31 -0300
Subject: Implement CTypes's find_library for Haiku
@@ -245,7 +245,7 @@ This combines:
- A slight variation of Adrien Destugues' fix for x86_gcc2.
diff --git a/Lib/ctypes/util.py b/Lib/ctypes/util.py
index 9950491..fefae29 100644
index 378f121..a9136ad 100644
--- a/Lib/ctypes/util.py
+++ b/Lib/ctypes/util.py
@@ -1,4 +1,5 @@
@@ -254,7 +254,7 @@ index 9950491..fefae29 100644
import shutil
import subprocess
import sys
@@ -352,6 +353,60 @@ elif os.name == "posix":
@@ -371,6 +372,60 @@ elif os.name == "posix":
def find_library(name, is64 = False):
return _get_soname(_findLib_crle(name, is64) or _findLib_gcc(name))
@@ -315,7 +315,7 @@ index 9950491..fefae29 100644
else:
def _findSoname_ldconfig(name):
@@ -503,6 +558,12 @@ def test():
@@ -522,6 +577,12 @@ def test():
print(f"crypt\t:: {cdll.LoadLibrary(find_library('crypt'))}")
print(f"crypto\t:: {find_library('crypto')}")
print(f"crypto\t:: {cdll.LoadLibrary(find_library('crypto'))}")
@@ -329,10 +329,10 @@ index 9950491..fefae29 100644
print(cdll.LoadLibrary("libm.so"))
print(cdll.LoadLibrary("libcrypt.so"))
--
2.48.1
2.50.1
From d58348a02ce4db6d618f71e926915b948227ac9c Mon Sep 17 00:00:00 2001
From d1bb17f54da1180df9f3e9b4636f28e19e058ef0 Mon Sep 17 00:00:00 2001
From: Philipp Wolfer <phil@parolu.io>
Date: Mon, 23 Sep 2019 09:14:58 +0200
Subject: webbrowser: Support for default browsers on Haiku
@@ -356,10 +356,10 @@ index f2e2394..b937321 100644
# First try to use the default Windows browser
register("windows-default", WindowsDefault)
--
2.48.1
2.50.1
From 20a5cd79a3a2cbccf59cf037393b7253f604f38a Mon Sep 17 00:00:00 2001
From 8e3afd4f26c274c571cda3fb565efd1edd937aee Mon Sep 17 00:00:00 2001
From: Jerome Duval <jerome.duval@gmail.com>
Date: Fri, 4 Oct 2019 22:02:35 +0200
Subject: since 3.8, don't reinit locks on fork.
@@ -379,10 +379,10 @@ index b95c3aa..1652f93 100644
pass # no-op when os.register_at_fork does not exist.
else:
--
2.48.1
2.50.1
From db14fe0e576d7469498749ae55e5289b802a1c60 Mon Sep 17 00:00:00 2001
From 01ad34a1700fc0b46f427b65ab121a85f52b19fa Mon Sep 17 00:00:00 2001
From: Jerome Duval <jerome.duval@gmail.com>
Date: Fri, 15 May 2020 15:20:57 +0200
Subject: handle errors returned by internal_connect()
@@ -403,17 +403,17 @@ index 92c9aa8..82cdf0e 100644
return NULL;
}
--
2.48.1
2.50.1
From 9305a4231cd82c7f47fdf3ee26213030817e80aa Mon Sep 17 00:00:00 2001
From 9ccaa1390792115cba9eb4277e5752ded8162de2 Mon Sep 17 00:00:00 2001
From: Jerome Duval <jerome.duval@gmail.com>
Date: Mon, 19 Oct 2020 18:03:09 +0200
Subject: ttyname_r can use MAXPATHLEN
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
index 904c2f5..beb2ecd 100644
index e1576f8..4a459ef 100644
--- a/Modules/posixmodule.c
+++ b/Modules/posixmodule.c
@@ -3421,11 +3421,14 @@ static PyObject *
@@ -433,10 +433,10 @@ index 904c2f5..beb2ecd 100644
if (buffer == NULL) {
return PyErr_NoMemory();
--
2.48.1
2.50.1
From a34e54ee11ace45860bdb40772b4e9bf3c239837 Mon Sep 17 00:00:00 2001
From 7d264143256fbb72d7c03d3f1b696eec416e5c95 Mon Sep 17 00:00:00 2001
From: Oscar Lesta <oscar.lesta@gmail.com>
Date: Mon, 24 Oct 2022 20:04:10 -0300
Subject: Lib/test: require the "largefile" usage flag for I/O heavy tests.
@@ -486,10 +486,10 @@ index b2a299e..c80ad75 100644
'test requires %s bytes and a long time to run' % str(0x180000000))
f = open(TESTFN, 'w+b')
--
2.48.1
2.50.1
From 1ca9a1cee5c29fcd0c4b1632bfec73513d325961 Mon Sep 17 00:00:00 2001
From dcf6da5ec91db7fa703b0a2bf0475d065c1c207b Mon Sep 17 00:00:00 2001
From: Oscar Lesta <oscar.lesta@gmail.com>
Date: Sat, 27 Jul 2024 04:51:52 -0300
Subject: _getuserbase(), getsitepackages(), and INSTALL_SCHEMES for Haiku.
@@ -702,10 +702,10 @@ index 9faabc2..72125dc 100644
@skip_unless_symlink
--
2.48.1
2.50.1
From 6539df4d92f55e29071578b665532edc5284bae2 Mon Sep 17 00:00:00 2001
From 850ee9715bbe2afe19d0857c772f117a0511c150 Mon Sep 17 00:00:00 2001
From: Oscar Lesta <oscar.lesta@gmail.com>
Date: Mon, 12 Feb 2024 08:39:38 -0300
Subject: Fix location of REPL's history file.
@@ -741,10 +741,10 @@ index c1fe2a4..c304121 100644
def enablerlcompleter():
--
2.48.1
2.50.1
From c7d87a53e5da845c5622be404763a392261947c6 Mon Sep 17 00:00:00 2001
From d21df9ebeaa9b223fd452b79de24221ca26753b8 Mon Sep 17 00:00:00 2001
From: Oscar Lesta <oscar.lesta@gmail.com>
Date: Sun, 10 Dec 2023 19:50:22 -0300
Subject: Miscellaneous "Lib/test/" fixes for Haiku.
@@ -781,10 +781,10 @@ index e3d54f6..efb4d03 100644
# Somehow /dev/tty appears seekable on some BSDs
self.assertEqual(f.seekable(), False)
--
2.48.1
2.50.1
From f70b680d4b802c161cdd6f3daebcdd8ddec0fe71 Mon Sep 17 00:00:00 2001
From b43f969d6b4ab72761e3fb8693b10390a20c604f Mon Sep 17 00:00:00 2001
From: Oscar Lesta <oscar.lesta@gmail.com>
Date: Mon, 12 Feb 2024 10:50:34 -0300
Subject: Fix build on nightlies, following the addition of kqueue.
@@ -847,10 +847,10 @@ index d234d50..6e16247 100644
/* NETDEV filter flags */
--
2.48.1
2.50.1
From 196a5711c20c7bfe7441b67033db44ea1f860676 Mon Sep 17 00:00:00 2001
From 420d4c0fa021636ba08b52c7af76ff95d5134137 Mon Sep 17 00:00:00 2001
From: Oscar Lesta <oscar.lesta@gmail.com>
Date: Fri, 9 Aug 2024 13:38:28 -0300
Subject: fix test_utf8_mode.
@@ -870,10 +870,10 @@ index f668810..a55a8e4 100644
elif sys.platform.startswith("aix"):
c_arg = arg.decode('iso-8859-1')
--
2.48.1
2.50.1
From 1b396770fc3f1d26d1909ff07666012cedbf55b1 Mon Sep 17 00:00:00 2001
From 533ad2f62c6493c95e4b01e0072ea636551aa8d0 Mon Sep 17 00:00:00 2001
From: Oscar Lesta <oscar.lesta@gmail.com>
Date: Fri, 9 Aug 2024 14:35:04 -0300
Subject: Fix test_site.
@@ -960,10 +960,10 @@ index d0e3294..1452e42 100644
if sys.platlibdir != "lib":
self.assertEqual(len(dirs), 2)
--
2.48.1
2.50.1
From e7e1780eb12f49d2eb4c5cb068e770e702a75081 Mon Sep 17 00:00:00 2001
From 3be070ff90af41963a9db0af4f1189c002fe6f1b Mon Sep 17 00:00:00 2001
From: Oscar Lesta <oscar.lesta@gmail.com>
Date: Fri, 9 Aug 2024 15:37:13 -0300
Subject: Fix test_sysconfig.
@@ -1003,10 +1003,10 @@ index 72125dc..ff2ac59 100644
wanted.extend(['nt_user', 'osx_framework_user', 'posix_user', 'haiku_user'])
self.assertEqual(get_scheme_names(), tuple(sorted(wanted)))
--
2.48.1
2.50.1
From 691c1842457dbeb2f9253299295e61bdb6c27818 Mon Sep 17 00:00:00 2001
From 79d90d04ec78385c3cbf11c7f5d0460585cf4349 Mon Sep 17 00:00:00 2001
From: Oscar Lesta <oscar.lesta@gmail.com>
Date: Sun, 29 Sep 2024 03:01:27 -0300
Subject: Partially fix test_compileall by skipping tests that need hardlink
@@ -1039,10 +1039,10 @@ index 8384c18..d7e19ec 100644
# 'a = 0' code produces the same bytecode for the 3 optimization
# levels. All three .pyc files must have the same inode (hardlinks).
--
2.48.1
2.50.1
From 93e4b6197d4d65728fd3a96054e3d3cd56dbe717 Mon Sep 17 00:00:00 2001
From cbbb3958aa8f4345b9b002b6c23dc1d529db61c8 Mon Sep 17 00:00:00 2001
From: Oscar Lesta <oscar.lesta@gmail.com>
Date: Thu, 9 May 2024 15:16:26 -0300
Subject: Fix 3.13.0 build.
@@ -1055,7 +1055,7 @@ Previous Python versions had both the time out and the "|| true".
Some of the test run in that PGO stage sadly still fail on Haiku.
diff --git a/Makefile.pre.in b/Makefile.pre.in
index a4540e7..0643cab 100644
index c5d8a08..c84d55b 100644
--- a/Makefile.pre.in
+++ b/Makefile.pre.in
@@ -856,7 +856,7 @@ profile-run-stamp:
@@ -1090,17 +1090,17 @@ index 1598eba..88b94b6 100644
#if !defined(__HAIKU__) && !defined(__APPLE__) && !defined(__CYGWIN__) && !defined(_AIX) && !defined(__OpenBSD__) && !defined(__FreeBSD__) && !defined(__sun) && !defined(__NetBSD__)
--
2.48.1
2.50.1
From dd06bcebe59c0684582e264e766cd6f4c433ac92 Mon Sep 17 00:00:00 2001
From 846abf6f5fbbf739953d22b4ae6df57dbd62461c Mon Sep 17 00:00:00 2001
From: Oscar Lesta <oscar.lesta@gmail.com>
Date: Sat, 5 Oct 2024 07:32:17 -0300
Subject: Avoid forcing "-g" on LTO builds, unless Py_DEBUG is defined.
diff --git a/configure.ac b/configure.ac
index befb551..2673533 100644
index a2104fe..d2b5b63 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2018,7 +2018,9 @@ if test "$Py_LTO" = 'true' ; then
@@ -1115,10 +1115,10 @@ index befb551..2673533 100644
CFLAGS_NODIST="$CFLAGS_NODIST ${LTOCFLAGS-$LTOFLAGS}"
--
2.48.1
2.50.1
From 0faaa8021dfe51cfecb9024891ecad8426710f61 Mon Sep 17 00:00:00 2001
From fe0850d805374943a6238cd8c812df9a0061e49f Mon Sep 17 00:00:00 2001
From: Oscar Lesta <oscar.lesta@gmail.com>
Date: Thu, 13 Feb 2025 13:30:03 -0300
Subject: Make sure we use 'spawn' on Haiku and not 'forkserver'.
@@ -1138,5 +1138,5 @@ index 051d567..4f20b24 100644
else:
_default_context = DefaultContext(_concrete_contexts['spawn'])
--
2.48.1
2.50.1

View File

@@ -19,13 +19,13 @@ HOMEPAGE="https://www.python.org"
LICENSE="Python"
COPYRIGHT="1990-2025 Python Software Foundation"
REVISION="1"
SOURCE_URI="https://www.python.org/ftp/python/${portVersion%~rc2}/Python-${portVersion/'~'/}.tar.xz"
CHECKSUM_SHA256="bc62854cf232345bd22c9091a68464e01e056c6473a3fffa84572c8a342da656"
SOURCE_URI="https://www.python.org/ftp/python/${portVersion%~rc3}/Python-${portVersion/'~'/}.tar.xz"
CHECKSUM_SHA256="646dc945e49c73a141896deda12d43f3f293fd69426774c16fc43496180e8fcd"
SOURCE_DIR="Python-${portVersion/'~'/}"
pyShortVer="${portVersion%~rc2}"
pyShortVer="${portVersion%~rc3}"
pyShortVer="${pyShortVer%.*}"
pyVersionCompat="${portVersion%~rc2} compat >= $pyShortVer"
pyVersionCompat="${portVersion%~rc3} compat >= $pyShortVer"
PATCHES="python$pyShortVer-$portVersion.patchset"
@@ -92,8 +92,10 @@ REQUIRES="
# lib:libmpdec$secondaryArchSuffix # bundled libmpdecimal scheduled for removal on 3.15
lib:libncursesw$secondaryArchSuffix
lib:libsqlite3$secondaryArchSuffix # >= 3.15.2
# lib:libuuid$secondaryArchSuffix
lib:libssl$secondaryArchSuffix
lib:libz$secondaryArchSuffix
lib:libzstd$secondaryArchSuffix
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
@@ -106,7 +108,9 @@ BUILD_REQUIRES="
devel:libncursesw$secondaryArchSuffix
devel:libsqlite3$secondaryArchSuffix
devel:libssl$secondaryArchSuffix
# devel:libuuid$secondaryArchSuffix
devel:libz$secondaryArchSuffix
devel:libzstd$secondaryArchSuffix
"
BUILD_PREREQUIRES="
autoconf_archive
@@ -166,7 +170,7 @@ BUILD()
# OPT= -DNDEBUG -g -O3 -Wall
# -NDEBUG gets added by ./configure unless "--with-assertions" is used.
export BASECFLAGS="-pipe -D_BSD_SOURCE"
export BASECFLAGS="-pipe -D_BSD_SOURCE" # -Wno-profile-instr-unprofiled
export OPT="-Wall" # remove "-g" until we use "defineDebugInfoPackage".
if $optimizedBuild; then
@@ -309,6 +313,11 @@ INSTALL()
# Total duration: 33 min 21 sec
# Total tests: run=40,723 failures=680 skipped=1,976
# Total test files: run=481/451 failed=35 skipped=33 resource_denied=7 rerun=37
# For reference, results for unoptimized 3.14.0rc2 on hrev59030 (32 bits VMware, RAMFS):
# Total duration: 45 min 44 sec
# Total tests: run=40,470 failures=613 skipped=1,994
# Total test files: run=469/451 failed=24 skipped=33 resource_denied=7 rerun=25
TEST()
{
# Remove tests data left-overs, if any:
@@ -416,15 +425,15 @@ TEST()
test_ctypes # stupid test compares wording of error message.
test_datetime # on rare ocassions, it passes.
test_fcntl # "Permission denied" in test_lockf_exclusive
# test_genericpath # os.path.getatime() should return an int. OK on RAMFS?
# test_genericpath # os.path.getatime() should return an int. OK on RAMFS? (OK on hrev59030 32 bits RAMFS?)
test_importlib
test_ioctl # B_ERROR calling "fcntl.ioctl(wfd, termios.TCFLSH, termios.TCIFLUSH)"
test_json # "AssertionError: 13 != -2147459059" (errno.EPIPE)
# test_mailbox # fails to clean a temp file? (os.utime() related?). Sometimes it takes >5 minutes.
test_math # test expects to get -0.0, gets 0.0
test_multiprocessing_main_handling
# test_math # test expects to get -0.0, gets 0.0 (OK on hrev59030 32 bits RAMFS?)
# test_multiprocessing_main_handling # (OK on hrev59030 32 bits RAMFS?)
test_os # named pipes related errors. set_get_priority, ttyname, and utime fails.
test_pathlib # only on RAMFS?
# test_pathlib # only on RAMFS? (OK on hrev59030 32 bits RAMFS?)
test_popen # sign error numbers in waitstatus_to_exitcode()... "AssertionError: -42 != 42"
test_posix # test_posix_fallocate and test_link_dir_fd. Operation not supported.
test_pyrepl # several: "module 'termios' has no attribute 'VREPRINT'". Adding hasattr(termios, 'VREPRINT') still results in error.
@@ -432,25 +441,25 @@ TEST()
test_shutil # "Operation not supported" calling "os.scandir(topfd)".
test_signal # stupid test compares wording of strsignal(signal.SIGTERM).
# test_smtplib # Sometimes fails.
test_stat # RAMFS only?
# test_stat # RAMFS only? (OK on hrev59030 32 bits RAMFS?)
test_strptime # locale related failures.
test_subprocess # "Device/File/Resource busy" calling setrlimit()
test_sysconfig # venv related failures.
test_tarfile # os.path.getmtime() should return an int. Also, path.stat().st_mtime and pathlib.Path(TEMPDIR).stat().st_mtime seems to be using different scales: 1723.215266 vs 1723215266.0319815
test_termios # tcdrain/tcflow/tcflush/tcsendbreak related failures.
test_time # ctime/mktime related failures.
test_tools # _strptime / "%z" related.
# test_tools # _strptime / "%z" related. (OK on hrev59030 32 bits RAMFS?)
test_venv
)
# besides the above ones, the following only fail when the workdir is in RAMFS:
local tests_that_fail_only_on_ramfs=(
test.test_concurrent_futures.test_as_completed
test.test_concurrent_futures.test_deadlock
test.test_concurrent_futures.test_init
test.test_concurrent_futures.test_interpreter_pool
test.test_concurrent_futures.test_shutdown
test.test_concurrent_futures.test_wait
# test.test_concurrent_futures.test_as_completed
# test.test_concurrent_futures.test_deadlock
# test.test_concurrent_futures.test_init
test.test_concurrent_futures.test_interpreter_pool # on hrev59030 32 bits RAMFS failed once.
# test.test_concurrent_futures.test_shutdown
# test.test_concurrent_futures.test_wait
)
# test_freeze_simple_script is auto-skipped on PGO builds.