summaryrefslogtreecommitdiffstats
path: root/package
diff options
context:
space:
mode:
authorMatthias Schiffer <mschiffer@universe-factory.net>2016-09-26 15:25:37 +0200
committerMatthias Schiffer <mschiffer@universe-factory.net>2016-09-26 17:57:57 +0200
commit26b4216f95d2c262144d7e3744b0a541cf210506 (patch)
tree717392dede47d57a4b9c6402b989f97048dd785a /package
parent43bf3e80b2bcde1930d8d794d8719bf3137ba031 (diff)
downloadmaster-31e0f0ae-26b4216f95d2c262144d7e3744b0a541cf210506.tar.gz
master-31e0f0ae-26b4216f95d2c262144d7e3744b0a541cf210506.tar.bz2
master-31e0f0ae-26b4216f95d2c262144d7e3744b0a541cf210506.zip
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@universe-factory.net>
Diffstat (limited to 'package')
-rwxr-xr-xpackage/base-files/files/lib/functions.sh16
1 files changed, 12 insertions, 4 deletions
diff --git a/package/base-files/files/lib/functions.sh b/package/base-files/files/lib/functions.sh
index e6c6822cec..232a1c4ed2 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
}