From: ChenQi <Qi.Chen@windriver.com>
To: Saul Wold <sgw@linux.intel.com>
Cc: qingtao.cao@windriver.com, openembedded-core@lists.openembedded.org
Subject: Re: [PATCH V5 3/3] extrausers.bbclass: add a new bbclass
Date: Wed, 17 Jul 2013 12:44:09 +0800 [thread overview]
Message-ID: <51E62119.5020704@windriver.com> (raw)
In-Reply-To: <51E5DBA6.4030300@linux.intel.com>
On 07/17/2013 07:47 AM, Saul Wold wrote:
> On 07/15/2013 11:27 PM, Qi.Chen@windriver.com wrote:
>> From: Chen Qi <Qi.Chen@windriver.com>
>>
>> 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]
>>
>> Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
>> ---
>> meta/classes/extrausers.bbclass | 61
>> +++++++++++++++++++++++++++++++++++++++
>> 1 file changed, 61 insertions(+)
>> create mode 100644 meta/classes/extrausers.bbclass
>>
>> diff --git a/meta/classes/extrausers.bbclass
>> b/meta/classes/extrausers.bbclass
>> new file mode 100644
>> index 0000000..ec66913
>> --- /dev/null
>> +++ b/meta/classes/extrausers.bbclass
>> @@ -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; \
>> +# "
>> +
> Why use a , here to separate the command from the parameters, you
> already have the ; to separate commands while not use the first item
> for the command and the rest for the parameters.
>
> Sau!
>
I agree.
I'll fix this and send out V6. I'll also change the example in meta-yocto.
Thanks,
Chen Qi
>> +
>> +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
>> +}
>>
>
>
next prev parent reply other threads:[~2013-07-17 4:44 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-07-16 6:27 [PATCH V5 0/3] Add a method for image level user/group configuration Qi.Chen
2013-07-16 6:27 ` [PATCH V5 1/3] useradd_base.bbclass: add a new bbclass Qi.Chen
2013-07-16 6:27 ` [PATCH V5 2/3] useradd.bbclass: code refactor Qi.Chen
2013-07-16 6:27 ` [PATCH V5 3/3] extrausers.bbclass: add a new bbclass Qi.Chen
2013-07-16 23:47 ` Saul Wold
2013-07-17 4:44 ` ChenQi [this message]
2013-07-16 21:40 ` [PATCH V5 0/3] Add a method for image level user/group configuration Saul Wold
2013-07-17 5:27 ` ChenQi
2013-07-17 5:41 ` ChenQi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=51E62119.5020704@windriver.com \
--to=qi.chen@windriver.com \
--cc=openembedded-core@lists.openembedded.org \
--cc=qingtao.cao@windriver.com \
--cc=sgw@linux.intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.