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