#1145418 python3.14: does not ship libpython3.so (stable ABI library)

Package:
python3.14
Source:
python3.14
Description:
Interactive high-level object-oriented language (version 3.14)
Submitter:
Patryk Sondej
Date:
2026-08-26 09:55:01 UTC
Severity:
normal
#1145418#5
Date:
2026-08-24 19:47:53 UTC
From:
To:
Debian does not ship /usr/lib/<triplet>/libpython3.so, the unversioned
stable
ABI library that lets Py_LIMITED_API code link with -lpython3 and survive a
minor version bump. Same in trixie (python3.13 3.13.5-2+deb13u4).

debian/rules:891 runs "make install" from $(buildd_static), which has no
--enable-shared, so PY3LIBRARY is empty there. The shared tree does build
the
file, but only libpython3.14.so.1.0 (rules:961) and libpython3.14-pic.a
(rules:1069) are copied out of it. I am not suggesting with_interp be
changed.

The unversioned pkg-config files are already handled this way:
libpython3-dev
(python3-defaults) ships python3.pc and python3-embed.pc as symlinks to the
versioned ones. libpython3.so has no equivalent.

Fedora, Arch, Alpine, openSUSE and nixpkgs all ship it.

Suggested fix, mirroring pkg-config: python3.X installs the stub under a
versioned path, python3-defaults symlinks /usr/lib/<triplet>/libpython3.so
to
the default version's copy. It has to point at the stub, not at
libpython3.14.so.1.0, whose SONAME would pin the version in DT_NEEDED.

#1145418#10
Date:
2026-08-25 07:11:34 UTC
From:
To:
Hi Patryk (2026.08.24_19:47:53_+0000)

That's a good point, I'll look into it, thanks.

I wasn't aware of the existance of this interface.

Stefano

#1145418#15
Date:
2026-08-26 09:54:20 UTC
From:
To:
no, we can't ship that file in this place, because we need to be able to
build for different Python versions.

So what exactly fails? And why can't you determine the correct location
with the python3-config command?