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

Reply via email to