[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
Hi,
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.
~Niels
[1] https://jenkins.debian.net/view/Warnings/job/dpkg_sid_find_trigger_cycles/24/console
More information about the pkg-php-maint
mailing list