Message ID | 20230726045920.1542471-1-felix.moessbauer@siemens.com |
---|---|
State | Superseded, archived |
Headers | show |
Series | [1/1] fix group splitting in user creation | expand |
On 7/26/23 06:59, 'Felix Moessbauer' via isar-users wrote: > There is a bug when converting the USER_<foo>[groups] configuration > from the bitbake format (space separated) to the format useradd > expects (comma separated). We cannot simply replace spaces with commas, > as then multiple spaces in a row would create multiple commas. Instead, > we need to split it first into the tokens and then join these tokens by > comma. > > Signed-off-by: Felix Moessbauer <felix.moessbauer@siemens.com> > --- > meta/classes/image-account-extension.bbclass | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/meta/classes/image-account-extension.bbclass b/meta/classes/image-account-extension.bbclass > index e783c135..6f67f459 100644 > --- a/meta/classes/image-account-extension.bbclass > +++ b/meta/classes/image-account-extension.bbclass > @@ -98,10 +98,10 @@ def image_create_users(d: "DataSmart") -> None: > add_user_option("--comment", "comment") > add_user_option("--shell", "shell") > > - groups = d.getVarFlag(user_entry, "groups") or "" > + groups = (d.getVarFlag(user_entry, "groups") or "").split() > if groups: > args.append("--groups") > - args.append(groups.replace(' ', ',')) > + args.append(','.join(groups)) > > flags = (d.getVarFlag(user_entry, "flags") or "").split() > I haved tested the patch. Looks good to me. Is it possible to add unittest for this? Quirin
diff --git a/meta/classes/image-account-extension.bbclass b/meta/classes/image-account-extension.bbclass index e783c135..6f67f459 100644 --- a/meta/classes/image-account-extension.bbclass +++ b/meta/classes/image-account-extension.bbclass @@ -98,10 +98,10 @@ def image_create_users(d: "DataSmart") -> None: add_user_option("--comment", "comment") add_user_option("--shell", "shell") - groups = d.getVarFlag(user_entry, "groups") or "" + groups = (d.getVarFlag(user_entry, "groups") or "").split() if groups: args.append("--groups") - args.append(groups.replace(' ', ',')) + args.append(','.join(groups)) flags = (d.getVarFlag(user_entry, "flags") or "").split()
There is a bug when converting the USER_<foo>[groups] configuration from the bitbake format (space separated) to the format useradd expects (comma separated). We cannot simply replace spaces with commas, as then multiple spaces in a row would create multiple commas. Instead, we need to split it first into the tokens and then join these tokens by comma. Signed-off-by: Felix Moessbauer <felix.moessbauer@siemens.com> --- meta/classes/image-account-extension.bbclass | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)