Package: src:python-botocore
Version: 1.40.72+repack-1
User: [email protected]
Usertags: python3.15
Tags: patch

Hi!

While rebuilding the python related packages against the python version
3.15rc1 we found that python-botocore fails to build from source[1].

Upstream support for python 3.15 was added in the release 1.42.49, with
the commit Start testing Python 3.15 Alpha (#3628) [2], we backported
the relevant parts of the upstream fixes to the version currently in
debian and applied that patch in our sandbox to allow other packages to
build. I'm attaching the resulting patch.

Please consider including this patch in your next upload or to upload
the new upstream release.

Happy hacking,

[1]: 
https://debusine.debian.net/debian/r-python-python3.15/work-request/1078834/
[2]: 
https://github.com/boto/botocore/commit/2c238cfebcb8d9151df52d7715c5c229b10f42bf
--
"Can you imagine what I would do if I could do all I can?" -- Sun Tzu
Saludos /\/\ /\ >< `/
commit 2c238cfebcb8d9151df52d7715c5c229b10f42bf
Author: jonathan343 <[email protected]>
Date:   Thu Feb 12 19:55:58 2026 -0500

    Start testing Python 3.15 Alpha (#3628)
    
    Add Python 3.15-dev to the GitHub Actions matrices for run-tests and run-crt-test to catch compatibility issues early without claiming official support.
    
    Set PYO3_USE_ABI3_FORWARD_COMPATIBILITY=1 only for the 3.15-dev matrix jobs to avoid prerelease install failures from PyO3-based dependencies.
    
    Update tests/unit/test_compress.py test helpers to pin compresslevel=9 (with mtime fixed) so gzip byte-for-byte fixtures stay stable across Python versions, including 3.15.

diff --git a/tests/unit/test_compress.py b/tests/unit/test_compress.py
index c149d7c6b..8a4b9f626 100644
--- a/tests/unit/test_compress.py
+++ b/tests/unit/test_compress.py
@@ -107,11 +107,17 @@ def request_dict_non_seekable_bytes_stream():
 class StaticGzipFile(gzip.GzipFile):
     def __init__(self, *args, **kwargs):
         kwargs['mtime'] = 1
+        # Python 3.15 changed default gzip header output; pin level so these
+        # tests remain byte-stable across runtimes.
+        kwargs['compresslevel'] = 9
         super().__init__(*args, **kwargs)
 
 
 def static_compress(*args, **kwargs):
     kwargs['mtime'] = 1
+    # Python 3.15 changed default gzip header output; pin level so these
+    # tests remain byte-stable across runtimes.
+    kwargs['compresslevel'] = 9
     return gzip.compress(*args, **kwargs)
 
 

Reply via email to