Hi Ondřej! Ondřej Surý <ond...@debian.org> 于2018年10月16日周二 上午1:36写道: > Package: libtidy5.6
I admit the introduction of libtidy5.6 was a lack of thorough consideration. However, this package has already been introduced into Unstable and formed a (not-very-)interesting scenario. I'll explain what is going on right now. > when symbols in the library change, you need to actually bump the > SOVERSION/SONAME of the package. It's not enough and it's wrong > to just change the package name for several reasons: I realized that upstream was removing some APIs when preparing v5.6.0. Some symbols besides those started with "prv" (which stands for "private") disappeared. In theory upstream should have bumped the SONAME, but they didn't. BTW, none of other linux distributions ever bothered with it; they just packaged the new version; if there's any more doubts after that, an archive-wise global rebuild was enough to them. > 1. The old and new package must declare Conflicts/Replaces among themselves Hear's the thing: libtidy5 1:5.2.0-2 and libtidy5.6 1:5.7.16-0.1 are currently co-installable. You may try it out. The reason is that new library adopted CMake GNUinstalldirs module (...added by me as a Debian-specific patch) so that libtidy5 was shipping /usr/lib/libtidy.so.5 and libtidy5.6 was shipping /usr/lib/x86_64-linux-gnu/libtidy.so.5 . That is a mess, though the dynamic library loader seems to prefer the one with triplet. > 2. It's impossible to do proper transition (due to 1) Indeed. But we can add Breaks: to libtidy5 from libtidy5.6 to force removal of libtidy5. > 3. It will break non-packaged software As long as the non-packaged software was not built against libtidy >= 5.6 and was using some removed symbols. > So, instead of having libtidy5.6 package that contains libtidy.so.5, > you will need to bump the SOVERSION to 6 (it would be best to > coordinate with upstream) and the package would be named libtidy6. > (The naming convention is lib<name><soversion>). It might be better if we forward the issue upstream, say opening a GitHub issue. Oh I found your issue: https://github.com/htacg/tidy-html5/issues/743 > I could help with that if you want, but the current approach is wrong, > it will break things and it needs to be fixed before transition is > started. Let's see how upstream would response after the poke. If it is still being ignored, I'm not sure if we really want to bump the soname by ourselves; after all it will break cross-distribution binary compatibility and that no other non-deb-based distributions are standing on the old libtidy << 5.6 . -- Regards, Boyuan Yang