[Debian-med-packaging] Bug#729220: pdl: problems upgrading from wheezy due to triggers

Henning Glawe glaweh at debian.org
Mon Dec 15 20:39:26 UTC 2014


On Mon, Dec 15, 2014 at 08:50:07PM +0100, gregor herrmann wrote:
> On Mon, 15 Dec 2014 01:11:05 +0100, Andreas Beckmann wrote:
> 
> > raising the severity again since this is still occurring in the altree
> > package. As it looks, altree removed the dependency on
> > libpdl-stats-perl.
> 
> Ack (on the latter).

actually, libpdl-stats-perl seems not to have been rebuilt for jessie's PDL
version...

> > Maybe the proper fix is in altree (or even perl?) to add a versioned
> > Breaks against the problematic pdl versions.
> 
> This sounds reasonable (mire the altree than the perl option, IMO),
> but before I could play around with it ...

The real problem seems to be my assumption that triggers get only called when
all dependencies have been fulfilled...
wheezy's pdl packages' triggers (in pdl.postinst) call perl scripts, which in
turn use pdl modules.
during the dist-upgrade, perl has been updated to jessie's version, while pdl
is still at wheezy.
perl API and module paths have been changed between wheezy and jessie, so the
perl/pdl scripts used in pdl's triggers (used for updating documentation
indices) fail, as they depend on the availability of PDL matching the
presently installed perl.

> > >>From the attached log:
> > 
> >   Preparing to replace perl 5.14.2-21+deb7u2 (using .../perl_5.20.1-3_amd64.deb) ...
> >   Unpacking replacement perl ...
> >   Preparing to replace altree 1.2.1-1 (using .../altree_1.3.1-2+b1_amd64.deb) ...
> >   Unpacking replacement altree ...
> >   (Reading database ... 9728 files and directories currently installed.)
> >   Removing libpdl-stats-perl ...
> >   Processing triggers for pdl ...
> >   dpkg: error processing pdl (--remove):
> >    subprocess installed post-installation script returned error exit status 2
> >   Errors were encountered while processing:
> >    pdl
> > 
> > The pdl package has not been touched, yet, so it is still the old one
> > from wheezy.
> 
> ... I couldn't reproduce the bug (in 3 tries), rebuilding your scenario
> manually (i.e.: wheezy chroot, install altree, dist-upgrade).
> libpdl-stats-perl gets removed for me, "Processing triggers for pdl"
> never shows up. Excerpts from the dist-upgrade (full log attached):

I could reproduce the issues (via pbuilder/cowbuilder chroot):
- build wheezy chroot (having the default pbuilder deps, i.e. build-essential
  installed)
- install altree (which pulls in pdl)
- replace wheezy by jessie in /etc/apt/sources.list
two upgrade paths run into different errors:
1.  'apt-get dist-upgrade' runs into the above mentioned error

2.a 'apt-get install dpkg apt' (works fine)
2.b 'apt-get dist-upgrade' fails with an apparently unrelated dpkg-trigger
    related issue: 
      (Reading database ... 15387 files and directories currently installed.)
      Preparing to unpack .../libaudit1_1%3a2.4-1+b1_amd64.deb ...
      Unpacking libaudit1:amd64 (1:2.4-1+b1) ...
      dpkg: cycle found while processing triggers:
       chain of packages whose triggers are or may be responsible:
        man-db -> man-db
       packages' pending triggers which are or may be unresolvable:
        man-db: /usr/share/man
      dpkg: error processing package man-db (--configure):
       triggers looping, abandoned
      Setting up libaudit1:amd64 (1:2.4-1+b1) ...
      Errors were encountered while processing:
       man-db
      E: Sub-process /usr/bin/dpkg returned an error code (1)

 
> Preparing to replace pdl 1:2.4.11-4 (using .../pdl_1%3a2.007-3_amd64.deb) ...
> Unpacking replacement pdl ...
> Preparing to replace perl 5.14.2-21+deb7u2 (using .../perl_5.20.1-3_amd64.deb) ...
> Unpacking replacement perl ...
> Removing libpdl-stats-perl ...
> Preparing to replace perl-base 5.14.2-21+deb7u2 (using .../perl-base_5.20.1-3_amd64.deb) ...
> Unpacking replacement perl-base ...
> Setting up perl-base (5.20.1-3) ...
> Preparing to replace perl-modules 5.14.2-21+deb7u2 (using .../perl-modules_5.20.1-3_all.deb) ...
> Unpacking replacement perl-modules ...
> [..]
> Setting up perl-modules (5.20.1-3) ...
> Setting up perl (5.20.1-3) ...
> [..]
> Setting up pdl (1:2.007-3) ...
> 
> So for whatever reason, the order is different for me ...
> 
> No idea what this tells us.

I think it tells us that my assumption (made already in wheezy), that a
trigger gets only called when PDL is usable with the presently installed perl
was wrong.
some facts:
- wheezy-pdl depends on perlapi-5.14.2
- nevertheless pdl's documentation-update trigger gets called, while perl
  has been already been replaced by the jessie version:

  (Reading database ... 15234 files and directories currently installed.)
  [...]
  Unpacking replacement perl-modules ...
  Selecting previously unselected package libdb5.3:amd64.
  Unpacking libdb5.3:amd64 (from .../libdb5.3_5.3.28-6_amd64.deb) ...
  Processing triggers for man-db ...
  Setting up libdb5.3:amd64 (5.3.28-6) ...
  Processing triggers for libc-bin ...
  (Reading database ... 15361 files and directories currently installed.)
  Preparing to replace perl 5.14.2-21+deb7u2 (using .../perl_5.20.1-3_amd64.deb) ...
  Unpacking replacement perl ...
  Preparing to replace altree 1.2.1-1 (using .../altree_1.3.1-2+b1_amd64.deb) ...
  Unpacking replacement altree ...
  Processing triggers for man-db ...
  (Reading database ... 15206 files and directories currently installed.)
  Removing libpdl-stats-perl ...
  Processing triggers for man-db ...
  Processing triggers for pdl ...
  dpkg: error processing pdl (--remove):
   subprocess installed post-installation script returned error exit status 2


Which update path did you take?

-- 
c u
henning



More information about the Debian-med-packaging mailing list