On Fri, Jan 09, 2015 at 09:13:03PM +0200, Niko Tyni wrote: > On Thu, Jan 08, 2015 at 04:12:05PM +0000, Ian Jackson wrote:
> > 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). > Anyway, I guess I'll experiment with the perl-modules+perl-base -> perl > Breaks entries to see how well apt handles such upgrades, as I'm slightly > worried about that. I have some good news and some bad news. The good news is that those Breaks seem to work fine with apt. I've tested upgrading quite a few small chroots with no ill effects, and also successfully upgraded one larger chroot with libapache2-mod-perl2, spamassassin, and request-tracker4 installed. The bad news is that the Breaks only help with the jessie dpkg. They obviously prevent the scenario where xfonts-traditional is newly installed while the new perl-modules is at 'unpacked', as dpkg now refuses to configure the package because perl is deconfigured. However, simple upgrades involving xfonts-traditional still fail as before. It looks like [1] the wheezy dpkg will still run the xfonts-traditional 'postinst triggered' even when its direct dependency perl is deconfigured. I think this is #671711 ("dpkg: runs trigger processing even if depedencies are not satisfied"), fixed between wheezy and jessie. So, even if we add the Breaks in perl-modules+perl-base, it looks like something else is needed. AFAICS either we need to somehow ensure that dpkg is upgraded first, or the xfonts-traditional trigger functionality needs to handle missing modules gracefully. I'd love to hear thoughts on this. Also, my earlier questions still apply: does this imply that all packages with strict versioned dependencies and the like should more or less duplicate that information in Breaks entries ? [1] A test case would be (starting in a minimal wheezy chroot): apt-get install xfonts-traditional # from wheezy # (optionally, switch to jessie and apt-get install the newer dpkg) # (the version of xfonts-traditional seems to have no effect here) dpkg --auto-deconfigure --unpack perl-modules_5.20.1-5_all.deb # jessie + the Breaks dpkg -i xfonts-mona_2.90-7_all.deb # both wheezy/jessie With wheezy dpkg, the last command with -D10000 (trigger debugging) gives Unpacking xfonts-mona (from xfonts-mona_2.90-7_all.deb) ... D010000: trigproc_enqueue_deferred pend=xfonts-traditional:all Setting up xfonts-mona (2.90-7) ... D010000: trigproc_run_deferred D010000: trigproc xfonts-traditional:all D010000: check_triggers_cycle pnow=xfonts-traditional:all Processing triggers for xfonts-traditional ... Generating fonts... Can't locate File/Find.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl .) at /usr/bin/update-xfonts-traditional line 9. and with jessie dpkg just Unpacking xfonts-mona (2.90-7) ... D010000: trigproc_enqueue_deferred pend=xfonts-traditional:all Setting up xfonts-mona (2.90-7) ... D010000: trigproc_run_deferred D010000: trigproc xfonts-traditional:all (The trigger gets run successfully later if perl is upgraded and configured.) -- Niko Tyni nt...@debian.org -- To UNSUBSCRIBE, email to debian-bugs-rc-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org