Package: src:mercurial
Version: 7.2.4-1
User: [email protected]
Usertags: python3.15
Tags: patch, ftbfs, forky, sid
Severity: important

Hi!

While rebuilding the python related packages against the Python 3.15rc2 version 
we found that mercurial fails to build from source [1].

The error is:

body: size=503, sha1=2d8ce8bb3816603b9683a1804a5a02c11224cb01 (py39 !)
\+  body: size=503, sha1=37fff6d86b8569f8be21fcdf937a8ec8463251ca
   % zip and tar.gz disallowed should both give 403

This is due to the default compression level of gz changing.

To fix it, I applied the following upstream commits:
- Drop py38 check (test-archive: drop conditionnal outptu for Python3.8) [2]
- Update sha1 for py315 (test-archive: adapt output to Python 3.15)
- Add python versions (test: add more python version to hghave)

I've applied these fixes in the sandbox [5] to verify that it builds 
successfully, please consider applying the patch to support the upcoming 3.15 
version.

Setting the severity to important for now. Once Python 3.15 is released, it 
will be added to python3-defaults and this bug will become release critical.

Happy hacking,

[1]: https://debusine.debian.net/debian/r-python-python3.15/artifact/4719448/
[2]: 
https://foss.heptapod.net/mercurial/mercurial-devel/-/commit/04486a79799e6cccdd499350e3e60bc4f53731fa
[3]: 
https://foss.heptapod.net/mercurial/mercurial-devel/-/commit/8d20ade7899f2fa61ff226f6d72eec560b1d3c20
[4]: 
https://foss.heptapod.net/mercurial/mercurial-devel/-/commit/4261e6bb01e94b686e068695b6d64dc88911f520
[5]: https://debusine.debian.net/debian/r-python-python3.15/

--
"Can you imagine what I would do if I could do all I can?" -- Sun Tzu
Saludos /\/\ /\ >< `/
From: Pierre-Yves David <[email protected]>
Date: Thu, 20 Aug 2026 17:23:43 +0200
Subject: test-archive: drop conditionnal outptu for Python3.8

We drop the matching for Python 3.8 as it is no longer supported for a while.
---
 tests/test-archive.t | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

diff --git a/tests/test-archive.t b/tests/test-archive.t
index d261ec733a..02989dfdd0 100644
--- a/tests/test-archive.t
+++ b/tests/test-archive.t
@@ -131,8 +131,7 @@ check http return codes
   server: testing stub value
   transfer-encoding: chunked
   
-  body: size=506, sha1=70926a04cb8887d0bcccf5380488100a10222def (py38 no-py39 !)
-  body: size=505, sha1=eb823c293bedff0df4070b854e2c5cbb06d6ec62 (py39 !)
+  body: size=505, sha1=eb823c293bedff0df4070b854e2c5cbb06d6ec62
   % tar.bz2 and zip disallowed should both give 403
   403 Archive type not allowed
   content-type: text/html; charset=ascii
@@ -160,8 +159,7 @@ check http return codes
   server: testing stub value
   transfer-encoding: chunked
   
-  body: size=506, sha1=1bd1f8e8d3701704bd4385038bd9c09b81c77f4e (py38 no-py39 !)
-  body: size=503, sha1=2d8ce8bb3816603b9683a1804a5a02c11224cb01 (py39 !)
+  body: size=503, sha1=2d8ce8bb3816603b9683a1804a5a02c11224cb01
   % zip and tar.gz disallowed should both give 403
   403 Archive type not allowed
   content-type: text/html; charset=ascii
@@ -249,8 +247,7 @@ check http return codes (with deprecated option)
   server: testing stub value
   transfer-encoding: chunked
   
-  body: size=506, sha1=1bd1f8e8d3701704bd4385038bd9c09b81c77f4e (py38 no-py39 !)
-  body: size=503, sha1=2d8ce8bb3816603b9683a1804a5a02c11224cb01 (py39 !)
+  body: size=503, sha1=2d8ce8bb3816603b9683a1804a5a02c11224cb01
   % zip and tar.gz disallowed should both give 403
   403 Archive type not allowed
   content-type: text/html; charset=ascii
-- 
2.53.0
From: Pierre-Yves David <[email protected]>
Date: Thu, 20 Aug 2026 16:29:10 +0200
Subject: test-archive: adapt output to Python 3.15

We drop the matching for Python 3.8 as it is no longer supported for a while.
---
 tests/test-archive.t | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/tests/test-archive.t b/tests/test-archive.t
index 02989dfdd0..1beba69d8b 100644
--- a/tests/test-archive.t
+++ b/tests/test-archive.t
@@ -159,7 +159,8 @@ check http return codes
   server: testing stub value
   transfer-encoding: chunked
   
-  body: size=503, sha1=2d8ce8bb3816603b9683a1804a5a02c11224cb01
+  body: size=503, sha1=2d8ce8bb3816603b9683a1804a5a02c11224cb01 (no-py315 !)
+  body: size=503, sha1=37fff6d86b8569f8be21fcdf937a8ec8463251ca (py315 !)
   % zip and tar.gz disallowed should both give 403
   403 Archive type not allowed
   content-type: text/html; charset=ascii
@@ -247,7 +248,8 @@ check http return codes (with deprecated option)
   server: testing stub value
   transfer-encoding: chunked
   
-  body: size=503, sha1=2d8ce8bb3816603b9683a1804a5a02c11224cb01
+  body: size=503, sha1=2d8ce8bb3816603b9683a1804a5a02c11224cb01 (no-py315 !)
+  body: size=503, sha1=37fff6d86b8569f8be21fcdf937a8ec8463251ca (py315 !)
   % zip and tar.gz disallowed should both give 403
   403 Archive type not allowed
   content-type: text/html; charset=ascii
-- 
2.53.0
From: Pierre-Yves David <[email protected]>
Date: Thu, 20 Aug 2026 17:22:03 +0200
Subject: test: add more python version to hghave

We have been missing Python 3.14 and Python 3.15 for a while, lets adds a few in
advance too.
---
 tests/hghave.py | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/tests/hghave.py b/tests/hghave.py
index 5f6c88c3f1..5f5968babd 100644
--- a/tests/hghave.py
+++ b/tests/hghave.py
@@ -911,7 +911,22 @@ def has_demandimport():
 @checkvers(
     "py",
     "Python >= %s",
-    ('3.6', '3.7', '3.8', '3.9', '3.10', '3.11', '3.12', '3.13'),
+    (
+        '3.6',
+        '3.7',
+        '3.8',
+        '3.9',
+        '3.10',
+        '3.11',
+        '3.12',
+        '3.13',
+        '3.14',
+        '3.15',
+        '3.16',
+        '3.17',
+        '3.18',
+        '3.19',
+    ),
 )
 def has_python_range(v):
     major, minor = v.split('.')[0:2]
-- 
2.53.0

Reply via email to