[From nobody Mon Sep 14 08:35:06 2026
Received: (at submit) by bugs.debian.org; 12 Sep 2026 10:02:47 +0000
X-Spam-Checker-Version: SpamAssassin 4.0.1-bugs.debian.org_2005_01_02
 (2024-03-25) on buxtehude.debian.org
X-Spam-Level: 
X-Spam-Status: No, score=-118.1 required=4.0 tests=ALL_TRUSTED,BAYES_00,
 BODY_INCLUDES_PACKAGE,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,
 DKIM_VALID_AU,DKIM_VALID_EF,FOURLA,FROMDEVELOPER,GMAIL,HAS_PACKAGE,
 MD5_SHA1_SUM,SPF_HELO_NONE,SPF_PASS,USER_IN_DKIM_WELCOMELIST
 autolearn=ham autolearn_force=no
 version=4.0.1-bugs.debian.org_2005_01_02
X-Spam-Bayes: score:0.0000 Tokens: new, 44; hammy, 150; neutral, 182; spammy,
 0. spammytokens:
 hammytokens:0.000-+--Hx-spam-relays-external:sk:stravin,
 0.000-+--H*RT:sk:stravin, 0.000-+--Hx-spam-relays-external:311,
 0.000-+--H*RT:311, 0.000-+--H*RT:108
Return-path: &lt;maxy@debian.org&gt;
Received: from stravinsky.debian.org ([2001:41b8:202:deb::311:108]:60148)
 by buxtehude.debian.org with esmtps
 (TLS1.3:ECDHE_SECP256R1__RSA_PSS_RSAE_SHA256__AES_256_GCM:256)
 (Exim 4.96) (envelope-from &lt;maxy@debian.org&gt;) id 1x5KZL-00A3Sb-17
 for submit@bugs.debian.org; Sat, 12 Sep 2026 10:02:47 +0000
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=debian.org; 
 s=smtpauto.stravinsky;
 h=X-Debian-User:Content-Type:MIME-Version:Message-ID:
 Subject:To:From:Date:Reply-To:Cc:Content-Transfer-Encoding:Content-ID:
 Content-Description:In-Reply-To:References;
 bh=Ev1/+A5yA1mVsya14xQ5yIHVlDRIKhn6S0IJroMBdaE=; b=qaHD/wHQ4RUiv4nVvncBgQDoAv
 ZnmAvnrtaz7tRketBl7HZayirDxEn8thXc+IYB6tAotL58VNZ/NB6yvLVO+hxzkLubW2ALyIpIvjB
 kbl6vN0Huwei+WkysQvQL0vP9ujtdJJAxzfNdNKom/Na8PDW1eBuA9g/jFq4Fxyl76flQk8uWTDwi
 +ldFT4Tv4wZM6L3CeeEGe0rSWO775h1SSKH/noJP0xj1v9XLmqBUMNgfK2z32L5BeL4z6h6amMDh8
 /DdaOsBUE25ruDwrrGJfC+gApwjcX+/ZWbuKVJTaP6bOcNsWswZSozbnfmy8CSMqrX+eLKN4+51/7
 9LewZ3dQ==;
Received: from authenticated-user by stravinsky.debian.org with esmtpsa
 (TLS1.3:ECDHE_SECP256R1__RSA_PSS_RSAE_SHA256__AES_256_GCM:256)
 (Exim 4.96) (envelope-from &lt;maxy@debian.org&gt;) id 1x5KZI-001zHY-2b
 for submit@bugs.debian.org; Sat, 12 Sep 2026 10:02:45 +0000
Date: Sat, 12 Sep 2026 12:02:37 +0200
From: Maximiliano Curia &lt;maxy@debian.org&gt;
To: submit@bugs.debian.org
Subject: python-loky: FTBFS against python 3.15rc2
Message-ID: &lt;aqUjPR6yhsy_1HQF@hecuba.gnuservers.com.ar&gt;
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary=&quot;ab+iEfirjsz1nEZI&quot;
Content-Disposition: inline
X-Debian-User: maxy
Delivered-To: submit@bugs.debian.org

--ab+iEfirjsz1nEZI
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Disposition: inline

Package: src:python-loky
Version: 3.5.6-1
User: debian-python@lists.debian.org
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 python-loky fails to build from source [1].

Almost all the resource tracker tests fail, and this can be fixed by
applying the upstream resource_tracker fix (5c28e6c) [2].

I've applied the upstream fix in the sandbox [3] 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/4495806/
[2]: https://github.com/joblib/loky/commit/5c28e6c1f6be265f9337630efc1b8349b0360d94
[3]: https://debusine.debian.net/debian/r-python-python3.15/

-- 
&quot;Can you imagine what I would do if I could do all I can?&quot; -- Sun Tzu
Saludos /\/\ /\ &gt;&lt; `/

--ab+iEfirjsz1nEZI
Content-Type: text/x-diff; charset=iso-8859-1
Content-Disposition: attachment;
	filename=py315-resource-tracker-json-protocol.patch
Content-Transfer-Encoding: quoted-printable

=46rom: Lo=EFc Est=E8ve &lt;loic.esteve@ymail.com&gt;
Subject: MNT Vendor CPython resource tracker code for easier maintainabilit=
y (#472)
 Co-authored-by: Eric Larson &lt;larson.eric.d@gmail.com&gt;
 Co-authored-by: Olivier Grisel &lt;olivier.grisel@ensta.org&gt;
Origin: backport, https://github.com/joblib/loky/commit/5c28e6c1f6be265f933=
7630efc1b8349b0360d94
Bug: https://github.com/joblib/loky/pull/472
Index: python-loky/loky/backend/resource_tracker.py
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- python-loky.orig/loky/backend/resource_tracker.py
+++ python-loky/loky/backend/resource_tracker.py
@@ -38,6 +38,8 @@
 # resources once all processes connected to the resource tracker have exit=
ed.
=20
=20
+import base64
+import json
 import os
 import shutil
 import sys
@@ -91,6 +93,30 @@ if os.name =3D=3D &quot;posix&quot;:
 VERBOSE =3D False
=20
=20
+def _decode_message(line):
+    &quot;&quot;&quot;Decode a message sent by a resource tracker client.
+
+    Python 3.15's multiprocessing.resource_tracker._send() always encodes
+    messages as base64-JSON instead of the legacy colon-separated format.
+    &quot;&quot;&quot;
+    if line.startswith(b&quot;{&quot;):
+        obj =3D json.loads(line.decode(&quot;ascii&quot;))
+        cmd, rtype =3D obj[&quot;cmd&quot;], obj[&quot;rtype&quot;]
+        name =3D base64.urlsafe_b64decode(obj.get(&quot;base64_name&quot;, &quot;&quot;)).deco=
de(
+            &quot;utf-8&quot;, &quot;surrogateescape&quot;
+        )
+    else:
+        splitted =3D line.strip().decode(&quot;ascii&quot;).split(&quot;:&quot;)
+        # name can potentially contain separator symbols (for
+        # instance folders on Windows)
+        cmd, name, rtype =3D (
+            splitted[0],
+            &quot;:&quot;.join(splitted[1:-1]),
+            splitted[-1],
+        )
+    return cmd, name, rtype
+
+
 class ResourceTracker(_ResourceTracker):
     &quot;&quot;&quot;Resource tracker with refcounting scheme.
=20
@@ -284,14 +310,7 @@ def main(fd, verbose=3D0):
         with open(fd, &quot;rb&quot;) as f:
             for line in f:
                 try:
-                    splitted =3D line.strip().decode(&quot;ascii&quot;).split(&quot;:&quot;)
-                    # name can potentially contain separator symbols (for
-                    # instance folders on Windows)
-                    cmd, name, rtype =3D (
-                        splitted[0],
-                        &quot;:&quot;.join(splitted[1:-1]),
-                        splitted[-1],
-                    )
+                    cmd, name, rtype =3D _decode_message(line)
=20
                     if rtype not in _CLEANUP_FUNCS:
                         raise ValueError(

--ab+iEfirjsz1nEZI--
]