[xml/sgml-pkgs] Bug#482140: etch -> lenny upgrade fails, because @INC does not contain 5.10 paths

Niko Tyni ntyni at debian.org
Wed Oct 8 07:17:39 UTC 2008

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'
gets run.

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
    to remove
  * 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   ntyni at debian.org

More information about the debian-xml-sgml-pkgs mailing list