[OE-core] [PATCH V3 3/3] usersettings.bbclass: add a new bbclass
Mark Hatle
mark.hatle at windriver.com
Thu Jul 11 15:02:41 UTC 2013
On 7/11/13 6:11 AM, Qi.Chen at windriver.com wrote:
> From: Chen Qi <Qi.Chen at windriver.com>
>
> This class is dedicated to image level user/group configuration.
> It inherits userbase.bbclass.
>
> Users need to inherit this class in their layers or local.conf to
> make the setting of USER_GROUP_SETTINGS effective.
>
> For detailed configuration format of USER_GROUP_SETTINGS, please
> refer to local.conf.sample.extended.
>
> [YOCTO #4074]
>
> Signed-off-by: Chen Qi <Qi.Chen at windriver.com>
> ---
> meta/classes/usersettings.bbclass | 48 +++++++++++++++++++++++++++++++++++++
> 1 file changed, 48 insertions(+)
> create mode 100644 meta/classes/usersettings.bbclass
>
> diff --git a/meta/classes/usersettings.bbclass b/meta/classes/usersettings.bbclass
> new file mode 100644
> index 0000000..e5a5156
> --- /dev/null
> +++ b/meta/classes/usersettings.bbclass
> @@ -0,0 +1,48 @@
> +# This bbclass is mainly used for image level user/group configuration.
> +# Inherit this class if you want to make USER_GROUP_SETTINGS effective.
> +inherit userbase
One request, in the comment above, please put some examples of the using the new
functionality. It's not completely clear to me looking at this what may be
expected of the user.
--Mark
> +
> +IMAGE_INSTALL_append += "${@['', 'base-passwd shadow'][bool(d.getVar('USER_GROUP_SETTINGS', True))]}"
> +
> +# Image level user / group settings
> +ROOTFS_POSTPROCESS_COMMAND_append = " set_user_group;"
> +
> +# Image level user / group settings
> +set_user_group () {
> + user_group_settings="${USER_GROUP_SETTINGS}"
> + 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
> + action=`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 $action 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 "Incorrect setting for USER_GROUP_SETTINGS"
> + ;;
> + esac
> + # iterate to the next setting
> + setting=`echo $remaining | cut -d ';' -f1`
> + remaining=`echo $remaining | cut -d ';' -f2-`
> + done
> +}
>
More information about the Openembedded-core
mailing list