Package: src:meson-python
Version: 0.19.0-2
User: [email protected]
Usertags: python3.15
Tags: patch, ftbfs, forky, sid

Hi!

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

The error encountered is: mesonpy.BuildError: The package declares
compatibility with Python limited API but extension module
'extension.abi3-x86_64-linux-gnu.so' is tagged for a specific Python
version.

The issue can be fixed by applying the upstream commit
865aa6138ab5522b3bee540b64d78ca87c4cec2a [2] BUG: adjust regexp to
extract ABI from extension filename

I applied the upstream fix in the sandbox [3] to be able to build the
packages that depend on meson-python, please consider applying the patch
to support the upcoming 3.15 version.

Happy hacking,

[1]: https://debusine.debian.net/debian/r-python-python3.15/artifact/4483856/
[2]: 
https://github.com/mesonbuild/meson-python/commit/865aa6138ab5522b3bee540b64d78ca87c4cec2a
[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: Daniele Nicolodi <[email protected]>
Date: Fri, 7 Aug 2026 21:19:20 +0200
Subject: BUG: adjust regexp to extract ABI from extension filename

Allow stable ABI extension filenames to include a multiarch tuple.

Fixes #875.

(cherry picked from commit 865aa6138ab5522b3bee540b64d78ca87c4cec2a)
---
 mesonpy/__init__.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/mesonpy/__init__.py b/mesonpy/__init__.py
index 2decdcc..b1cff26 100644
--- a/mesonpy/__init__.py
+++ b/mesonpy/__init__.py
@@ -95,7 +95,7 @@ _MESON_REQUIRED_VERSION = '0.63.3' # keep in sync with the version requirement i
 _MESON_ARGS_KEYS = ['dist', 'setup', 'compile', 'install']
 
 _SUFFIXES = importlib.machinery.all_suffixes()
-_EXTENSION_SUFFIX_REGEX = re.compile(r'^[^.]+\.(?:(?P<abi>[^.]+)\.)?(?:so|pyd|dll)$')
+_EXTENSION_SUFFIX_REGEX = re.compile(r'^[^.]+\.(?:(?P<abi>[^.-]+)(?:-[^.]+)?\.)?(?:so|pyd|dll)$')
 assert all(re.match(_EXTENSION_SUFFIX_REGEX, f'foo{x}') for x in importlib.machinery.EXTENSION_SUFFIXES)
 
 # Map Meson installation path placeholders to wheel installation paths.

Reply via email to