On 17/08/2024 11:13, Paul Gevers wrote:
Hi,

[Disclaimer: I'm not the most experienced person on transitions in the team, so I'd like for Graham, Emilio and/or Sebastian to check if they agree with me.]

Thanks for working on this.

On 17-08-2024 05:58, Aron Xu wrote:
After some research, I prefer making a t64-like transition for libxml2
for the following reasons:

I'm a bit curious in how far you think this looks like a t64-like transition as apposed to a regular c-library transition. Is it because the libraries will not be co-installable, you don't bump SONAME and just rename the binary package name? Even with all the work that went into the t64 transition, we're starting to see hidden bugs [0] (although I think this can happen with any transition).

  - Upstream is not prepared to bump the SONAME to something like
libxml3. Given the long history of this function library, determining
which APIs should be public and which should be private is
challenging.

That's why earlier I proposed a Debian specific SONAME, "in between" 2 and 3. Upstream (I think) even suggested that [1].

  - The potential for breaking locally built software is minimal.
Although abi-compliance-checker raises many issues, most of them are
not used in the real world.

Isn't the fact that we *caught* an issue in Debian the proof that it's not just academic?

  - This approach is significantly easier and safer.

I'm hesitant because we have well established procedures to handle ABI breakage with SONAME bumps and how to handle them in Debian. Can you elaborate on the easier and safer parts? Because I mostly see risks to deviate from established paths as the corner cases on them are less known.

I feel like the proposed change by Aron is the best course of action. The benefits are that we get everything rebuilt against the new package, effectively avoiding any issues with the ABI breaks inside Debian. And by maintaining the same SONAME as upstream, if a user installs a binary provided by a 3rd-party, then it will just work (assuming it was built for the newer releases or is not affected by the ABI breaks). The drawbacks are that the old and new packages won't be co-installable due to the file conflicts, and so the transition will have to happen in lockstep. It will also make it harder for apt to do the dist-upgrades from bookworm to trixie, which adds up to the t64 and possibly the usr-merge changes.

Obviously there's an even better solution, which is for upstream to revert the ABI break (if possible) or bump the SOVERSION, but unfortunately that seems to be out of the picture.

Cheers,
Emilio

Reply via email to