[OE-core] [PATCH] useradd-staticids.bbclass: Support recipes specifying static IDs

Peter Kjellerstedt peter.kjellerstedt at axis.com
Mon Mar 13 16:11:14 UTC 2017


> -----Original Message-----
> From: Mark Hatle [mailto:mark.hatle at windriver.com]
> Sent: den 13 mars 2017 14:56
> To: Peter Kjellerstedt; openembedded-core at lists.openembedded.org
> Subject: Re: [OE-core] [PATCH] useradd-staticids.bbclass: Support
> recipes specifying static IDs
> 
> On 3/10/17 11:27 PM, Peter Kjellerstedt wrote:
> > If this bblcass is used and a recipe specifies a static ID for a
> > user/group as part of the USERADD_PARAM_${PN} or GROUPADD_PARAM_${PN},
> > the build would fail with and error like this if there was no
> > corresponding ID in the passwd/group files specified via
> > USERADD_UID_TABLES/USERADD_GID_TABLES:
> 
> If the system is set in warning mode, it should warn if this is done
> (but allow it).
> 
> If the system is set to error mode, it should error.
> 
> The useradd-staticids class is expecting the files (tables) to contain
> all of the entries.  This is specifically to avoid the situation where 
> a new recipe is introduced that adds a new user or group (dynamic or 
> static -- static because it could conflict with one of your existing 
> static entries.)

AFAICT, even before my rewrite of much of this code in 3149319a and 
subsequent correction in adc0f830, if a static ID was specified as part 
of USERADD_PARAM_${PN} then no error would be issued. However, we can 
certainly change the code to always fail/warn if no ID is specified 
in any of the passwd/groups files. It should just be a matter of 
removing the if statements preceding the calls to handle_missing_id() 
below. (I will do some verification and send an updated patch tomorrow 
if this is the way the class should work.)

> I agree the error message below looks wrong, do the existing warning/
> error messages about it not being defined int he useradd tables still 
> occur with this patch?

The error message below occurred because before my fix it forgot all 
the parameters that were specified in USERADD_PARAM_${PN} when it took 
the continue.

> --Mark
> 
> >   ERROR: meta-oe/recipes-support/postgresql/postgresql_9.4.11.bb:
> >   meta-oe/recipes-support/postgresql/postgresql_9.4.11.bb inherits
> >   useradd but doesn't set USERADD_PARAM, GROUPADD_PARAM or
> >   GROUPMEMS_PARAM for package postgresql
> >
> > Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt at axis.com>
> > ---
> >  meta/classes/useradd-staticids.bbclass | 2 ++
> >  1 file changed, 2 insertions(+)
> >
> > diff --git a/meta/classes/useradd-staticids.bbclass
> b/meta/classes/useradd-staticids.bbclass
> > index a65c3f69cb..9b194df490 100644
> > --- a/meta/classes/useradd-staticids.bbclass
> > +++ b/meta/classes/useradd-staticids.bbclass
> > @@ -125,6 +125,7 @@ def update_useradd_static_config(d):
> >              if uaargs.LOGIN not in users:
> >                  if not uaargs.uid or not uaargs.uid.isdigit() or not uaargs.gid:
> >                      handle_missing_id(uaargs.LOGIN, 'user', pkg)
> > +                newparams.append(param)
> >                  continue
> >
> >              field = users[uaargs.LOGIN]
> > @@ -260,6 +261,7 @@ def update_useradd_static_config(d):
> >              if gaargs.GROUP not in groups:
> >                  if not gaargs.gid or not gaargs.gid.isdigit():
> >                      handle_missing_id(gaargs.GROUP, 'group', pkg)
> > +                newparams.append(param)
> >                  continue
> >
> >              field = groups[gaargs.GROUP]
> >




More information about the Openembedded-core mailing list