On Tue, Jul 11, 2023 at 04:10:49PM +0200, Pierre Gruet wrote: > I maintain a package that builds a shared library. I uploaded a new upstream > version of it to Debian, with no removed symbols, no ABI change... Fine. Tobias already explained that there was actually an ABI change, but...
> How should we handle such situation in Debian? Quoting Policy 8.1: > > The SONAME and binary package name need not, and indeed normally > should not, change if new interfaces are added but none are removed or > changed, since this will not break binaries linked against the old > shared library. Correct versioning of dependencies on the newer shared > library by binaries that use the new interfaces is handled via the > symbols or shlibs system. > > So my understanding is that no SONAME change and no transition are needed, > although the rdeps indeed have to be rebuilt as their binaries _are_ broken > by the new version of the library. ... I want to add that "the rdeps indeed have to be rebuilt" means, by definition, that an ABI change happened. It's not similar to adding a symbol when the same SONAME may mean different symbol lists but you can say "this binary needs at least this version of the library", it's a true ABI breakage like with removing a symbol, when old binaries only work with the old library, which the quote is about.