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

Bug#985390: unblock: squid/4.13-7



Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock

Please unblock package squid

Current version on tesing has two bugs (#984510 and #984880) they both
happen when purging squid after transitioning to squid-openssl or vice
versa.  The first one means loosing the config file and logs (which in the
case of squid can even be proves for crimes), and the second one means the
service is deactivated.

The version in sid, uploaded before hard freeze and with autopkgtests has
just the changes made to fix these two bugs.  The first bug was addressed on
-6 and all we did was not to remove logs and config files on postrm script.
The second one is caused by #984897 on debhelper, but debhelper won't be
updated this late on release cycle, so the fix I've implemented is not what
I'd like, I've added modified debhelper scripts to postrm. 

[ Reason ]
Fixing a couple of nasty bugs discovered late, so that we got hit by hard
freeze and given that squid is a key package, it won't transition
automatically despite the autopkgtests.

[ Impact ]
Loss of config and logs and service deactivated when switching squid flavour
and purging the old one.

[ Tests ]
The changes are a removal of a couple of rm commands (added on -6 version)
and a condition added to two "if" commands on debhelper's scripts so that if
the service still exists it won't get deactivated. The tests were carried to
see that they work as expected when transitioning from one flavour to the
other and then purging the original one.

[ Risks ]
No risks at all with changes applied to -6 as removal of code and what is
affected is trivial, changes done on -7 should be just a build depends on a
newer version of debhelper that would fix #984897 but as that won't happen
on Bullseye, I applied the results of fixing this debhelper bug directly on
the code produced by debhelper instead of writing some new code, I know this
is ugly but it was the option that seemed to pose less risks.

[ Checklist ]
  [X] all changes are documented in the d/changelog
  [X] I reviewed all changes and I approve them
  [X] attach debdiff against the package in testing

[ Other info ]
All changes are on https://salsa.debian.org/squid-team/squid

unblock squid/4.13-7
diff -Nru squid-4.13/debian/changelog squid-4.13/debian/changelog
--- squid-4.13/debian/changelog	2021-02-08 21:35:48.000000000 +0100
+++ squid-4.13/debian/changelog	2021-03-10 09:19:32.000000000 +0100
@@ -1,3 +1,18 @@
+squid (4.13-7) unstable; urgency=medium
+
+  * Add full postrm scripts while we don't solve #984897 on debhelper.
+    Closes: #984880.
+
+ -- Santiago Garcia Mantinan <manty@debian.org>  Wed, 10 Mar 2021 09:19:32 +0100
+
+squid (4.13-6) unstable; urgency=medium
+
+  * Stop removing cache and config file on postrm. Closes: #984510.
+  * Increase debhelper build dependency to 12.8 as we need that from -5.
+  * Add NEWS note on the problem with purge on previous versions.
+
+ -- Santiago Garcia Mantinan <manty@debian.org>  Thu, 04 Mar 2021 14:45:00 +0100
+
 squid (4.13-5) unstable; urgency=high
 
   * Have a deeper look and change all dpkg-buildpackage commands
diff -Nru squid-4.13/debian/control squid-4.13/debian/control
--- squid-4.13/debian/control	2021-02-07 21:58:30.000000000 +0100
+++ squid-4.13/debian/control	2021-03-08 22:32:47.000000000 +0100
@@ -11,7 +11,7 @@
 # The compiler dependencies are relevant for backporting.
 	, g++ (>= 4.9) <!cross> | clang (>= 3.7) <!cross>
 	, gcc (>= 4.9) <!cross> | clang (>= 3.7) <!cross>
-	, debhelper (>=12), dpkg-dev (>= 1.17.11~), lsb-release
+	, debhelper (>=12.8), dpkg-dev (>= 1.17.11~), lsb-release
 	, dh-apparmor
 	, libcppunit-dev
 	, libcap2-dev [linux-any]
diff -Nru squid-4.13/debian/NEWS squid-4.13/debian/NEWS
--- squid-4.13/debian/NEWS	2021-02-07 01:39:45.000000000 +0100
+++ squid-4.13/debian/NEWS	2021-03-08 22:32:47.000000000 +0100
@@ -1,3 +1,12 @@
+squid (4.13-6) unstable; urgency=medium
+
+  If you want to transition from squid to squid-openssl or vice versa you
+  should first make sure you have at least version 4.13-6 of the packages
+  installed or don't purge your packages, as older packages will remove
+  logs and config file on purge.
+
+ -- Santiago Garcia Mantinan <manty@debian.org>  Thu, 04 Mar 2021 15:36:44 +0100
+
 squid (4.13-2) unstable; urgency=high
 
   Starting from this release we ship the old squid package compiled against
diff -Nru squid-4.13/debian/squid-openssl.postrm squid-4.13/debian/squid-openssl.postrm
--- squid-4.13/debian/squid-openssl.postrm	2021-02-05 14:38:22.000000000 +0100
+++ squid-4.13/debian/squid-openssl.postrm	2021-03-10 09:17:36.000000000 +0100
@@ -6,20 +6,12 @@
 	remove)
 		;;
 	purge)
-		echo "Purging logfiles..."
-		rm -rf /var/log/squid
-
-		if [ -f /etc/squid/squid.conf ]; then
-			echo "Removing the config-file .."
-			rm -f /etc/squid/squid.conf
-		fi
-
 		#
 		# We do not remove /var/spool/squid because that might
 		# take a lot of time. Most of the time it is on a seperate
 		# disk anyway and it is faster to do a mkfs on it..
 		#
-		echo "Please, remove /var/spool/squid yourself."
+		echo "Please, remove logs (/var/log/squid) and cache (/var/spool/squid) yourself."
 		;;
 	failed-upgrade|abort-upgrade|upgrade|abort-install|disappear)
 		;;
@@ -28,6 +20,46 @@
 # dh_installdeb will replace this with shell code automatically
 # generated by other debhelper scripts.
 
-#DEBHELPER#
+# Automatically added by dh_installinit/13.3.4
+if [ "$1" = "purge" ] && ! [ -e /etc/init.d/squid ]; then
+	update-rc.d squid remove >/dev/null
+fi
+# End automatically added section
+# Automatically added by dh_installdeb/13.3.4
+dpkg-maintscript-helper rm_conffile /etc/squid3/msntauth.conf 3.5.4-1\~ squid3 -- "$@"
+dpkg-maintscript-helper mv_conffile /etc/squid3/squid.conf /etc/squid/squid.conf 3.5.4-1\~ squid3 -- "$@"
+dpkg-maintscript-helper mv_conffile /etc/squid3/errorpage.css /etc/squid/errorpage.css 3.5.4-1\~ squid3 -- "$@"
+# End automatically added section
+# Automatically added by dh_installsystemd/13.3.4
+if [ -d /run/systemd/system ] && [ "$1" = remove ]; then
+	systemctl --system daemon-reload >/dev/null || true
+fi
+# End automatically added section
+# Automatically added by dh_installsystemd/13.3.4
+if [ "$1" = "remove" ]; then
+	if [ -x "/usr/bin/deb-systemd-helper" ]; then
+		deb-systemd-helper mask 'squid.service' >/dev/null || true
+	fi
+fi
+
+if [ "$1" = "purge" ] && ! [ -e /lib/systemd/system/squid.service ]; then
+	if [ -x "/usr/bin/deb-systemd-helper" ]; then
+		deb-systemd-helper purge 'squid.service' >/dev/null || true
+		deb-systemd-helper unmask 'squid.service' >/dev/null || true
+	fi
+fi
+# End automatically added section
+# Automatically added by dh_apparmor/2.13.6-9
+if [ "$1" = "purge" ] && ! [ -e "/etc/apparmor.d/usr.sbin.squid" ] ; then
+    rm -f "/etc/apparmor.d/disable/usr.sbin.squid" || true
+    rm -f "/etc/apparmor.d/force-complain/usr.sbin.squid" || true
+    rm -f "/etc/apparmor.d/local/usr.sbin.squid" || true
+    rm -f /var/cache/apparmor/*/"usr.sbin.squid" || true
+    rmdir /etc/apparmor.d/disable 2>/dev/null || true
+    rmdir /etc/apparmor.d/local   2>/dev/null || true
+    rmdir /etc/apparmor.d         2>/dev/null || true
+fi
+# End automatically added section
+
 
 exit 0
diff -Nru squid-4.13/debian/squid.postrm squid-4.13/debian/squid.postrm
--- squid-4.13/debian/squid.postrm	2020-08-24 17:27:54.000000000 +0200
+++ squid-4.13/debian/squid.postrm	2021-03-10 09:16:55.000000000 +0100
@@ -6,20 +6,12 @@
 	remove)
 		;;
 	purge)
-		echo "Purging logfiles..."
-		rm -rf /var/log/squid
-
-		if [ -f /etc/squid/squid.conf ]; then
-			echo "Removing the config-file .."
-			rm -f /etc/squid/squid.conf
-		fi
-
 		#
 		# We do not remove /var/spool/squid because that might
 		# take a lot of time. Most of the time it is on a seperate
 		# disk anyway and it is faster to do a mkfs on it..
 		#
-		echo "Please, remove /var/spool/squid yourself."
+		echo "Please, remove logs (/var/log/squid) and cache (/var/spool/squid) yourself."
 		;;
 	failed-upgrade|abort-upgrade|upgrade|abort-install|disappear)
 		;;
@@ -28,6 +20,46 @@
 # dh_installdeb will replace this with shell code automatically
 # generated by other debhelper scripts.
 
-#DEBHELPER#
+# Automatically added by dh_installinit/13.3.4
+if [ "$1" = "purge" ] && ! [ -e /etc/init.d/squid ]; then
+	update-rc.d squid remove >/dev/null
+fi
+# End automatically added section
+# Automatically added by dh_installdeb/13.3.4
+dpkg-maintscript-helper rm_conffile /etc/squid3/msntauth.conf 3.5.4-1\~ squid3 -- "$@"
+dpkg-maintscript-helper mv_conffile /etc/squid3/squid.conf /etc/squid/squid.conf 3.5.4-1\~ squid3 -- "$@"
+dpkg-maintscript-helper mv_conffile /etc/squid3/errorpage.css /etc/squid/errorpage.css 3.5.4-1\~ squid3 -- "$@"
+# End automatically added section
+# Automatically added by dh_installsystemd/13.3.4
+if [ -d /run/systemd/system ] && [ "$1" = remove ]; then
+	systemctl --system daemon-reload >/dev/null || true
+fi
+# End automatically added section
+# Automatically added by dh_installsystemd/13.3.4
+if [ "$1" = "remove" ]; then
+	if [ -x "/usr/bin/deb-systemd-helper" ]; then
+		deb-systemd-helper mask 'squid.service' >/dev/null || true
+	fi
+fi
+
+if [ "$1" = "purge" ] && ! [ -e /lib/systemd/system/squid.service ]; then
+	if [ -x "/usr/bin/deb-systemd-helper" ]; then
+		deb-systemd-helper purge 'squid.service' >/dev/null || true
+		deb-systemd-helper unmask 'squid.service' >/dev/null || true
+	fi
+fi
+# End automatically added section
+# Automatically added by dh_apparmor/2.13.6-9
+if [ "$1" = "purge" ] && ! [ -e "/etc/apparmor.d/usr.sbin.squid" ] ; then
+    rm -f "/etc/apparmor.d/disable/usr.sbin.squid" || true
+    rm -f "/etc/apparmor.d/force-complain/usr.sbin.squid" || true
+    rm -f "/etc/apparmor.d/local/usr.sbin.squid" || true
+    rm -f /var/cache/apparmor/*/"usr.sbin.squid" || true
+    rmdir /etc/apparmor.d/disable 2>/dev/null || true
+    rmdir /etc/apparmor.d/local   2>/dev/null || true
+    rmdir /etc/apparmor.d         2>/dev/null || true
+fi
+# End automatically added section
+
 
 exit 0

Reply to: