[source] base-files: make default_prerm work offline

LEDE Commits lede-commits at lists.infradead.org
Mon Sep 26 08:59:47 PDT 2016


neoraider pushed a commit to source.git, branch master:
https://git.lede-project.org/26b4216f95d2c262144d7e3744b0a541cf210506

commit 26b4216f95d2c262144d7e3744b0a541cf210506
Author: Matthias Schiffer <mschiffer at universe-factory.net>
AuthorDate: Mon Sep 26 15:25:37 2016 +0200

    base-files: make default_prerm work offline
    
    IPKG_INSTROOT must be respected for offline removal (used for per-device
    rootfs).
    
    Signed-off-by: Matthias Schiffer <mschiffer at universe-factory.net>
---
 package/base-files/files/lib/functions.sh | 16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)

diff --git a/package/base-files/files/lib/functions.sh b/package/base-files/files/lib/functions.sh
index e6c6822..232a1c4 100755
--- a/package/base-files/files/lib/functions.sh
+++ b/package/base-files/files/lib/functions.sh
@@ -164,12 +164,20 @@ insert_modules() {
 }
 
 default_prerm() {
+	local root="${IPKG_INSTROOT}"
 	local name
+
 	name=$(basename ${1%.*})
-	[ -f /usr/lib/opkg/info/${name}.prerm-pkg ] && . /usr/lib/opkg/info/${name}.prerm-pkg
-	for i in `cat /usr/lib/opkg/info/${name}.list | grep "^/etc/init.d/"`; do
-		$i disable
-		$i stop
+	[ -f "$root/usr/lib/opkg/info/${name}.prerm-pkg" ] && . "$root/usr/lib/opkg/info/${name}.prerm-pkg"
+
+	local shell="$(which bash)"
+	for i in `cat "$root/usr/lib/opkg/info/${name}.list" | grep "^/etc/init.d/"`; do
+		if [ -n "$root" ]; then
+			${shell:-/bin/sh} "$root/etc/rc.common" "$root$i" disable
+		else
+			"$i" disable
+			"$i" stop
+		fi
 	done
 }
 



More information about the lede-commits mailing list