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

Bug#935728: stretch-pu: package safe-rm/0.12-2+deb9u1



Package: release.debian.org
Severity: normal
Tags: stretch
User: release.debian.org@packages.debian.org
Usertags: pu

safe-rm/stretch causes havoc if installed in a merged /usr environment
because of the way it handles /bin/rm (#759410) - this has significantly
improved in buster.
Merged /usr stretch environments should be quite rare - you need
debootstrap from buster to create one. But I use them for tests in
piuparts. So maybe other developers use them as well.
For safe-rm I'd like to add a preinst that prevents installation in such
an environment - instead of breaking it by killing /bin/rm.
Having it error out explicitly is much better than investigating the
spurious failures occuring in "random" places after its installation.
The maintainer has acknowledged this approach for stretch.


Andreas
diff -Nru safe-rm-0.12/debian/changelog safe-rm-0.12/debian/changelog
--- safe-rm-0.12/debian/changelog	2016-01-19 18:25:20.000000000 +0100
+++ safe-rm-0.12/debian/changelog	2019-08-25 17:24:42.000000000 +0200
@@ -1,3 +1,10 @@
+safe-rm (0.12-2+deb9u1) stretch; urgency=medium
+
+  * Prevent installation in (and thereby breaking of) merged /usr
+    environments.  (See: #759410)
+
+ -- Andreas Beckmann <anbe@debian.org>  Sun, 25 Aug 2019 17:24:42 +0200
+
 safe-rm (0.12-2) unstable; urgency=medium
 
   * Add Brazilian debconf translation (closes: #811536)
diff -Nru safe-rm-0.12/debian/preinst safe-rm-0.12/debian/preinst
--- safe-rm-0.12/debian/preinst	2016-01-19 18:25:20.000000000 +0100
+++ safe-rm-0.12/debian/preinst	2019-08-25 17:24:03.000000000 +0200
@@ -17,6 +17,14 @@
 
 case "$1" in
     install|upgrade)
+	# Prevent installation of safe-rm in a merged /usr environment because
+	# that would break (permanently delete) the original (/usr)/bin/rm
+	# This is fixed in buster. (#759410)
+	if [ -h /bin ] && [ "$(readlink -f /bin)" = "$(readlink -f /usr/bin)" ]; then
+		echo "safe-rm (stretch) cannot be installed in a merged /usr environment"
+		exit 1
+	fi
+
 	# Checking for old versions of safe-rm and cancelling the upgrade
 	if [ -e /bin/safe-rm ] ; then
 		db_get safe-rm/abort_upgrade

Reply to: