[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#787103: Deferring postinst actions fails when triggers are in use



Package: apache2
Version: 2.4.12-2
Tags: patch
User: ubuntu-devel@lists.ubuntu.com
Usertags: origin-ubuntu wily ubuntu-patch

This is related to Debian bug 745834. The fix there failed to work on
Ubuntu because our ufw delta introduces the use of triggers, which the
logic that tests if apache2 is configured fails to detect. I believe the
bug also exists in Debian even though it isn't triggered (pun not intended)
right now.

Colin Watson fixed this in an Ubuntu upload in the following patch. His
explanation is in
https://bugs.launchpad.net/ubuntu/+source/apache2/+bug/1393832/comments/2.

apache2 (2.4.10-8ubuntu2) vivid; urgency=medium

  * Allow "triggers-awaited" and "triggers-pending" states in addition to
    "installed" when determining whether to defer actions or process
    deferred actions (LP: #1393832).

 -- Colin Watson <cjwatson@ubuntu.com> Wed, 26 Nov 2014 11:31:44 +0000

Please also apply this in Debian.

diff -Nru apache2-2.4.12/debian/apache2.postinst apache2-2.4.12/debian/apache2.postinst
--- apache2-2.4.12/debian/apache2.postinst	2015-05-10 20:51:59.000000000 +0000
+++ apache2-2.4.12/debian/apache2.postinst	2015-05-28 13:40:53.000000000 +0000
@@ -419,7 +419,7 @@
 	cat /var/lib/apache2/deferred_actions |
 	while read PACKAGE FUNCTION ARG1 ARG2 ARG3
 	do
-		if ! dpkg-query -f '${Status}' -W "$PACKAGE"|grep -q installed ; then
+		if ! dpkg-query -f '${Status}' -W "$PACKAGE"|egrep -q 'installed|triggers-awaited|triggers-pending' ; then
 			# If the package has been removed again, skip the actions
 			continue
 		fi
diff -Nru apache2-2.4.12/debian/debhelper/apache2-maintscript-helper apache2-2.4.12/debian/debhelper/apache2-maintscript-helper
--- apache2-2.4.12/debian/debhelper/apache2-maintscript-helper	2015-04-28 20:09:06.000000000 +0000
+++ apache2-2.4.12/debian/debhelper/apache2-maintscript-helper	2015-05-28 13:40:53.000000000 +0000
@@ -76,7 +76,7 @@
 	fi
 
 	APACHE2_MAINTSCRIPT_DEFER=
-	if ! dpkg-query -f '${Status}' -W apache2|grep -q installed; then
+	if ! dpkg-query -f '${Status}' -W apache2|egrep -q 'installed|triggers-awaited|triggers-pending'; then
 		echo "Package apache2 is not configured yet. Will defer actions by package $DPKG_MAINTSCRIPT_PACKAGE."
 		APACHE2_MAINTSCRIPT_DEFER=/var/lib/apache2/deferred_actions
 	fi

Attachment: signature.asc
Description: Digital signature


Reply to: