useradd.bbclass: Fix delete user/group when more than one item
A message that is not in the archive (sent off-list or not yet received): [email protected]
PATCH 1/1 useradd.bbclass: Fix delete user/group when more than one item
From: Mariano Lopez <[email protected]>
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 <[email protected]>
--- meta/classes/useradd.bbclass | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-)
meta/classes/useradd.bbclass +14 -8
@@ -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
Signature · 1 line
2.6.6