[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#956183: transition: libwmf



On Sat, 25 Apr 2020 at 14:27:33 +0200, Emilio Pozuelo Monfort wrote:
> On 08/04/2020 07:02, Yangfl wrote:
> > libwmf is released with package split, and old-style config script
> > dropped with pkg-config file introduced.
>
> It would be good to disentangle the package split (which due to the Breaks will
> mean we need a lockstep transition with all or most packages migrating at the
> same time) from the libwmf-config removal.

I don't understand why this package split needs to be a disruptive
transition at all. The old libwmf0.2-7 package contains the same
SONAMEs as the combination of the new libwmf-0.2-7 and libwmflite-0.2-7
packages (see transcript below). If the new library is genuinely
compatible with the old library, then I think a better way to do this
would be to introduce an empty, transitional package with the old name
libwmf0.2-7. This shouldn't require going through the NEW queue again,
because libwmf0.2-7 still exists in unstable.

Something like this should work:

    Package: libwmflite-0.2-7
    Breaks: libwmf0.2-7 (<< 0.2.12-1)
    Replaces: libwmf0.2-7 (<< 0.2.12-1)

    Package: libwmf-0.2-7
    Breaks: libwmf0.2-7 (<< 0.2.12-1)
    Replaces: libwmf0.2-7 (<< 0.2.12-1)

    Package: libwmf0.2-7
    Architecture: any
    Section: oldlibs
    Depends: libwmf-0.2-7 (>= ${binary:Version}),
             libwmflite-0.2-7 (>= ${binary:Version})
    Description: Windows metafile conversion library - transitional package
     This transitional package depends on split packages that provide the
     same functionality, to provide smooth upgrades from Debian 10. It can
     be removed when no other packages depend on it.

After that, upgrading libwmf0.2-7 will automatically pull in the new
libwmf-0.2-7 and libwmflite-0.2-7. Dependent packages like gimp and
abiword should continue to work, without needing to be recompiled at all
(please test that). The next time dependent packages like gimp happen to
be recompiled for some other reason, they will change their dependency
to the new packages.

The transitional libwmf0.2-7 package should be kept until it has been in
at least one stable release (presumably Debian 11), after which it can be
removed. In addition to avoiding disruption in unstable, transitional
packages help apt to make the right decisions when users upgrade from
Debian 10 to Debian 11.

(If the new libraries are *not* compatible with the old libraries of the
same name, then none of that applies, and this has to be a lockstep
upgrade - but I'm hoping that's not the case.)

On Mon, 27 Apr 2020 at 20:40:46 +0800, Yangfl wrote:
> Cannot get sbuild working with abiword :/
>   sbuild-build-depends-main-dummy : Depends: libwv-dev but it is not
> going to be installed

I suspect this is because you were trying to compile abiword using the
new libwmf-dev, but with an old libwv-dev that depends on the old
libwmf0.2-7 library. You would need to recompile libwv-dev first, and
then use the new libwv-dev to build abiword.

However, if you can use a transitional package as I suggest above,
then this should stop being a problem.

    smcv

% apt-get download libwmf0.2-7
Get:1 http://deb.debian.org/debian bullseye/main amd64 libwmf0.2-7 amd64 0.2.8.4-17 [165 kB]
% apt-get download libwmflite-0.2-7=0.2.12-2
Get:1 http://deb.debian.org/debian experimental/main amd64 libwmflite-0.2-7 amd64 0.2.12-2 [78.2 kB]
% apt-get download libwmf-0.2-7=0.2.12-2
Get:1 http://deb.debian.org/debian experimental/main amd64 libwmf-0.2-7 amd64 0.2.12-2 [121 kB]
% dpkg-deb -x libwmf0.2-7_0.2.8.4-17_amd64.deb libwmf-old
% dpkg-deb -x libwmf-0.2-7_0.2.12-2_amd64.deb libwmf-new
% dpkg-deb -x libwmflite-0.2-7_0.2.12-2_amd64.deb libwmf-new
% diff -ru libwmf-old libwmf-new
Binary files libwmf-old/usr/lib/x86_64-linux-gnu/libwmf-0.2.so.7 and libwmf-new/usr/lib/x86_64-linux-gnu/libwmf-0.2.so.7 differ
Only in libwmf-old/usr/lib/x86_64-linux-gnu: libwmf-0.2.so.7.1.0
Only in libwmf-new/usr/lib/x86_64-linux-gnu: libwmf-0.2.so.7.1.4
Binary files libwmf-old/usr/lib/x86_64-linux-gnu/libwmflite-0.2.so.7 and libwmf-new/usr/lib/x86_64-linux-gnu/libwmflite-0.2.so.7 differ
Only in libwmf-old/usr/lib/x86_64-linux-gnu: libwmflite-0.2.so.7.0.1
Only in libwmf-new/usr/lib/x86_64-linux-gnu: libwmflite-0.2.so.7.0.5
Only in libwmf-new/usr/share/doc: libwmf-0.2-7
Only in libwmf-old/usr/share/doc: libwmf0.2-7
Only in libwmf-new/usr/share/doc: libwmflite-0.2-7
Only in libwmf-new/usr/share/lintian/overrides: libwmf-0.2-7
Only in libwmf-old/usr/share/lintian/overrides: libwmf0.2-7


Reply to: