Control: found -1 xfonts-traditional/1.6 Control: notfound -1 xfonts-traditional/1.7.1
Andreas Beckmann writes ("Bug#774844: xfonts-traditional: fails to upgrade from 'wheezy': Can't locate File/Find.pm in @INC"): > Package: xfonts-traditional > Version: 1.7.1 Thanks for the report. This is definitely a bad bug which must be fixed for jessie. > At the point where the error occurs we have these packages > installed/unpacked: > dpkg: wheezy > perl-base: wheezy (no File/Find.pm, yet) > perl-modules: jessie (no File/Find.pm any longer) > xfonts-traditional: wheezy > > i.e. the triggers from xfonts-traditional/wheezy are run by dpkg/wheezy. > What triggered them btw? I think that the target package for this bug is perhaps wrong. (That is, that the change will have to be made to a different package.) Certainly the version is wrong: at the point where this bug occurs, xfonts-traditional_1.7.1_all.deb has not even been touched. > Since File/Find.pm moved to perl-base, [...] I think that the current dependency structure would permit: * Start with wheezy, without xfonts-traditional * Unpack perl-modules from jessie but do not configure it * Install xfonts-traditional But xfonts-traditional depends on `perl', not `perl-modules' or `perl-base'. And `perl' is not deconfigured merely because one of its dependencies goes from configured to unpacked. So at this point xfonts-traditional's postinst will run but the actual purpose of its dependency on `perl' is not fully satisfied. The postinst will fail. This arises from the fact that in dpkg the `dependencies are configured when postinst is run' requirement is not transitive: it doesn't apply to the dependencies of one's dependencies. AFAICT xfonts-traditional's use of dependencies conforms to the recommendation in the perl policy: https://www.debian.org/doc/packaging-manuals/perl-policy/ch-programs.html If my scenario above is correct, this problem is not confined to packages involving triggers, nor necessarily to xfonts-traditional. Rather the problem is that the policy implies that most packages will depend on just `perl', but `perl' can be `installed' despite some of the functionality it is supposed to provide (File/Find.pm in this case) being missing. I think the right fix therefore has to be in the Perl packages. Here is a suggestion: have perl-modules (jessie) declare a Breaks on perl (wheezy). That declares it necessary to deconfigure perl (wheezy) to install perl-modules (jessie). perl (wheezy) cannot be re-configured until perl-modules (which it depends on) is re-configured, but perl-modules (jessie) depends on perl-base (jessie) so apt and dpkg will have to unpack and configure perl-base (jessie) first. Thus it will not be possible for `perl' to be `installed' while File/Find.pm is absent. And xfonts-traditional's (or some other client package)'s postinst won't run until `perl' is `installed' again. > Since File/Find.pm moved to perl-base, maybe the Depends: perl can be > changed to Depends: perl-base (>= 5.20.1-3~) > and perl-modules could add a Breaks: xfonts-traditional (<= 1.7.1) But, firstly, that's not an entirely accurate description of xfonts-traditional dependencies. The package does in fact work with older perls. And, this approach suggests that perl-modules should grow a Breaks for every package in the archive which uses File::Find, which doesn't seem like a very good approach. Regards, Ian. -- To UNSUBSCRIBE, email to debian-bugs-rc-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org