diff options
author | John Crispin <john@openwrt.org> | 2015-02-04 06:10:06 +0000 |
---|---|---|
committer | John Crispin <john@openwrt.org> | 2015-02-04 06:10:06 +0000 |
commit | 5cd8a482f3108f4b81e143ded6d8bf7128c8608f (patch) | |
tree | de9c9078ed3b73a61f4eb28ecb5f3286daa6c0ec /package/base-files | |
parent | ee445d7cb2c0f5d9d59bc320a52e218a60df1265 (diff) | |
download | upstream-5cd8a482f3108f4b81e143ded6d8bf7128c8608f.tar.gz upstream-5cd8a482f3108f4b81e143ded6d8bf7128c8608f.tar.bz2 upstream-5cd8a482f3108f4b81e143ded6d8bf7128c8608f.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>
SVN-Revision: 44253
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 |