Add a method for image level user/group configuration
v4 cover Add a method for image level user/group configuration
From: Chen Qi <[email protected]>
Changes from V3:
1. naming changes
rename userbase.bbclass to useradd_base.bbclass
rename usersettings.bbclass to extrausers.bbclass
rename USER_GROUP_SETTINGS to EXTRA_USERS_PARAMS
2. Add an example in the extrauser.bbclass to show how to use this bbclass
3. Report the incorrect setting in EXTRA_USERS_PARAMS.
Note the branch has also changed from ChenQi/user_group_settings to ChenQi/extrausers.
The following changes since commit a63229917a5708de2d161aba0d67168ce0da6365:
meta-yocto-bsp: update reference board SRCREVs (2013-07-10 09:45:51 +0100)
are available in the git repository at:
git://git.pokylinux.org/poky-contrib ChenQi/extrausers
http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=ChenQi/extrausers
Chen Qi (3):
useradd_base.bbclass: add a new bbclass
useradd.bbclass: code refactor
extrausers.bbclass: add a new bbclass
meta/classes/extrausers.bbclass | 61 ++++++++++ meta/classes/useradd.bbclass | 99 ++-------------- meta/classes/useradd_base.bbclass | 230 +++++++++++++++++++++++++++++++++++++ 3 files changed, 299 insertions(+), 91 deletions(-) create mode 100644 meta/classes/extrausers.bbclass create mode 100644 meta/classes/useradd_base.bbclass
Signature · 1 line
1.7.9.5
PATCH v4 1/3 useradd_base.bbclass: add a new bbclass
From: Chen Qi <[email protected]>
This class is mainly a collection of basic functions for user/group settings.
This class is intended to be inherited by useradd.bbclass and the extrausers.bbclass.
[YOCTO #4074]
--- meta/classes/useradd_base.bbclass | 230 +++++++++++++++++++++++++++++++++++++ 1 file changed, 230 insertions(+) create mode 100644 meta/classes/useradd_base.bbclass
meta/classes/useradd_base.bbclass new file +230 -0
@@ -0,0 +1,230 @@ +# This bbclass provides basic functionality for user/group settings. +# This bbclass is intended to be inherited by useradd.bbclass and +# extrausers.bbclass. + +# The following functions basically have similar logic. +# *) Perform necessary checks before invoking the actual command +# *) Invoke the actual command, make retries if necessary +# *) Error out if an error occurs. + +# Note that before invoking these functions, make sure the global variable +# PSEUDO is set up correctly. + +perform_groupadd () { + local rootdir="$1" + local opts="$2" + local retries="$3" + bbnote "Performing groupadd with [$opts] and $retries times of retry" + local groupname=`echo "$opts" | awk '{ print $NF }'` + local group_exists=`grep "^$groupname:" $rootdir/etc/group || true` + if test "x$group_exists" = "x"; then + local count=0 + while true; do + eval $PSEUDO groupadd $opts || true + group_exists=`grep "^$groupname:" $rootdir/etc/group || true` + if test "x$group_exists" = "x"; then + bbwarn "groupadd command did not succeed. Retrying..." + sleep 1 + else + break + fi + count=`expr $count + 1` + if test $count = $retries; then + bbfatal "Tried running groupadd command $retries times without scucess, giving up" + fi + done + else + bbwarn "group $groupname already exists, not re-creating it" + fi +} + +perform_useradd () { + local rootdir="$1" + local opts="$2" + local retries="$3" + bbnote "Performing useradd with [$opts] and $retries times of retry" + local username=`echo "$opts" | awk '{ print $NF }'` + local user_exists=`grep "^$username:" $rootdir/etc/passwd || true` + if test "x$user_exists" = "x"; then + local count=0 + while true; do + eval $PSEUDO useradd $opts || true + user_exists=`grep "^$username:" $rootdir/etc/passwd || true` + if test "x$user_exists" = "x"; then + bbwarn "useradd command did not succeed. Retrying..." + sleep 1 + else + break + fi + count=`expr $count + 1` + if test $count = $retries; then + bbfatal "Tried running useradd command $retries times without scucess, giving up" + fi + done + else + bbwarn "user $username already exists, not re-creating it" + fi +} + +perform_groupmems () { + local rootdir="$1" + local opts="$2" + local retries="$3" + bbnote "Performing groupmems with [$opts] and $retries times of retry" + local groupname=`echo "$opts" | awk '{ for (i = 1; i < NF; i++) if ($i == "-g" || $i == "--group") print $(i+1) }'` + local username=`echo "$opts" | awk '{ for (i = 1; i < NF; i++) if ($i == "-a" || $i == "--add") print $(i+1) }'` + bbnote "Running groupmems command with group $groupname and user $username" + # groupmems fails if /etc/gshadow does not exist + local gshadow="" + if [ -f $rootdir${sysconfdir}/gshadow ]; then + gshadow="yes" + else + gshadow="no" + touch $rootdir${sysconfdir}/gshadow + fi + local mem_exists=`grep "^$groupname:[^:]*:[^:]*:\([^,]*,\)*$username\(,[^,]*\)*" $rootdir/etc/group || true` + if test "x$mem_exists" = "x"; then + local count=0 + while true; do + eval $PSEUDO groupmems $opts || true + mem_exists=`grep "^$groupname:[^:]*:[^:]*:\([^,]*,\)*$username\(,[^,]*\)*" $rootdir/etc/group || true` + if test "x$mem_exists" = "x"; then + bbwarn "groupmems command did not succeed. Retrying..." + sleep 1 + else + break + fi + count=`expr $count + 1` + if test $count = $retries; then + if test "x$gshadow" = "xno"; then + rm -f $rootdir${sysconfdir}/gshadow + rm -f $rootdir${sysconfdir}/gshadow- + fi + bbfatal "Tried running groupmems command $retries times without scucess, giving up" + fi + done + else + bbwarn "group $groupname already contains $username, not re-adding it" + fi + if test "x$gshadow" = "xno"; then + rm -f $rootdir${sysconfdir}/gshadow + rm -f $rootdir${sysconfdir}/gshadow- + fi +} + +perform_groupdel () { + local rootdir="$1" + local opts="$2" + local retries="$3" + bbnote "Performing groupdel with [$opts] and $retries times of retry" + local groupname=`echo "$opts" | awk '{ print $NF }'` + local group_exists=`grep "^$groupname:" $rootdir/etc/group || true` + if test "x$group_exists" != "x"; then + local count=0 + while true; do + eval $PSEUDO groupdel $opts || true + group_exists=`grep "^$groupname:" $rootdir/etc/group || true` + if test "x$group_exists" != "x"; then + bbwarn "groupdel command did not succeed. Retrying..." + sleep 1 + else + break + fi + count=`expr $count + 1` + if test $count = $retries; then + bbfatal "Tried running groupdel command $retries times without scucess, giving up" + fi + done + else + bbwarn "group $groupname doesn't exist, not removing it" + fi +} + +perform_userdel () { + local rootdir="$1" + local opts="$2" + local retries="$3" + bbnote "Performing userdel with [$opts] and $retries times of retry" + local username=`echo "$opts" | awk '{ print $NF }'` + local user_exists=`grep "^$username:" $rootdir/etc/passwd || true` + if test "x$user_exists" != "x"; then + local count=0 + while true; do + eval $PSEUDO userdel $opts || true + user_exists=`grep "^$username:" $rootdir/etc/passwd || true` + if test "x$user_exists" != "x"; then + bbwarn "userdel command did not succeed. Retrying..." + sleep 1 + else + break + fi + count=`expr $count + 1` + if test $count = $retries; then + bbfatal "Tried running userdel command $retries times without scucess, giving up" + fi + done + else + bbwarn "user $username doesn't exist, not removing it" + fi +} + +perform_groupmod () { + # Other than the return value of groupmod, there's no simple way to judge whether the command + # succeeds, so we disable -e option temporarily + set +e + local rootdir="$1" + local opts="$2" + local retries="$3" + bbnote "Performing groupmod with [$opts] and $retries times of retry" + local groupname=`echo "$opts" | awk '{ print $NF }'` + local group_exists=`grep "^$groupname:" $rootdir/etc/group || true` + if test "x$group_exists" != "x"; then + local count=0 + while true; do + eval $PSEUDO groupmod $opts + if test $? != 0; then + bbwarn "groupmod command did not succeed. Retrying..." + sleep 1 + else + break + fi + count=`expr $count + 1` + if test $count = $retries; then + bbfatal "Tried running groupmod command $retries times without scucess, giving up" + fi + done + else + bbfatal "group $groupname doesn't exist, unable to modify it" + fi + set -e +} + +perform_usermod () { + # Same reason with groupmod, temporarily disable -e option + set +e + local rootdir="$1" + local opts="$2" + local retries="$3" + bbnote "Performing usermod with [$opts] and $retries times of retry" + local username=`echo "$opts" | awk '{ print $NF }'` + local user_exists=`grep "^$username:" $rootdir/etc/passwd || true` + if test "x$user_exists" != "x"; then + local count=0 + while true; do + eval $PSEUDO usermod $opts + if test $? != 0; then + bbwarn "usermod command did not succeed. Retrying..." + sleep 1 + else + break + fi + count=`expr $count + 1` + if test $count = $retries; then + bbfatal "Tried running usermod command $retries times without scucess, giving up" + fi + done + else + bbfatal "user $username doesn't exist, unable to modify it" + fi + set -e +}
Signature · 1 line
1.7.9.5
PATCH v4 2/3 useradd.bbclass: code refactor
In reply to [email protected]From: Chen Qi <[email protected]>
The basic functions have moved to useradd_base.bbclass. So this class only needs to inherit useradd_base.bbclass and use the functions defined there. The reason is to avoid code duplication with extrausers.bbclass.
[YOCTO #4074]
--- meta/classes/useradd.bbclass | 99 ++++-------------------------------------- 1 file changed, 8 insertions(+), 91 deletions(-)
meta/classes/useradd.bbclass +8 -91
@@ -1,3 +1,5 @@ +inherit useradd_base + # base-passwd-cross provides the default passwd and group files in the # target sysroot, and shadow -native and -sysroot provide the utilities # and support files needed to add and modify user and group accounts
@@ -44,30 +46,7 @@ if test "x$GROUPADD_PARAM" != "x"; then opts=`echo "$GROUPADD_PARAM" | cut -d ';' -f 1` remaining=`echo "$GROUPADD_PARAM" | cut -d ';' -f 2-` while test "x$opts" != "x"; do - groupname=`echo "$opts" | awk '{ print $NF }'` - group_exists=`grep "^$groupname:" $SYSROOT/etc/group || true` - if test "x$group_exists" = "x"; then - count=1 - while true; do - eval $PSEUDO groupadd $OPT $opts || true - group_exists=`grep "^$groupname:" $SYSROOT/etc/group || true` - if test "x$group_exists" = "x"; then - # File locking issues can require us to retry the command - echo "WARNING: groupadd command did not succeed. Retrying..." - sleep 1 - else - break - fi - count=`expr $count + 1` - if test $count = 11; then - echo "ERROR: tried running groupadd command 10 times without success, giving up" - exit 1 - fi - done - else - echo "Note: group $groupname already exists, not re-creating it" - fi - + perform_groupadd "$SYSROOT" "$OPT $opts" 10 if test "x$opts" = "x$remaining"; then break fi
@@ -83,32 +62,7 @@ if test "x$USERADD_PARAM" != "x"; then opts=`echo "$USERADD_PARAM" | cut -d ';' -f 1` remaining=`echo "$USERADD_PARAM" | cut -d ';' -f 2-` while test "x$opts" != "x"; do - # useradd does not have a -f option, so we have to check if the - # username already exists manually - username=`echo "$opts" | awk '{ print $NF }'` - user_exists=`grep "^$username:" $SYSROOT/etc/passwd || true` - if test "x$user_exists" = "x"; then - count=1 - while true; do - eval $PSEUDO useradd $OPT $opts || true - user_exists=`grep "^$username:" $SYSROOT/etc/passwd || true` - if test "x$user_exists" = "x"; then - # File locking issues can require us to retry the command - echo "WARNING: useradd command did not succeed. Retrying..." - sleep 1 - else - break - fi - count=`expr $count + 1` - if test $count = 11; then - echo "ERROR: tried running useradd command 10 times without success, giving up" - exit 1 - fi - done - else - echo "Note: username $username already exists, not re-creating it" - fi - + perform_useradd "$SYSROOT" "$OPT $opts" 10 if test "x$opts" = "x$remaining"; then break fi
@@ -119,58 +73,18 @@ fi if test "x$GROUPMEMS_PARAM" != "x"; then echo "Running groupmems commands..." - # groupmems fails if /etc/gshadow does not exist - if [ -f $SYSROOT${sysconfdir}/gshadow ]; then - gshadow="yes" - else - gshadow="no" - touch $SYSROOT${sysconfdir}/gshadow - fi # Invoke multiple instances of groupmems for parameter lists # separated by ';' opts=`echo "$GROUPMEMS_PARAM" | cut -d ';' -f 1` remaining=`echo "$GROUPMEMS_PARAM" | cut -d ';' -f 2-` while test "x$opts" != "x"; do - groupname=`echo "$opts" | awk '{ for (i = 1; i < NF; i++) if ($i == "-g" || $i == "--group") print $(i+1) }'` - username=`echo "$opts" | awk '{ for (i = 1; i < NF; i++) if ($i == "-a" || $i == "--add") print $(i+1) }'` - echo "$groupname $username" - mem_exists=`grep "^$groupname:[^:]*:[^:]*:\([^,]*,\)*$username\(,[^,]*\)*" $SYSROOT/etc/group || true` - if test "x$mem_exists" = "x"; then - count=1 - while true; do - eval $PSEUDO groupmems $OPT $opts || true - mem_exists=`grep "^$groupname:[^:]*:[^:]*:\([^,]*,\)*$username\(,[^,]*\)*" $SYSROOT/etc/group || true` - if test "x$mem_exists" = "x"; then - # File locking issues can require us to retry the command - echo "WARNING: groupmems command did not succeed. Retrying..." - sleep 1 - else - break - fi - count=`expr $count + 1` - if test $count = 11; then - echo "ERROR: tried running groupmems command 10 times without success, giving up" - if test "x$gshadow" = "xno"; then - rm -f $SYSROOT${sysconfdir}/gshadow - rm -f $SYSROOT${sysconfdir}/gshadow- - fi - exit 1 - fi - done - else - echo "Note: group $groupname already contains $username, not re-adding it" - fi - + perform_groupmems "$SYSROOT" "$OPT $opts" 10 if test "x$opts" = "x$remaining"; then break fi opts=`echo "$remaining" | cut -d ';' -f 1` remaining=`echo "$remaining" | cut -d ';' -f 2-` done - if test "x$gshadow" = "xno"; then - rm -f $SYSROOT${sysconfdir}/gshadow - rm -f $SYSROOT${sysconfdir}/gshadow- - fi fi }
@@ -254,6 +168,9 @@ fakeroot python populate_packages_prepend () { preinst = d.getVar('pkg_preinst_%s' % pkg, True) or d.getVar('pkg_preinst', True) if not preinst: preinst = '#!/bin/sh\n' + preinst += 'perform_groupadd () {\n%s}\n' % d.getVar('perform_groupadd', True) + preinst += 'perform_useradd () {\n%s}\n' % d.getVar('perform_useradd', True) + preinst += 'perform_groupmems () {\n%s}\n' % d.getVar('perform_groupmems', True) preinst += d.getVar('useradd_preinst', True) d.setVar('pkg_preinst_%s' % pkg, preinst)
Signature · 1 line
1.7.9.5
PATCH v4 3/3 extrausers.bbclass: add a new bbclass
In reply to [email protected]From: Chen Qi <[email protected]>
This class is dedicated to image level user/group configuration. It inherits useradd_base.bbclass.
Users need to inherit this class in their layers or local.conf to make the setting of EXTRA_USERS_PARAMS effective.
For detailed configuration format of EXTRA_USERS_PARAMS, please refer to local.conf.sample.extended.
[YOCTO #4074]
--- meta/classes/extrausers.bbclass | 61 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 meta/classes/extrausers.bbclass
meta/classes/extrausers.bbclass new file +61 -0
@@ -0,0 +1,61 @@ +# This bbclass is mainly used for image level user/group configuration. +# Inherit this class if you want to make EXTRA_USERS_PARAMS effective. + +# Below is an example showing how to use this functionality. +# INHERIT += "extrausers" +# EXTRA_USERS_PARAMS = "\ +# useradd,-p '' tester; \ +# groupadd,developers; \ +# userdel,nobody; \ +# groupdel,-g video; \ +# groupmod,-g 1020 developers; \ +# usermod,-s /bin/sh tester; \ +# " + + +inherit useradd_base + +IMAGE_INSTALL_append = " ${@['', 'base-passwd shadow'][bool(d.getVar('EXTRA_USERS_PARAMS', True))]}" + +# Image level user / group settings +ROOTFS_POSTPROCESS_COMMAND_append = " set_user_group;" + +# Image level user / group settings +set_user_group () { + user_group_settings="${EXTRA_USERS_PARAMS}" + export PSEUDO="${FAKEROOTENV} ${STAGING_DIR_NATIVE}${bindir}/pseudo" + setting=`echo $user_group_settings | cut -d ';' -f1` + remaining=`echo $user_group_settings | cut -d ';' -f2-` + while test "x$setting" != "x"; do + cmd=`echo $setting | cut -d ',' -f1` + opts=`echo $setting | cut -d ',' -f2` + # Different from useradd.bbclass, there's no file locking issue here, as + # this setting is actually a serial process. So we only retry once. + case $cmd in + useradd) + perform_useradd "${IMAGE_ROOTFS}" "-R ${IMAGE_ROOTFS} $opts" 1 + ;; + groupadd) + perform_groupadd "${IMAGE_ROOTFS}" "-R ${IMAGE_ROOTFS} $opts" 1 + ;; + userdel) + perform_userdel "${IMAGE_ROOTFS}" "-R ${IMAGE_ROOTFS} $opts" 1 + ;; + groupdel) + perform_groupdel "${IMAGE_ROOTFS}" "-R ${IMAGE_ROOTFS} $opts" 1 + ;; + usermod) + perform_usermod "${IMAGE_ROOTFS}" "-R ${IMAGE_ROOTFS} $opts" 1 + ;; + groupmod) + perform_groupmod "${IMAGE_ROOTFS}" "-R ${IMAGE_ROOTFS} $opts" 1 + ;; + *) + bbfatal "Invalid command in EXTRA_USERS_PARAMS: $cmd" + ;; + esac + # iterate to the next setting + setting=`echo $remaining | cut -d ';' -f1` + remaining=`echo $remaining | cut -d ';' -f2-` + done +}
Signature · 1 line
1.7.9.5
This seems to have caused a failure:
Quoted 11 lines
ERROR: Function failed:
useradd_sysroot(log file is located at/srv/hdd/builds/world/tmp/work/mips32-poky-linux/avahi/0.6.31-r6.1/temp/log.do_install.1523)
ERROR: Logfile of failure stored in:/srv/hdd/builds/world/tmp/work/mips32-poky-linux/avahi/0.6.31-r6.1/temp/log.do_install.1523Log data follows:| DEBUG: SITE files ['endian-big', 'bit-32', 'mips-common', 'common-linux', 'common-glibc', 'mips-linux', 'common'] | DEBUG: Executing shell function useradd_sysroot | Running useradd commands... | NOTE: Performing useradd with [--root /srv/hdd/builds/world/tmp/sysroots/qemumips --system --home /var/run/avahi-daemon --no-create-home --shell /bin/false --user-group avahi] and 10 times of retry | WARNING: user avahi already exists, not re-creating it | NOTE: Performing useradd with [--root /srv/hdd/builds/world/tmp/sysroots/qemumips --system --home /var/run/avahi-autoipd --no-create-home --shell /bin/false --user-group -c "Avahi autoip daemon" avahi-autoipd] and 10 times of retry | /srv/hdd/builds/world/tmp/work/mips32-poky-linux/avahi/0.6.31-r6.1/temp/run.useradd_sysroot.1523: 260: local: daemon:/var/run/avahi-autoipd:/bin/false: bad variable name | ERROR: Function failed: useradd_sysroot (log file is located at /srv/hdd/builds/world/tmp/work/mips32-poky-linux/avahi/0.6.31-r6.1/temp/log.do_install.1523)
Quoted 2 lines
ERROR: Task 6375 (
/srv/hdd/poky/meta/recipes-connectivity/avahi/avahi_0.6.31.bb,do_install) failed with exit code '1'
NOTE: Tasks Summary: Attempted 11354 tasks of which 8540 didn't need to be rerun and 2 failed.
Sau!
Quoted 33 lines · On 07/11/2013 08:10 PM, [email protected] wrote:
From: Chen Qi <[email protected]>
Changes from V3:
1. naming changes
rename userbase.bbclass to useradd_base.bbclass
rename usersettings.bbclass to extrausers.bbclass
renameUSER_GROUP_SETTINGStoEXTRA_USERS_PARAMS
2. Add an example in the extrauser.bbclass to show how to use this bbclass
3. Report the incorrect setting inEXTRA_USERS_PARAMS.Note the branch has also changed from ChenQi/user_group_settings to ChenQi/extrausers.
The following changes since commit
a63229917a5708de2d161aba0d67168ce0da6365:meta-yocto-bsp: update reference board SRCREVs (2013-07-10 09:45:51 +0100)are available in the git repository at:
git://git.pokylinux.org/poky-contribChenQi/extrausers
http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=ChenQi/extrausersChen Qi (3):
useradd_base.bbclass: add a new bbclass
useradd.bbclass: code refactor
extrausers.bbclass: add a new bbclassmeta/classes/extrausers.bbclass | 61 ++++++++++ meta/classes/useradd.bbclass | 99 ++-------------- meta/classes/useradd_base.bbclass | 230 +++++++++++++++++++++++++++++++++++++ 3 files changed, 299 insertions(+), 91 deletions(-)create mode 100644 meta/classes/extrausers.bbclass create mode 100644 meta/classes/useradd_base.bbclass
Quoted 3 lines · Saul Wold
This seems to have caused a failure:
Sorry for all these troubles.
I tested this patchset with IMAGE_INSTALL_append = " useradd-example xuser-account'. So it didn't encounter a situation where white spaces appear in /etc/passwd.
Now patch V5 has been sent out to OE.
It has been tested with IMAGE_INSTALL_append = " useradd-example pulseaudio avahi xuser-account openssh ppp-dialin dbus".
Thanks,
Chen Qi
Quoted 58 lines
Quoted 9 lines
ERROR: Function failed:
useradd_sysroot(log file is located at/srv/hdd/builds/world/tmp/work/mips32-poky-linux/avahi/0.6.31-r6.1/temp/log.do_install.1523)
ERROR: Logfile of failure stored in:/srv/hdd/builds/world/tmp/work/mips32-poky-linux/avahi/0.6.31-r6.1/temp/log.do_install.1523Log data follows:| DEBUG: SITE files ['endian-big', 'bit-32', 'mips-common', 'common-linux', 'common-glibc', 'mips-linux', 'common'] | DEBUG: Executing shell function useradd_sysroot | Running useradd commands... | NOTE: Performing useradd with [--root /srv/hdd/builds/world/tmp/sysroots/qemumips --system --home /var/run/avahi-daemon --no-create-home --shell /bin/false --user-group avahi] and 10 times of retry | WARNING: user avahi already exists, not re-creating it | NOTE: Performing useradd with [--root /srv/hdd/builds/world/tmp/sysroots/qemumips --system --home /var/run/avahi-autoipd --no-create-home --shell /bin/falseQuoted 6 lines
--user-group -c "Avahi autoip
daemon" avahi-autoipd] and 10 times of retry
|/srv/hdd/builds/world/tmp/work/mips32-poky-linux/avahi/0.6.31-r6.1/temp/run.useradd_sysroot.1523: 260: local: daemon:/var/run/avahi-autoipd:/bin/false: bad variable name | ERROR: Function failed:useradd_sysroot(log file is located at/srv/hdd/builds/world/tmp/work/mips32-poky-linux/avahi/0.6.31-r6.1/temp/log.do_install.1523)
ERROR: Task 6375 (/srv/hdd/poky/meta/recipes-connectivity/avahi/avahi_0.6.31.bb,do_install) failed with exit code '1'
NOTE: Tasks Summary: Attempted 11354 tasks of which 8540 didn't need to be rerun and 2 failed.Sau!
Quoted 35 lines · On 07/11/2013 08:10 PM, [email protected] wrote:
From: Chen Qi <[email protected]>
Changes from V3:
1. naming changes
rename userbase.bbclass to useradd_base.bbclass
rename usersettings.bbclass to extrausers.bbclass
renameUSER_GROUP_SETTINGStoEXTRA_USERS_PARAMS
2. Add an example in the extrauser.bbclass to show how to use this bbclass
3. Report the incorrect setting inEXTRA_USERS_PARAMS.Note the branch has also changed from ChenQi/user_group_settings to ChenQi/extrausers.
The following changes since commit
a63229917a5708de2d161aba0d67168ce0da6365:meta-yocto-bsp: update reference board SRCREVs (2013-07-10
09:45:51 +0100)are available in the git repository at:
git://git.pokylinux.org/poky-contribChenQi/extrausers
http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=ChenQi/extrausersChen Qi (3):
useradd_base.bbclass: add a new bbclass
useradd.bbclass: code refactor
extrausers.bbclass: add a new bbclassmeta/classes/extrausers.bbclass | 61 ++++++++++ meta/classes/useradd.bbclass | 99 ++-------------- meta/classes/useradd_base.bbclass | 230 +++++++++++++++++++++++++++++++++++++ 3 files changed, 299 insertions(+), 91 deletions(-)create mode 100644 meta/classes/extrausers.bbclass create mode 100644 meta/classes/useradd_base.bbclass