From 5cd8a482f3108f4b81e143ded6d8bf7128c8608f Mon Sep 17 00:00:00 2001 From: John Crispin Date: Wed, 4 Feb 2015 06:10:06 +0000 Subject: [PATCH] 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 SVN-Revision: 44253 --- package/base-files/files/lib/functions.sh | 30 +++++++++++------------ 1 file 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