From 548a2dc4000334bcf28cf1243c580352f5ee998a Mon Sep 17 00:00:00 2001 From: DmitriyMusatkin Date: Tue, 13 Jan 2026 15:55:48 -0800 Subject: [PATCH 1/8] disable limited api for no gil 3.14 --- setup.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 68e0f617b..216ac2dec 100644 --- a/setup.py +++ b/setup.py @@ -445,6 +445,7 @@ def awscrt_ext(): extra_objects = [] define_macros = [] py_limited_api = False + has_gil = True libraries = [x.libname for x in AWS_LIBS] @@ -531,8 +532,15 @@ def awscrt_ext(): else: extra_link_args += ['-Wl,--fatal-warnings'] + if hasattr(sys, '_is_gil_enabled'): + has_gil = sys._is_gil_enabled() + # prefer building with stable ABI, so a wheel can work with multiple major versions - if sys.version_info >= (3, 13): + if not has_gil and sys.version_info == (3, 14): + # 3.14 free threaded (aka no gil) does not support limited api. + # disable it for now. 3.15 promises to support limited api + free threading combo + py_limited_api = False + elif sys.version_info >= (3, 13): # 3.13 deprecates PyWeakref_GetObject(), adds alternative define_macros.append(('Py_LIMITED_API', '0x030D0000')) py_limited_api = True From 25fe8448f4febae606314d19040337c913c15ffd Mon Sep 17 00:00:00 2001 From: DmitriyMusatkin Date: Fri, 3 Apr 2026 11:44:49 -0700 Subject: [PATCH 2/8] algos --- awscrt/s3.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/awscrt/s3.py b/awscrt/s3.py index 41cb73eff..2a732f5ff 100644 --- a/awscrt/s3.py +++ b/awscrt/s3.py @@ -106,6 +106,18 @@ class S3ChecksumAlgorithm(IntEnum): CRC64NVME = 5 """CRC64NVME""" + SHA512 = 6, + """SHA512""" + + XXHASH64 = 7, + """XXHASH64""" + + XXHASH3 = 8, + """XXHASH3""" + + XXHASH128 = 9, + """XXHASH128""" + class S3ChecksumLocation(IntEnum): """Where to put the checksum.""" From 2312cb7459163e255fdba010d68bc1ce62c0d006 Mon Sep 17 00:00:00 2001 From: DmitriyMusatkin Date: Fri, 3 Apr 2026 12:11:18 -0700 Subject: [PATCH 3/8] up --- crt/aws-c-s3 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crt/aws-c-s3 b/crt/aws-c-s3 index e9d1bde13..ab764f57e 160000 --- a/crt/aws-c-s3 +++ b/crt/aws-c-s3 @@ -1 +1 @@ -Subproject commit e9d1bde139f88b08aaa3bf0507f443f31ccede93 +Subproject commit ab764f57ec3cab7866c0f8b7d9e9772b7cc1b9ee From dca1cc71aea413a4da01fd033da67ff6afc102f7 Mon Sep 17 00:00:00 2001 From: DmitriyMusatkin Date: Fri, 3 Apr 2026 12:22:38 -0700 Subject: [PATCH 4/8] update versions --- crt/aws-c-auth | 2 +- crt/aws-c-event-stream | 2 +- crt/aws-c-http | 2 +- crt/aws-c-io | 2 +- crt/aws-c-mqtt | 2 +- crt/aws-checksums | 2 +- crt/aws-lc | 2 +- crt/s2n | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/crt/aws-c-auth b/crt/aws-c-auth index a4409b95d..fc4b87655 160000 --- a/crt/aws-c-auth +++ b/crt/aws-c-auth @@ -1 +1 @@ -Subproject commit a4409b95dad40a45b81e5fc9ff96f41386845e4f +Subproject commit fc4b87655e5cd3921f18d1859193c74af4102071 diff --git a/crt/aws-c-event-stream b/crt/aws-c-event-stream index f43a3d24a..66cafb1d8 160000 --- a/crt/aws-c-event-stream +++ b/crt/aws-c-event-stream @@ -1 +1 @@ -Subproject commit f43a3d24a7c1f8b50f709ccb4fdf4c7fd2827fff +Subproject commit 66cafb1d8bb1bfeb62a7601ce03d1a6fcd4798ed diff --git a/crt/aws-c-http b/crt/aws-c-http index acf313990..da535b1bf 160000 --- a/crt/aws-c-http +++ b/crt/aws-c-http @@ -1 +1 @@ -Subproject commit acf31399077300c522315612dd2be09cfe48b5b8 +Subproject commit da535b1bf9c9334730eb78a26a1bbb3c069b38c9 diff --git a/crt/aws-c-io b/crt/aws-c-io index d5ad01cef..1ec8081f2 160000 --- a/crt/aws-c-io +++ b/crt/aws-c-io @@ -1 +1 @@ -Subproject commit d5ad01cef5d027f65c6f5b460972bae0a469779d +Subproject commit 1ec8081f208ef8d51381889eda3bda9756fd5bb5 diff --git a/crt/aws-c-mqtt b/crt/aws-c-mqtt index 1d512d927..3c2ceee52 160000 --- a/crt/aws-c-mqtt +++ b/crt/aws-c-mqtt @@ -1 +1 @@ -Subproject commit 1d512d92709f60b74e2cafa018e69a2e647f28e9 +Subproject commit 3c2ceee52b66db42228053a4fb55210c8f8433a0 diff --git a/crt/aws-checksums b/crt/aws-checksums index c412c6360..1d5f2f1f3 160000 --- a/crt/aws-checksums +++ b/crt/aws-checksums @@ -1 +1 @@ -Subproject commit c412c636091501c2cd544d23664c8d14999e9dcc +Subproject commit 1d5f2f1f3e5d013aae8810878ceb5b3f6f258c4e diff --git a/crt/aws-lc b/crt/aws-lc index 728811eec..47389586f 160000 --- a/crt/aws-lc +++ b/crt/aws-lc @@ -1 +1 @@ -Subproject commit 728811eecec794802c78105be6dbfe9d79870ac7 +Subproject commit 47389586f8aa77c83245173793f4d44ed1d6c3a8 diff --git a/crt/s2n b/crt/s2n index 3276a0876..a71ea1f97 160000 --- a/crt/s2n +++ b/crt/s2n @@ -1 +1 @@ -Subproject commit 3276a0876054e9efbeab4a42f34ef60b0bf58c91 +Subproject commit a71ea1f9764ee9ae91b47c34faa0447c4fe11d0a From 35cac22673c5037c5fc0f31b690003976b5b3cdd Mon Sep 17 00:00:00 2001 From: DmitriyMusatkin Date: Fri, 3 Apr 2026 12:53:53 -0700 Subject: [PATCH 5/8] still needed? --- crt/aws-c-http | 2 +- crt/aws-c-s3 | 2 +- crt/s2n | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/crt/aws-c-http b/crt/aws-c-http index da535b1bf..8bf9e53dd 160000 --- a/crt/aws-c-http +++ b/crt/aws-c-http @@ -1 +1 @@ -Subproject commit da535b1bf9c9334730eb78a26a1bbb3c069b38c9 +Subproject commit 8bf9e53ddc1057d8581f407c609e372370fd1e40 diff --git a/crt/aws-c-s3 b/crt/aws-c-s3 index ab764f57e..8eb717a55 160000 --- a/crt/aws-c-s3 +++ b/crt/aws-c-s3 @@ -1 +1 @@ -Subproject commit ab764f57ec3cab7866c0f8b7d9e9772b7cc1b9ee +Subproject commit 8eb717a557734b3f1249d45acb2f92124a264f80 diff --git a/crt/s2n b/crt/s2n index a71ea1f97..e82d62593 160000 --- a/crt/s2n +++ b/crt/s2n @@ -1 +1 @@ -Subproject commit a71ea1f9764ee9ae91b47c34faa0447c4fe11d0a +Subproject commit e82d625935141ea0eb73c9b54c29682a2ebcf0d4 From 42b6713a12fa4ac44c572d3003a9ce0f2c27316a Mon Sep 17 00:00:00 2001 From: DmitriyMusatkin Date: Fri, 3 Apr 2026 12:55:25 -0700 Subject: [PATCH 6/8] remove bad merge --- setup.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/setup.py b/setup.py index bd83bdcd0..c71b7db08 100644 --- a/setup.py +++ b/setup.py @@ -451,7 +451,6 @@ def awscrt_ext(): extra_objects = [] define_macros = [] py_limited_api = False - has_gil = True libraries = [x.libname for x in AWS_LIBS] @@ -538,9 +537,6 @@ def awscrt_ext(): else: extra_link_args += ['-Wl,--fatal-warnings'] - if hasattr(sys, '_is_gil_enabled'): - has_gil = sys._is_gil_enabled() - # prefer building with stable ABI, so a wheel can work with multiple major versions if FREE_THREADED_BUILD and sys.version_info[:2] <= (3, 14): # 3.14 free threaded (aka no gil) does not support limited api. From ee1074681cded8ccd260b0fd258e50fb11c133b6 Mon Sep 17 00:00:00 2001 From: DmitriyMusatkin Date: Fri, 3 Apr 2026 12:56:17 -0700 Subject: [PATCH 7/8] still needed --- codebuild/linux-integration-tests.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/codebuild/linux-integration-tests.yml b/codebuild/linux-integration-tests.yml index 251acaa50..b5c9aa1ce 100644 --- a/codebuild/linux-integration-tests.yml +++ b/codebuild/linux-integration-tests.yml @@ -11,7 +11,6 @@ env: phases: install: commands: - - add-apt-repository ppa:ubuntu-toolchain-r/test - apt-get update -y - apt-get install gcc-7 cmake ninja-build python3 python3-pip python3-venv -y pre_build: From 679cac87d1befcc9cced7fd7f7ac6049cb681c98 Mon Sep 17 00:00:00 2001 From: DmitriyMusatkin Date: Fri, 3 Apr 2026 13:17:41 -0700 Subject: [PATCH 8/8] remove ubuntu ppa --- codebuild/mqtt5-python-canary-test.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/codebuild/mqtt5-python-canary-test.yml b/codebuild/mqtt5-python-canary-test.yml index 05faf1ac7..b74833931 100644 --- a/codebuild/mqtt5-python-canary-test.yml +++ b/codebuild/mqtt5-python-canary-test.yml @@ -16,7 +16,6 @@ env: phases: install: commands: - - add-apt-repository ppa:ubuntu-toolchain-r/test - apt-get update -y - apt-get install gcc-7 cmake ninja-build python3 -y - python3 -m pip install psutil