Bug#657940: perl: upgrade problem if defoma-app is called from a maintainer-script in the middle of the perl upgrade

Niko Tyni ntyni at debian.org
Sun Feb 5 11:38:39 UTC 2012


On Sun, Feb 05, 2012 at 12:25:16AM +0100, Andreas Beckmann wrote:
> On 2012-01-30 20:11, Niko Tyni wrote:
> > As it looks like defoma is finally fixed now (see #494106), I think we'd
> > be fine if the wheezy perl-base had a Conflicts: defoma (<< 0.11.12).
> > I don't think a Breaks: entry would be enough.
> 
> I just tried it and added
>   perl-modules: Breaks: defoma (<< 0.11.12)
> and rebuilt this as 5.14.2-7.1 and tested it - this is already
> sufficient to get a working upgrade path:

Thanks for the testing. While I'm glad it works for your case, and indeed
probably for the majority of cases, I'm afraid it isn't quite sufficient.

As long as the package relationships allow something like

 # (start with a clean squeeze chroot)
 apt-get -y install libwmf0.2-7 devscripts
 sed -i s/squeeze/wheezy/ /etc/apt/sources.list
 apt-get update
 dget perl-base libwmf0.2-7 multiarch-support
 dpkg -i multiarch-support_2.13-24_amd64.deb
 dpkg --unpack perl-base_5.14.2-6_amd64.deb libwmf0.2-7_0.2.8.4-10_amd64.deb

to fail with either perl-base or perl-modules, we can't be sure that some
combination of higher level package managers (apt,aptitude,cupt,etc.) and
installed packages will not trigger this.

Therefore, it looks like both perl-base and perl-modules need to
Conflict with defoma (<< 0.11.12). I don't think a Breaks entry is
enough to prevent the above.

> "Fixing" perl, we could fix all possible defoma related errors at one
> point and get a less noisy upgrade path because there will be no more
> perl errors "Can't locate File/Copy.pm ..." caused by defoma.

I'm OK with adding the Conflicts, as long as they don't cause any problems
for "normal" upgrade paths.

> A short grep listed about 20 packages that passed the squeeze2wheezy
> test, but have some 'Can't locate' error message in the logfile. At a
> first glance I've seen 2 with defoma-app, the other have
> 
> Can't locate File/Basename.pm in @INC (@INC contains: /etc/perl
> /usr/local/lib/perl/5.10.1 /usr/local/share/perl/5.10.1 /usr/lib/perl5
> /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10
> /usr/local/lib/site_perl .) at /usr/share/perl5/XML/SAX.pm line 15.
> 
> But that seems to be something completely different.

Hm, yes. It's probably /usr/bin/update-perl-sax-parsers being called from
a preinst script. I can't easily find the failing combination, though.
Please file a separate bug against libxml-sax-perl with more details.
-- 
Niko Tyni   ntyni at debian.org







More information about the Perl-maintainers mailing list