Bug#1136641: debian-policy: do not require shared libraries to change package name with soname changes

Ansgar 🙀 <[email protected]> Thu, 14 May 2026 12:09:31 +0200
Newsgroups gmane.linux.debian.devel.policy
Message-ID <b11f8fc4d21a60f78cb651f0e433054af66e2e7e.camel__31142.9500275821$1778753495$gmane$org@debian.org>
Hi,

On Thu, 2026-05-14 at 11:47 +0200, Bill Allombert wrote:
> On Thu, May 14, 2026 at 10:46:59AM +0200, Ansgar wrote:
> > 1. It is not needed to change package names for this. One can also use
> > "Provides: <something-that-changes-with-soname>" and have packages
> > depend on that.
> 
> Provides: would not work.
> 
> Policy need to ensure that users can safely build binaries using the libxxx-dev packages installed by Debian
> and create programs dynamically linked with the shared library package they depend on, and still allow them
> to upgrade their system from oldstable to stable without causing such shared library to be replaced by 
> libraries with incompatible soname and causing users compiled binaries to break.
> 
> This requires coinstability of libxxx.so.n and libxxx.so.m.
> Provides does not permit this.

Then Policy would need to forbid *any* Breaks/Conflicts against libX
packages that are no longer shipped by Debian. We do not do that in
practice and I often see libX removed due to Breaks/Conflicts.

In fact, we even break ABI without changing soname, breaking self-
compilied binaries. See for example the C++ ABI transition: many
libraries changed ABI without changing SONAME. This was repeated with
the t64 transition, another large-scale ABI change without SONAME
change.

Provides is less breakage than current practice allows.

Ansgar