* [PATCHv2 0/1] Fix for useradd-staticids.bbclass
@ 2015-10-24 9:50 Peter Kjellerstedt
2015-10-24 9:50 ` [PATCHv2 1/1] useradd-staticids.bbclass: Do not require trailing colons Peter Kjellerstedt
0 siblings, 1 reply; 2+ messages in thread
From: Peter Kjellerstedt @ 2015-10-24 9:50 UTC (permalink / raw)
To: openembedded-core; +Cc: Christopher Larson
This change corrects useradd-staticids.bbclass to allow user and group
files without trailing colons. Previously one had to write:
foo::123::::
in the group file to define the static UID for a user or one would
receive a Python exception. With this change applied one can instead
write:
foo::123
The change is of course backwards compatible so the old format is
still valid.
//Peter
The following changes since commit 505a82673ac2487df5ea343a6422c2fc47018831:
build-appliance-image: Update to jethro head revision (2015-10-21 23:13:11 +0100)
are available in the git repository at:
git://git.yoctoproject.org/poky-contrib pkj/useradd_skip_colons
http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=pkj/useradd_skip_colons
Peter Kjellerstedt (1):
useradd-staticids.bbclass: Do not require trailing colons
meta/classes/useradd-staticids.bbclass | 16 ++++++++++++++--
1 file changed, 14 insertions(+), 2 deletions(-)
--
2.1.0
^ permalink raw reply [flat|nested] 2+ messages in thread
* [PATCHv2 1/1] useradd-staticids.bbclass: Do not require trailing colons
2015-10-24 9:50 [PATCHv2 0/1] Fix for useradd-staticids.bbclass Peter Kjellerstedt
@ 2015-10-24 9:50 ` Peter Kjellerstedt
0 siblings, 0 replies; 2+ messages in thread
From: Peter Kjellerstedt @ 2015-10-24 9:50 UTC (permalink / raw)
To: openembedded-core; +Cc: Christopher Larson
Before, the users and groups specified in the passwd file and the
groups file had to have trailing colons to make sure there were enough
elements in the definitions, or bitbake would throw a Python
exception. After this change one can omit the trailing colons, which
especially simplifies passwd files used only to specify static UIDs.
Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
---
meta/classes/useradd-staticids.bbclass | 16 ++++++++++++++--
1 file changed, 14 insertions(+), 2 deletions(-)
diff --git a/meta/classes/useradd-staticids.bbclass b/meta/classes/useradd-staticids.bbclass
index 421a70a..924d6ea 100644
--- a/meta/classes/useradd-staticids.bbclass
+++ b/meta/classes/useradd-staticids.bbclass
@@ -2,6 +2,7 @@
# we need a function to reformat the params based on a static file
def update_useradd_static_config(d):
import argparse
+ import itertools
import re
class myArgumentParser( argparse.ArgumentParser ):
@@ -16,6 +17,11 @@ def update_useradd_static_config(d):
def error(self, message):
raise bb.build.FuncFailed(message)
+ def list_extend(iterable, length, obj = None):
+ """Ensure that iterable is the specified length by extending with obj
+ and return it as a list"""
+ return list(itertools.islice(itertools.chain(iterable, itertools.repeat(obj)), length))
+
# We parse and rewrite the useradd components
def rewrite_useradd(params):
# The following comes from --help on useradd from shadow
@@ -84,7 +90,10 @@ def update_useradd_static_config(d):
for line in f:
if line.startswith('#'):
continue
- field = line.rstrip().split(":")
+ # Make sure there always are at least seven elements in
+ # the field list. This allows for leaving out trailing
+ # colons in the passwd file.
+ field = list_extend(line.rstrip().split(":"), 7)
if field[0] == uaargs.LOGIN:
if uaargs.uid and field[2] and (uaargs.uid != field[2]):
bb.warn("%s: Changing username %s's uid from (%s) to (%s), verify configuration files!" % (d.getVar('PN', True), uaargs.LOGIN, uaargs.uid, field[2]))
@@ -220,7 +229,10 @@ def update_useradd_static_config(d):
for line in f:
if line.startswith('#'):
continue
- field = line.rstrip().split(":")
+ # Make sure there always are at least four elements in
+ # the field list. This allows for leaving out trailing
+ # colons in the group file.
+ field = list_extend(line.rstrip().split(":"), 4)
if field[0] == gaargs.GROUP and field[2]:
if gaargs.gid and (gaargs.gid != field[2]):
bb.warn("%s: Changing groupname %s's gid from (%s) to (%s), verify configuration files!" % (d.getVar('PN', True), gaargs.GROUP, gaargs.gid, field[2]))
--
2.1.0
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2015-10-24 9:50 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-10-24 9:50 [PATCHv2 0/1] Fix for useradd-staticids.bbclass Peter Kjellerstedt
2015-10-24 9:50 ` [PATCHv2 1/1] useradd-staticids.bbclass: Do not require trailing colons Peter Kjellerstedt
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox