From da191d5c139a6b400d1b8fe246912b081dd18176 Mon Sep 17 00:00:00 2001 From: Mariano Lopez Date: Mon, 25 Jul 2016 13:31:25 +0000 Subject: useradd.bbclass: Fix delete user/group when more than one item Currently when a recipe adds more than one user/group, the cleansstate task will delete only the first user/group. This will solve this behavior and delete all users/groups. [YOCTO #9943] Signed-off-by: Mariano Lopez Signed-off-by: Ross Burton --- meta/classes/useradd.bbclass | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/meta/classes/useradd.bbclass b/meta/classes/useradd.bbclass index 28dd341bf7..8d51fb5a45 100644 --- a/meta/classes/useradd.bbclass +++ b/meta/classes/useradd.bbclass @@ -137,15 +137,21 @@ if test "x${STAGING_DIR_TARGET}" != "x"; then GROUPADD_PARAM="${@get_all_cmd_params(d, 'groupadd')}" USERADD_PARAM="${@get_all_cmd_params(d, 'useradd')}" - if test "x`echo $USERADD_PARAM | tr -d '[:space:]'`" != "x"; then - user=`echo "$USERADD_PARAM" | cut -d ';' -f 1 | awk '{ print $NF }'` + user=`echo "$USERADD_PARAM" | cut -d ';' -f 1 | awk '{ print $NF }'` + remaining=`echo "$USERADD_PARAM" | cut -d ';' -f 2- -s | sed -e 's#[ \t]*$##'` + while test "x$user" != "x"; do perform_userdel "${STAGING_DIR_TARGET}" "$OPT $user" - fi - - if test "x`echo $GROUPADD_PARAM | tr -d '[:space:]'`" != "x"; then - group=`echo "$GROUPADD_PARAM" | cut -d ';' -f 1 | awk '{ print $NF }'` - perform_groupdel "${STAGING_DIR_TARGET}" "$OPT $group" - fi + user=`echo "$remaining" | cut -d ';' -f 1 | awk '{ print $NF }'` + remaining=`echo "$remaining" | cut -d ';' -f 2- -s | sed -e 's#[ \t]*$##'` + done + + user=`echo "$GROUPADD_PARAM" | cut -d ';' -f 1 | awk '{ print $NF }'` + remaining=`echo "$GROUPADD_PARAM" | cut -d ';' -f 2- -s | sed -e 's#[ \t]*$##'` + while test "x$user" != "x"; do + perform_groupdel "${STAGING_DIR_TARGET}" "$OPT $user" + user=`echo "$remaining" | cut -d ';' -f 1 | awk '{ print $NF }'` + remaining=`echo "$remaining" | cut -d ';' -f 2- -s | sed -e 's#[ \t]*$##'` + done fi fi -- cgit 1.2.3-korg