python3: bump to version 3.13.9

Explicitly disable readline and tkinter modules for host-build.
Host-build will not build if these fail.
  - readline isn't a hard requirement for host-python; some minor lack of
    functionality would be felt, but nothing terrible
  - tkinter is also disabled on the target; but for the host-python we
    don't need it either

Dropped patch: 010-no-ncursesw.patch
  - Since we're disabling readline in the host build

Drop setuptools from python3 - the only reason we kept it there, was
because it was required by pip; pip is still there and seems to install and
work fine without setuptools. There's also a separate setuptools package in
openwrt anyway:
  https://github.com/openwrt/packages/tree/master/lang/python/python-setuptools
Also, Python no longer installs it:
  https://github.com/python/cpython/issues/95299

Drop python3-cgi - 08d5923896
Drop distutils - 0faa0ba240
Drop lib2to3 - ae00b810d1

Drop patch: 0001-Adjust-library-header-paths-for-cross-compilation.patch
  - A lot of stuff has changed regarding cross-compilation; at this point
    it's unclear what we need moving forward.

Drop patch: 006-do-not-add-multiarch-local-paths.patch
  - setup.py went away, so no idea if this is needed anymore

Re-applied: 003-do-not-run-compileall.patch

Drop: 008-distutils-use-python-sysroot.patch
  - Buildroot seems to have also dropped this; this patch is from them

Added: 09-don-t-run-profile-task-during-cross-build.patch
  - For cross_compilation, running the profile-task will not work, it also
    mentions this in a comment, but nobody dared to patch it yet (at least
    in this release (3.13.9)

Re-applied: 026-openssl-feature-flags.patch
  - This could have been dropped completely, but upstream decided to keep
    scrypt on by default; for host-build this fails, because OpenWrt keeps
    libressl

Drop patch: 100-gh-95855-Refactor-platform-triplet-detection-code-GH-107221.patch
  - This was a backport; it probably should have been removed sooner

Signed-off-by: Alexandru Ardelean <alex@shruggie.ro>

wip
This commit is contained in:
Alexandru Ardelean
2024-11-24 10:59:27 +02:00
committed by Hannu Nyman
parent e3a1f5b0b9
commit 97a92f2e7a
17 changed files with 61 additions and 818 deletions

View File

@@ -1,53 +1,16 @@
--- a/Modules/_hashopenssl.c
+++ b/Modules/_hashopenssl.c
@@ -45,10 +45,18 @@
@@ -45,7 +45,9 @@
#define MUNCH_SIZE INT_MAX
+#ifdef NID_id_scrypt
#define PY_OPENSSL_HAS_SCRYPT 1
+#endif
+#ifdef NID_sha3_256
#if defined(NID_sha3_224) && defined(NID_sha3_256) && defined(NID_sha3_384) && defined(NID_sha3_512)
#define PY_OPENSSL_HAS_SHA3 1
+#endif
+#ifdef NID_shake256
#define PY_OPENSSL_HAS_SHAKE 1
+#endif
+#ifdef NID_blake2s256
#define PY_OPENSSL_HAS_BLAKE2 1
+#endif
#if OPENSSL_VERSION_NUMBER >= 0x30000000L
#define PY_EVP_MD EVP_MD
@@ -120,19 +128,27 @@ static const py_hashentry_t py_hashes[]
PY_HASH_ENTRY(Py_hash_sha384, "SHA384", SN_sha384, NID_sha384),
PY_HASH_ENTRY(Py_hash_sha512, "SHA512", SN_sha512, NID_sha512),
/* truncated sha2 */
+#ifdef NID_sha512_256
PY_HASH_ENTRY(Py_hash_sha512_224, "SHA512_224", SN_sha512_224, NID_sha512_224),
PY_HASH_ENTRY(Py_hash_sha512_256, "SHA512_256", SN_sha512_256, NID_sha512_256),
+#endif
/* sha3 */
+#ifdef PY_OPENSSL_HAS_SHA3
PY_HASH_ENTRY(Py_hash_sha3_224, NULL, SN_sha3_224, NID_sha3_224),
PY_HASH_ENTRY(Py_hash_sha3_256, NULL, SN_sha3_256, NID_sha3_256),
PY_HASH_ENTRY(Py_hash_sha3_384, NULL, SN_sha3_384, NID_sha3_384),
PY_HASH_ENTRY(Py_hash_sha3_512, NULL, SN_sha3_512, NID_sha3_512),
+#endif
/* sha3 shake */
+#ifdef PY_OPENSSL_HAS_SHAKE
PY_HASH_ENTRY(Py_hash_shake_128, NULL, SN_shake128, NID_shake128),
PY_HASH_ENTRY(Py_hash_shake_256, NULL, SN_shake256, NID_shake256),
+#endif
/* blake2 digest */
+#ifdef PY_OPENSSL_HAS_BLAKE2
PY_HASH_ENTRY(Py_hash_blake2s, "blake2s256", SN_blake2s256, NID_blake2s256),
PY_HASH_ENTRY(Py_hash_blake2b, "blake2b512", SN_blake2b512, NID_blake2b512),
+#endif
PY_HASH_ENTRY(NULL, NULL, NULL, 0),
};
@@ -874,11 +890,15 @@ py_evp_fromname(PyObject *module, const
#endif
@@ -971,11 +973,15 @@ _hashlib_HASH(PyObject *module, const ch
goto exit;
}