Bug#648954: [patch] doc-base Conflicts are insufficient

Niko Tyni ntyni at debian.org
Fri Dec 16 14:31:51 UTC 2011


On Fri, Dec 16, 2011 at 12:35:49PM +0100, Martin Pitt wrote:

> we still got quite a lot of upgrade failures with -6
> (https://launchpad.net/bugs/902553).
> 
> -6 adds a Conflicts: doc-base (<< 0.10.3) to perl-base. This correctly
> prevents unpacking of perl-base 5.14 and breaking the doc-base
> trigger. However, in above LP bug we see

> Processing triggers for doc-base ...
> /usr/bin/perl: symbol lookup error: /usr/lib/perl5/auto/UUID/UUID.so: undefined symbol: Perl_xs_apiversion_bootcheck
> dpkg: error processing doc-base (--unpack):
>  subprocess installed post-installation script returned error exit status 127
> 
> At this point neither doc-base nor perl-base was unpacked (which is
> what -5 and -6 fixed). Full logs are in the LP bug and its duplicates,
> but above is the gist of it.

> debian/control: Add doc-base conflict also to perl, perl-modules, and
>                 libperl5.14.

I don't think that guarantees a fix? The above error happens when
libuuid-perl is upgraded before perl-base and doc-base. The perl and
perl-modules packages don't necessarily come into it at all. This can
be reproduced in a minimal squeeze chroot with just

 apt-get install doc-base libyaml-tiny-perl
 dpkg -i doc-base_0.10.2_all.deb # from snapshot.debian.org or Ubuntu Oneiric
 dpkg --unpack libuuid-perl_0.02-4+b2_amd64.deb # the 5.14 build from wheezy/sid
 dpkg --unpack recode-doc_3.6-17_all.deb # or anything with data in /usr/share/doc-base

No conflicts in perl-modules and perl can definitely prevent that,
althought it's possible that they would make higher level package managers
pick the right upgrade order as a side effect.

As a matter of fact, unpacking the 5.14 versions of perl and perl-modules
alone doesn't break the trigger because the incompatible binary Perl
modules are in a versioned path (/usr/lib/perl/5.1*).

It therefore seems to me that this should to be "fixed" in libuuid-perl
rather than in perl. Fortunately it looks like that's the only XS module
affected: tracing an 'install-docs --install-all' run shows it only uses
Locale::Gettext and UUID from /usr/lib/perl5, and liblocale-gettext-perl
already Pre-Depends: perl-base (>= 5.14.2-3) so it can't be upgraded
before perl-base.

BTW, I don't think this qualifies as release critical for Debian, as the
problematic trigger was only introduced in doc-base 0.10.0, and squeeze
has 0.9.5.

I'm not sure if the "right" change for libuuid-perl is a conflict or a
pre-dependency, and I'm not quite sure it even needs to go in Debian
(as opposed to being a Ubuntu specific fix.) Will need to think about
that a bit.

Cc'ing the libuuid-perl maintainers. If others agree with the above
analysis, this should probably be cloned there and the original perl
bug should be closed again.
-- 
Niko Tyni   ntyni at debian.org



More information about the pkg-perl-maintainers mailing list