base-files: fix default pre-/postrm for packages with a dot
authorJonas Gorski <jogo@openwrt.org>
Tue, 19 May 2015 09:13:17 +0000 (09:13 +0000)
committerJonas Gorski <jogo@openwrt.org>
Tue, 19 May 2015 09:13:17 +0000 (09:13 +0000)
Instead of stripping everything after the first dot, strip everything
after the last dot.
This fixes pre-/postrm actions for packages with a dot in their name,
like libusb-1.0.

Fixes #19668.

Signed-off-by: Jonas Gorski <jogo@openwrt.org>
SVN-Revision: 45702

package/base-files/files/lib/functions.sh

index 72d954d..8d045fa 100755 (executable)
@@ -165,7 +165,7 @@ insert_modules() {
 
 default_prerm() {
        local name
-       name=$(echo $(basename $1) | cut -d. -f1)
+       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
@@ -175,7 +175,7 @@ default_prerm() {
 
 default_postinst() {
        local pkgname rusers
-       pkgname=$(echo $(basename $1) | cut -d. -f1)
+       pkgname=$(basename ${1%.*})
        rusers=$(grep "Require-User:" ${IPKG_INSTROOT}/usr/lib/opkg/info/${pkgname}.control)
        [ -n "$rusers" ] && {
                local user group uid gid