Package: src:scikit-build-core
Version: 0.11.6-4
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 scikit-build-core fails to build from source [1].

The error is: AssertionError: assert 'abi3_example...-linux-gnu.so' ==
'abi3_example.abi3.so'

And the fix is to apply the upstream commit e1ee4b1d test: accept new
CPython 3.15rc1 abi3 suffix in abi3 tests (#1529) [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/4671445/
[2]: 
https://github.com/scikit-build/scikit-build-core/commit/e1ee4b1d6057c593ac0b1999e3c929d4910f6e89
[3]: 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: Henry Schreiner <[email protected]>
Date: Sun, 9 Aug 2026 23:06:01 -0400
Subject: test: accept new CPython 3.15rc1 abi3 suffix in abi3 tests (#1529)

CPython 3.15rc1 adds the platform triplet to the abi3 extension
suffix (e.g. abi3-x86_64-linux-gnu.so instead of abi3.so). Match
either form instead of the old literal name.

Assisted-by: ClaudeCode:claude-sonnet-5

Origin: backport, https://github.com/scikit-build/scikit-build-core/commit/e1ee4b1d6057c593ac0b1999e3c929d4910f6e89
Last-Update: 2026-09-10
---
Index: scikit-build-core/tests/test_pyproject_abi3.py
===================================================================
--- scikit-build-core.orig/tests/test_pyproject_abi3.py
+++ scikit-build-core/tests/test_pyproject_abi3.py
@@ -1,3 +1,4 @@
+import re
 import shutil
 import sys
 import sysconfig
@@ -11,6 +12,9 @@ from scikit_build_core.build import buil
 DIR = Path(__file__).parent.resolve()
 ABI_PKG = DIR / "packages/abi3_pyproject_ext"
 SYSCONFIGPLAT = sysconfig.get_platform()
+# CPython 3.15rc1+ appends the platform triplet to the abi3 suffix
+# (e.g. "abi3-x86_64-linux-gnu.so" instead of "abi3.so").
+ABI3_SO_RE = re.compile(r"abi3_example\.abi3(-[\w.-]+)?\.so")
 
 
 @pytest.mark.compile
@@ -59,9 +63,9 @@ def test_abi3_wheel(tmp_path, monkeypatc
         else:
             assert so_file != "abi3_example.abi3.dll"
     elif abi3:
-        assert so_file == "abi3_example.abi3.so"
+        assert ABI3_SO_RE.fullmatch(so_file)
     else:
-        assert so_file != "abi3_example.abi3.so"
+        assert not ABI3_SO_RE.fullmatch(so_file)
 
     virtualenv.install(wheel)
 
Index: scikit-build-core/tests/test_setuptools_abi3.py
===================================================================
--- scikit-build-core.orig/tests/test_setuptools_abi3.py
+++ scikit-build-core/tests/test_setuptools_abi3.py
@@ -1,3 +1,4 @@
+import re
 import shutil
 import sys
 import sysconfig
@@ -13,6 +14,9 @@ pytestmark = pytest.mark.setuptools
 DIR = Path(__file__).parent.resolve()
 ABI_PKG = DIR / "packages/abi3_setuptools_ext"
 SYSCONFIGPLAT = sysconfig.get_platform()
+# CPython 3.15rc1+ appends the platform triplet to the abi3 suffix
+# (e.g. "abi3-x86_64-linux-gnu.so" instead of "abi3.so").
+ABI3_SO_RE = re.compile(r"abi3_example\.abi3(-[\w.-]+)?\.so")
 
 
 @pytest.mark.compile
@@ -56,7 +60,7 @@ def test_abi3_wheel(tmp_path, monkeypatc
     elif sys.platform.startswith("cygwin"):
         assert "abi3_example.abi3.dll" in file_names
     else:
-        assert "abi3_example.abi3.so" in file_names
+        assert any(ABI3_SO_RE.fullmatch(name) for name in file_names)
 
     virtualenv.install(wheel)
 

Reply via email to