Bug#807647: perl/experimental: trigger cycle on upgrades

Niko Tyni ntyni at debian.org
Fri Dec 11 10:00:12 UTC 2015


Package: perl
Version: 5.22.1~rc4-1
Severity: serious
Tags: patch

When spamassassin is installed, upgrading perl et al. from sid/5.20
to experimental/5.22.1~rc4-1 breaks due to a trigger cycle, see below.

I believe perl.postinst should trigger 'perl-major-upgrade' with
'noawait'. Quoting deb-triggers(5):

   The “-noawait” variants should always be favored when possible
   since triggering packages are not put in triggers-awaited state and
   can thus be immediately configured without requiring the processing
   of  the trigger.   If  the  triggering  packages  are dependencies of
   other upgraded packages, it will avoid an early trigger processing
   run and make it possible to run the trigger only once as one of the
   last steps of the upgrade.

It seems sensible that perl configuration shouldn't wait for spamassassin
to recompile its ruleset.

I've tested locally that

--- a/debian/perl.postinst
+++ b/debian/perl.postinst
@@ -21,7 +21,7 @@ then
        [ -n "$2" ] && \
        dpkg --compare-versions "$2" lt 5.21.9
     then
-        dpkg-trigger perl-major-upgrade
+        dpkg-trigger --no-await perl-major-upgrade
     fi
 fi

makes the problem go away.

  Setting up perl (5.22.1~rc4-1) ...
  dpkg: cycle found while processing triggers:
   chain of packages whose triggers are or may be responsible:
    spamassassin -> spamassassin
   packages' pending triggers which are or may be unresolvable:
    sa-compile: perl-major-upgrade
    libc-bin: ldconfig
    spamassassin: perl-major-upgrade
  dpkg: error processing package sa-compile (--configure):
   triggers looping, abandoned
  dpkg: cycle found while processing triggers:
   chain of packages whose triggers are or may be responsible:
    spamassassin -> spamassassin -> spamassassin
   packages' pending triggers which are or may be unresolvable:
    libc-bin: ldconfig
    spamassassin: perl-major-upgrade
  dpkg: error processing package libc-bin (--configure):
   triggers looping, abandoned
  dpkg: cycle found while processing triggers:
   chain of packages whose triggers are or may be responsible:
    spamassassin -> spamassassin -> spamassassin -> spamassassin -> spamassassin -> spamassassin
   packages' pending triggers which are or may be unresolvable:
    spamassassin: perl-major-upgrade
  dpkg: error processing package spamassassin (--configure):
   triggers looping, abandoned
  Setting up libnet-ssleay-perl (1.72-1+b2) ...
  Setting up libhtml-parser-perl (3.71-2+b1) ...
  Setting up libnet-dns-perl (0.81-2+b1) ...
  Setting up libsocket6-perl (0.25-1+b2) ...
  Setting up libnetaddr-ip-perl (4.078+dfsg-1+b1) ...
  Errors were encountered while processing:
   sa-compile
   libc-bin
   spamassassin

-- 
Niko Tyni   ntyni at debian.org




More information about the Perl-maintainers mailing list