[oe-commits] [openembedded-core] 14/14: useradd.bbclass: Strip trailing '; ' in cmd params

git at git.openembedded.org git at git.openembedded.org
Tue Sep 27 08:13:55 UTC 2016


rpurdie pushed a commit to branch krogoth
in repository openembedded-core.

commit 4f69a4be79e17ef009351c447694e46b5cb517c2
Author: Khem Raj <raj.khem at gmail.com>
AuthorDate: Tue May 17 21:20:15 2016 -0700

    useradd.bbclass: Strip trailing ';' in cmd params
    
    When there are more than 1 packages in a recipe requiring useradd
    services, they are concatnated and a ';' is inserted just after
    each of the users being added by the packages. A situation arises
    in cases where this is controlled by PACKAGECONFIG then we add a
    ';' separator in the USERADD_PARAM value itself for each packagecofig
    since we do not know which one will be picked, we end up in situation
    where the final string returned from get_all_cmd_params() appears to be
    
    a; ; b; c;
    
    and then the logic which uses these cmds triggers with ';' as separator
    but in this case it will fail after executing useradd 'a' because the next
    cmd it will call will be just a whitespace
    
    This is highlighted by the systemd patch to add more users as needed
    by systemd 229 components.
    
    (From OE-Core rev: e8d4356c38e3c2aacd6dc49231c73bcb7d597308)
    
    Signed-off-by: Khem Raj <raj.khem at gmail.com>
    Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
    Signed-off-by: Armin Kuster <akuster808 at gmail.com>
---
 meta/classes/useradd.bbclass | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/meta/classes/useradd.bbclass b/meta/classes/useradd.bbclass
index 8283bf3..67dae88 100644
--- a/meta/classes/useradd.bbclass
+++ b/meta/classes/useradd.bbclass
@@ -54,14 +54,14 @@ if test "x`echo $GROUPADD_PARAM | tr -d '[:space:]'`" != "x"; then
 	echo "Running groupadd commands..."
 	# Invoke multiple instances of groupadd for parameter lists
 	# separated by ';'
-	opts=`echo "$GROUPADD_PARAM" | cut -d ';' -f 1`
+	opts=`echo "$GROUPADD_PARAM" | cut -d ';' -f 1 | sed -e 's#[ \t]*$##'`
 	remaining=`echo "$GROUPADD_PARAM" | cut -d ';' -f 2-`
 	while test "x$opts" != "x"; do
 		perform_groupadd "$SYSROOT" "$OPT $opts"
 		if test "x$opts" = "x$remaining"; then
 			break
 		fi
-		opts=`echo "$remaining" | cut -d ';' -f 1`
+		opts=`echo "$remaining" | cut -d ';' -f 1 | sed -e 's#[ \t]*$##'`
 		remaining=`echo "$remaining" | cut -d ';' -f 2-`
 	done
 fi 
@@ -70,14 +70,14 @@ if test "x`echo $USERADD_PARAM | tr -d '[:space:]'`" != "x"; then
 	echo "Running useradd commands..."
 	# Invoke multiple instances of useradd for parameter lists
 	# separated by ';'
-	opts=`echo "$USERADD_PARAM" | cut -d ';' -f 1`
+	opts=`echo "$USERADD_PARAM" | cut -d ';' -f 1 | sed -e 's#[ \t]*$##'`
 	remaining=`echo "$USERADD_PARAM" | cut -d ';' -f 2-`
 	while test "x$opts" != "x"; do
 		perform_useradd "$SYSROOT" "$OPT $opts"
 		if test "x$opts" = "x$remaining"; then
 			break
 		fi
-		opts=`echo "$remaining" | cut -d ';' -f 1`
+		opts=`echo "$remaining" | cut -d ';' -f 1 | sed -e 's#[ \t]*$##'`
 		remaining=`echo "$remaining" | cut -d ';' -f 2-`
 	done
 fi
@@ -86,14 +86,14 @@ if test "x`echo $GROUPMEMS_PARAM | tr -d '[:space:]'`" != "x"; then
 	echo "Running groupmems commands..."
 	# Invoke multiple instances of groupmems for parameter lists
 	# separated by ';'
-	opts=`echo "$GROUPMEMS_PARAM" | cut -d ';' -f 1`
+	opts=`echo "$GROUPMEMS_PARAM" | cut -d ';' -f 1 | sed -e 's#[ \t]*$##'`
 	remaining=`echo "$GROUPMEMS_PARAM" | cut -d ';' -f 2-`
 	while test "x$opts" != "x"; do
 		perform_groupmems "$SYSROOT" "$OPT $opts"
 		if test "x$opts" = "x$remaining"; then
 			break
 		fi
-		opts=`echo "$remaining" | cut -d ';' -f 1`
+		opts=`echo "$remaining" | cut -d ';' -f 1 | sed -e 's#[ \t]*$##'`
 		remaining=`echo "$remaining" | cut -d ';' -f 2-`
 	done
 fi
@@ -203,7 +203,7 @@ def get_all_cmd_params(d, cmd_type):
     for pkg in useradd_packages.split():
         param = d.getVar(param_type % pkg, True)
         if param:
-            params.append(param)
+            params.append(param.rstrip(" ;"))
 
     return "; ".join(params)
 

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Openembedded-commits mailing list