Support for the groupmems command was removed from shadow 4.20. While
the suport for GROUPMEMS_PARAM was changed to use usermod instead in
commit cec67e24ac94554e092f8ab18b42e09b4feba77e, it makes sense to
remove it completely now that it has been removed from shadow. Instead
rely on using USERMOD_PARAM for adding users to groups, e.g.:

  USERMOD_PARAM:${PN} = "--append --groups group1,group2 user1"

Signed-off-by: Peter Kjellerstedt <[email protected]>
---
 meta/classes/useradd.bbclass | 52 +++++-------------------------------
 1 file changed, 7 insertions(+), 45 deletions(-)

diff --git a/meta/classes/useradd.bbclass b/meta/classes/useradd.bbclass
index 4a07394a56..ca6462edd0 100644
--- a/meta/classes/useradd.bbclass
+++ b/meta/classes/useradd.bbclass
@@ -49,7 +49,6 @@ if test "x$UA_SYSROOT" = "x"; then
        GROUPADD_PARAM="${GROUPADD_PARAM}"
        USERADD_PARAM="${USERADD_PARAM}"
        USERMOD_PARAM="${USERMOD_PARAM}"
-       GROUPMEMS_PARAM="${GROUPMEMS_PARAM}"
 fi
 
 # Perform group additions first, since user additions may depend
@@ -101,22 +100,6 @@ if test "x`echo $USERMOD_PARAM | tr -d '[:space:]'`" != 
"x"; then
                remaining=`echo "$remaining" | cut -d ';' -f 2- | sed -e 's#[ 
\t]*$##'`
        done
 fi
-
-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 | sed -e 's#[ \t]*$##'`
-       remaining=`echo "$GROUPMEMS_PARAM" | cut -d ';' -f 2- | sed -e 's#[ 
\t]*$##'`
-       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 | sed -e 's#[ 
\t]*$##'`
-               remaining=`echo "$remaining" | cut -d ';' -f 2- | sed -e 's#[ 
\t]*$##'`
-       done
-fi
 }
 
 groupadd_sysroot() {
@@ -131,10 +114,6 @@ usermod_sysroot() {
        common_useradd_sysroot usermod
 }
 
-groupmems_sysroot() {
-       common_useradd_sysroot groupmems
-}
-
 common_useradd_sysroot() {
        # Pseudo may (do_prepare_recipe_sysroot) or may not 
(do_populate_sysroot_setscene) be running
        # at this point so we're explicit about the environment so pseudo can 
load if
@@ -155,25 +134,18 @@ common_useradd_sysroot() {
                exit 0
        fi
 
-       cmd=$1
-
        # Add groups and users defined for all recipe packages
        case "$1" in
                groupadd) GROUPADD_PARAM="${@get_all_cmd_params(d, 
'groupadd')}";;
                useradd) USERADD_PARAM="${@get_all_cmd_params(d, 'useradd')}";;
                usermod) USERMOD_PARAM="${@get_all_cmd_params(d, 'usermod')}";;
-               groupmems)
-                       GROUPMEMS_PARAM="${@get_all_cmd_params(d, 'groupmems')}"
-                       # groupmems is emulated using usermod
-                       cmd=usermod
-                       ;;
        esac
 
        # It is also possible we may be in a recipe which doesn't have useradd 
dependencies and hence the
        # useradd/groupadd tools are unavailable. If there is no dependency, we 
assume we don't want to
        # create users in the sysroot
-       if ! command -v "$cmd"; then
-               bbwarn "The $cmd command could not be found!"
+       if ! command -v "$1"; then
+               bbwarn "The $1 command could not be found!"
                exit 0
        fi
 
