[php-maint] Bug#774559: php5: dpkg trigger cycle between libapache2-mod-php5{, filter} and php5-common

Niels Thykier niels at thykier.net
Sun Jan 4 12:17:46 UTC 2015

Package: src:php5
Version: 5.6.4+dfsg-1
Severity: serious


The libapache2-mod-php5 and libapache2-mod-php5filter packages have a
trigger cycle via the php5-common package.  This was detected by a
script on jenkins.debian.net[1].

Steps to reproduce the cycle (in a Jessie/sid chroot):

apt-get install libapache2-mod-php5 php5-common
dpkg --unpack /var/cache/apt/archives/php5-common_${PHP5-COMMON_VERSION}_*.deb
dpkg --configure --pending
(Similar for libapache2-mod-php5filter)

This simulates an upgrade scenario, where php5-common might be
temporarily deconfigured while libapache2-mod-php5 (or
libapache2-mod-php5filter) remains configured.  If this happens, dpkg
is unable to recover as the cycle requires php5-common to be
configured for it to run the trigger because the libapache2-mod-php5
(and libapache2-mod-php5filter) depends on php5-common.

Known solutions:

 * Use no-await triggers.  *CAVEAT*: not always applicable.  Known suitable
   use cases includes "cache" handling, where the cache is allowed to be
   out of date tempoarily.
 * Reduce the dependency to Recommends.  *CAVEAT*: Rarely applicable.
 * Rewrite the solution to avoid triggers entirely. *CAVEAT*: May be
   non-trivial and likely to involve updates to at least libapache2-mod-php5
   and libapache2-mod-php5filter.


[1] https://jenkins.debian.net/view/Warnings/job/dpkg_sid_find_trigger_cycles/24/console

More information about the pkg-php-maint mailing list