diff --git a/dev-lang/python/patches/python3.14-3.14.0~rc2.patchset b/dev-lang/python/patches/python3.14-3.14.0~rc3.patchset similarity index 96% rename from dev-lang/python/patches/python3.14-3.14.0~rc2.patchset rename to dev-lang/python/patches/python3.14-3.14.0~rc3.patchset index 12cec723a..b1a25a118 100644 --- a/dev-lang/python/patches/python3.14-3.14.0~rc2.patchset +++ b/dev-lang/python/patches/python3.14-3.14.0~rc3.patchset @@ -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 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 #include 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 diff --git a/dev-lang/python/python3.14-3.14.0~rc2.recipe b/dev-lang/python/python3.14-3.14.0~rc3.recipe similarity index 91% rename from dev-lang/python/python3.14-3.14.0~rc2.recipe rename to dev-lang/python/python3.14-3.14.0~rc3.recipe index c8f5dd289..ff10a895f 100644 --- a/dev-lang/python/python3.14-3.14.0~rc2.recipe +++ b/dev-lang/python/python3.14-3.14.0~rc3.recipe @@ -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.