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