diff options
author | John Crispin <blogic@openwrt.org> | 2015-02-04 06:10:06 +0000 |
---|---|---|
committer | John Crispin <blogic@openwrt.org> | 2015-02-04 06:10:06 +0000 |
commit | 60552298d7e17b697be7057cc4bff33526204f69 (patch) | |
tree | e48261ac04ffcb1209f5bcae214d815001fe7f54 /package/base-files | |
parent | e17c34de65be1422e22e391ad1a15d02835a684d (diff) | |
download | upstream-60552298d7e17b697be7057cc4bff33526204f69.tar.gz upstream-60552298d7e17b697be7057cc4bff33526204f69.tar.bz2 upstream-60552298d7e17b697be7057cc4bff33526204f69.zip |
base-files: default_postinst() fix variable colision
The name variable contains at first the package name,
and after the last group name.
This patch fixes /etc/rc.d symlink creation (at least).
Change name in pkgname, change the other name in ugname
(user group name), and id in ugid (user group id)
Signed-off-by: Etienne CHAMPETIER <champetier.etienne@gmail.com>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@44253 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/base-files')
-rwxr-xr-x | package/base-files/files/lib/functions.sh | 30 |
1 files changed, 15 insertions, 15 deletions
diff --git a/package/base-files/files/lib/functions.sh b/package/base-files/files/lib/functions.sh index 9d98fb0fbe..dc3b80534b 100755 --- a/package/base-files/files/lib/functions.sh +++ b/package/base-files/files/lib/functions.sh @@ -171,51 +171,51 @@ default_prerm() { } default_postinst() { - local name rusers - name=$(echo $(basename $1) | cut -d. -f1) - rusers=$(grep "Require-User:" ${IPKG_INSTROOT}/usr/lib/opkg/info/${name}.control) + local pkgname rusers + pkgname=$(echo $(basename $1) | cut -d. -f1) + rusers=$(grep "Require-User:" ${IPKG_INSTROOT}/usr/lib/opkg/info/${pkgname}.control) [ -n "$rusers" ] && { local user group uid gid for a in $(echo $rusers | sed "s/Require-User://g"); do user="" group="" for b in $(echo $a | sed "s/:/ /g"); do - local name id + local ugname ugid - name=$(echo $b | cut -d= -f1) - id=$(echo $b | cut -d= -f2) + ugname=$(echo $b | cut -d= -f1) + ugid=$(echo $b | cut -d= -f2) [ -z "$user" ] && { - user=$name - uid=$id + user=$ugname + uid=$ugid continue } - gid=$id + gid=$ugid [ -n "$gid" ] && { - group_exists $name || group_add $name $gid + group_exists $ugname || group_add $ugname $gid } [ -z "$gid" ] && { - group_add_next $name + group_add_next $ugname gid=$? } [ -z "$group" ] && { user_exists $user || user_add $user "$uid" $gid - group=$name + group=$ugname continue } - group_add_user $name $user + group_add_user $ugname $user done done } - [ -f ${IPKG_INSTROOT}/usr/lib/opkg/info/${name}.postinst-pkg ] && ( . ${IPKG_INSTROOT}/usr/lib/opkg/info/${name}.postinst-pkg ) + [ -f ${IPKG_INSTROOT}/usr/lib/opkg/info/${pkgname}.postinst-pkg ] && ( . ${IPKG_INSTROOT}/usr/lib/opkg/info/${pkgname}.postinst-pkg ) [ -n "${IPKG_INSTROOT}" ] || rm -f /tmp/luci-indexcache 2>/dev/null - [ "$PKG_UPGRADE" = "1" ] || for i in `cat ${IPKG_INSTROOT}/usr/lib/opkg/info/${name}.list | grep "^/etc/init.d/"`; do + [ "$PKG_UPGRADE" = "1" ] || for i in `cat ${IPKG_INSTROOT}/usr/lib/opkg/info/${pkgname}.list | grep "^/etc/init.d/"`; do [ -n "${IPKG_INSTROOT}" ] && $(which bash) ${IPKG_INSTROOT}/etc/rc.common ${IPKG_INSTROOT}$i enable; \ [ -n "${IPKG_INSTROOT}" ] || { $i enable |