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
Mon Jan 30 19:11:17 UTC 2012


On Mon, Jan 30, 2012 at 03:35:51AM +0100, Andreas Beckmann wrote:
> Package: perl
> Version: 5.14.2-6

> The problem happens during the upgrade of libwmf0.2-7, the old prerm
> calls defoma app which fails:
 
Oh my, the squeeze defoma-app version was still broken in this regard. It
would have been nice if we'd fixed it when this last broke with Etch ->
Lenny (see #495359). 

>   Preparing to replace libwmf0.2-7 0.2.8.4-6.1+b1 (using .../libwmf0.2-7_0.2.8.4-10_amd64.deb) ...
>   Can't locate File/Copy.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/bin/defoma-app line 7.
>   BEGIN failed--compilation aborted at /usr/bin/defoma-app line 7.
>   dpkg: warning: subprocess old pre-removal script returned error exit status 2
>   dpkg - trying script from the new package instead ...
>   dpkg: error processing /var/cache/apt/archives/libwmf0.2-7_0.2.8.4-10_amd64.deb (--unpack):
>    there is no script in the new version of the package - giving up

> File::Copy gets moved while perl-modules is updated, but the new
> location is not used before perl-base is updated. Inbetween defoma-app
> may not be used.
> 
> While this could be worked around libwmf0.2-7 by adding a dummy postrm,

I think that should be a dummy prerm?

>     <jcristau> anbe: if we can find a fix in perl or defoma instead i think
>         that'd be better
>     <jcristau> rather than finding all packages that might possibly call
>         defoma-app in the middle of the perl upgrade
> 
> So I try assigning this to perl first, perhaps an appropriate
>   Breaks: defoma (<< $squeeze+1)
> or other fix can be added to one of the perl packages.

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.

OTOH, there are only a handful of packages depending on defoma left,
so it might actually be feasible to check them all. For comparison,
quoting myself in 2008 (#495359):

> I have now gone through all the packages in Etch depending on defoma.
> The only one that fails upgrades is gs-common. I found 14 packages whose
> 'old-prerm upgrade' fails, but 'new-prerm failed-upgrade' succeeds.

I doubt the problem is more widespread now.
-- 
Niko Tyni   ntyni at debian.org






More information about the Perl-maintainers mailing list