@@ -190,7 +162,7 @@ common_useradd_sysroot() {
 EXTRA_STAGING_FIXMES += "PSEUDO_SYSROOT PSEUDO_LOCALSTATEDIR LOGFIFO"
 
 python useradd_sysroot_sstate() {
-    for cmd, sort_prefix in [("groupadd", "01"), ("useradd", "02"), 
("usermod", "03"), ("groupmems", "04")]:
+    for cmd, sort_prefix in [("groupadd", "01"), ("useradd", "02"), 
("usermod", "03")]:
         scriptfile = None
         task = d.getVar("BB_CURRENTTASK")
         if task == "package_setscene":
@@ -244,9 +216,9 @@ def update_useradd_after_parse(d):
         bb.fatal("%s inherits useradd but doesn't set USERADD_PACKAGES" % 
d.getVar('FILE', False))
 
     for pkg in useradd_packages.split():
-        d.appendVarFlag("do_populate_sysroot", "vardeps", f" 
USERADD_PARAM:{pkg} GROUPADD_PARAM:{pkg} USERMOD_PARAM:{pkg} 
GROUPMEMS_PARAM:{pkg}")
-        if not any(d.getVar(f"{name}_PARAM:{pkg}") for name in ["USERADD", 
"GROUPADD", "USERMOD", "GROUPMEMS"]):
-            bb.fatal("%s inherits useradd but doesn't set USERADD_PARAM, 
GROUPADD_PARAM, USERMOD_PARAM or GROUPMEMS_PARAM for package %s" % 
(d.getVar('FILE', False), pkg))
+        d.appendVarFlag("do_populate_sysroot", "vardeps", f" 
USERADD_PARAM:{pkg} GROUPADD_PARAM:{pkg} USERMOD_PARAM:{pkg}")
+        if not any(d.getVar(f"{name}_PARAM:{pkg}") for name in ["USERADD", 
"GROUPADD", "USERMOD"]):
+            bb.fatal("%s inherits useradd but doesn't set USERADD_PARAM, 
GROUPADD_PARAM or USERMOD_PARAM for package %s" % (d.getVar('FILE', False), 
pkg))
 
 python __anonymous() {
     if not bb.data.inherits_class('nativesdk', d) \
@@ -289,10 +261,9 @@ fakeroot python populate_packages:prepend() {
         preinst += 'perform_groupadd () {\n%s}\n' % 
d.getVar('perform_groupadd')
         preinst += 'perform_useradd () {\n%s}\n' % d.getVar('perform_useradd')
         preinst += 'perform_usermod () {\n%s}\n' % d.getVar('perform_usermod')
-        preinst += 'perform_groupmems () {\n%s}\n' % 
d.getVar('perform_groupmems')
         preinst += d.getVar('useradd_preinst')
         # Expand out the *_PARAM variables to the package specific versions
-        for rep in ["GROUPADD_PARAM", "USERADD_PARAM", "USERMOD_PARAM", 
"GROUPMEMS_PARAM"]:
+        for rep in ["GROUPADD_PARAM", "USERADD_PARAM", "USERMOD_PARAM"]:
             val = d.getVar(rep + ":" + pkg) or ""
             preinst = preinst.replace("${" + rep + "}", val)
         d.setVar('pkg_preinst:%s' % pkg, preinst)
@@ -314,15 +285,6 @@ fakeroot python populate_packages:prepend() {
             update_useradd_package(pkg)
 }
 
-do_recipe_qa[postfuncs] += "recipe_qa_deprecate_groupmems_param"
-python recipe_qa_deprecate_groupmems_param() {
-    useradd_packages = d.getVar('USERADD_PACKAGES') or ""
-    for pkg in useradd_packages.split():
-        if d.getVar(f"GROUPMEMS_PARAM:{pkg}"):
-            bb.warn("The GROUPMEMS_PARAM variable is deprecated. Please use 
USERMOD_PARAM instead.")
-            return
-}
-
 # Use the following to extend the useradd with custom functions
 USERADDEXTENSION ?= ""
 
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#244253): 
https://lists.openembedded.org/g/openembedded-core/message/244253
Mute This Topic: https://lists.openembedded.org/mt/120925182/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to