Re: etch -> lenny upgrade fails, because @INC does not contain 5.10 paths
On Tue, Oct 07, 2008 at 05:51:20PM +0200, Daniel Leidert wrote:
> Examining bug #482140 I found, that update-xmlcatalog fails during
> dist-upgrade from Etch to Lenny with an Error, that Functions.pm cannot
> be found in @INC (the same goes for defoma-app, IIRC there Copy.pm was
> not found). The paths in @INC were only the generic paths and the 5.8
> paths, but the 5.10 paths were missing.
First, please see #495359 for a discussion about the defoma-app case.
It's possible that it needs more attention.
There are no guarantees that package dependencies are in a configured
state at the 'prerm upgrade' phase. Only Essential:yes packages must
be working correctly at that point.
In this case, perl and perl-modules have already been upgraded to 5.10
but they have not been configured yet, and their dependencies (perl-base
5.10, that is) are not satisfied when the docbook-xml 'old-prerm upgrade'
It's unfortunate that the breakage is caused by something as trivial as
File::Spec::Functions, which (AFAICS) update-xmlcatalog only uses for
exporting catfile() from File::Spec, which *is* in perl-base. There's
nothing to be done about the Etch part of this anymore, of course, but
I think this should definitely be fixed in the Lenny update-xmlcatalog.
As for fixing the upgrade issue, the options I can think of are:
- fix update-xmlcatalog in a newer xml-core version as above, then make
the Lenny packages using the script Pre-Depend on the fixed xml-core.
* Somewhat ugly.
* All the packages using update-xmlcatalog have to be modified.
- move/add upgrade functionality from 'prerm upgrade' into
'postinst configure <old-version>'.
* If I understand this correctly, new versions of each package would have
to know the catalog information from previous versions so they know what
* The maintainer scripts are actually generated by dh_installxmlcatalogs
from xml-core; this probably doesn't fit its interface
* Again, all the packages using update-xmlcatalog have to be modified.
The first option looks by far the simpler one.
Making the Lenny xml-core pre-depend on a newer perl doesn't help,
because the upgrade is (or at least can be) done when the old xml-core
is still installed.
I can find 11 source packages in Etch/main using dh_installxmlcatalogs:
13 packages build-depend on xml-core, but two of them (ddccontrol and
pilot-qof) are false positives. The remaining ones are
Niko Tyni email@example.com