summaryrefslogtreecommitdiff
path: root/meta/classes
diff options
context:
space:
mode:
Diffstat (limited to 'meta/classes')
-rw-r--r--meta/classes/useradd-staticids.bbclass50
1 files changed, 30 insertions, 20 deletions
diff --git a/meta/classes/useradd-staticids.bbclass b/meta/classes/useradd-staticids.bbclass
index 689c29c53f..5897fed20d 100644
--- a/meta/classes/useradd-staticids.bbclass
+++ b/meta/classes/useradd-staticids.bbclass
@@ -96,27 +96,37 @@ def update_useradd_static_config(d):
# is used, and we disable the user_group option.
#
uaargs.groupname = [uaargs.gid, uaargs.LOGIN][not uaargs.gid or uaargs.user_group]
- uaargs.user_group = False
+ uaargs.groupid = [uaargs.gid, uaargs.groupname][not uaargs.gid]
+ uaargs.groupid = [field[3], uaargs.groupid][not field[3]]
- uaargs.gid = [uaargs.gid, uaargs.groupname][not uaargs.gid]
- uaargs.gid = [field[3], uaargs.gid][not field[3]]
-
- if uaargs.groupname == uaargs.gid:
- # Nothing to do...
- pass
- elif (uaargs.groupname and uaargs.groupname.isdigit()) and (uaargs.gid and uaargs.gid.isdigit()) and (uaargs.groupname != uaargs.gid):
- # We want to add a group, but we don't know it's name... so we can't add the group...
- # We have to assume the group has previously been added or we'll fail on the adduser...
- # Note: specifying the actual gid is very rare in OE, usually the group name is specified.
- bb.warn("%s: Changing gid for login %s from (%s) to (%s), verify configuration files!" % (d.getVar('PN', True), uaargs.LOGIN, uaargs.groupname, uaargs.gid))
- elif uaargs.groupname and (uaargs.gid and uaargs.gid.isdigit()):
- bb.debug(1, "Adding group %s gid (%s)!" % (uaargs.groupname, uaargs.gid))
- groupadd = d.getVar("GROUPADD_PARAM_%s" % pkg, True)
- newgroup = "-g %s %s" % (uaargs.gid, uaargs.groupname)
- if groupadd:
- d.setVar("GROUPADD_PARAM_%s" % pkg, "%s ; %s" % (groupadd, newgroup))
- else:
- d.setVar("GROUPADD_PARAM_%s" % pkg, newgroup)
+ if not uaargs.gid or uaargs.gid != uaargs.groupid:
+ if (uaargs.groupid and uaargs.groupid.isdigit()) and (uaargs.groupname and uaargs.groupname.isdigit()) and (uaargs.groupid != uaargs.groupname):
+ # We want to add a group, but we don't know it's name... so we can't add the group...
+ # We have to assume the group has previously been added or we'll fail on the adduser...
+ # Note: specifying the actual gid is very rare in OE, usually the group name is specified.
+ bb.warn("%s: Changing gid for login %s from (%s) to (%s), verify configuration files!" % (d.getVar('PN', True), uaargs.LOGIN, uaargs.groupname, uaargs.gid))
+ elif (uaargs.groupid and not uaargs.groupid.isdigit()) and uaargs.groupid == uaargs.groupname:
+ # We don't have a number, so we have to add a name
+ bb.debug(1, "Adding group %s!" % (uaargs.groupname))
+ uaargs.gid = uaargs.groupid
+ uaargs.user_group = False
+ groupadd = d.getVar("GROUPADD_PARAM_%s" % pkg, True)
+ newgroup = "%s %s" % (['', ' --system'][uaargs.system], uaargs.groupname)
+ if groupadd:
+ d.setVar("GROUPADD_PARAM_%s" % pkg, "%s ; %s" % (groupadd, newgroup))
+ else:
+ d.setVar("GROUPADD_PARAM_%s" % pkg, newgroup)
+ elif uaargs.groupname and (uaargs.groupid and uaargs.groupid.isdigit()):
+ # We have a group name and a group number to assign it to
+ bb.debug(1, "Adding group %s gid (%s)!" % (uaargs.groupname, uaargs.groupid))
+ uaargs.gid = uaargs.groupid
+ uaargs.user_group = False
+ groupadd = d.getVar("GROUPADD_PARAM_%s" % pkg, True)
+ newgroup = "-g %s %s" % (uaargs.gid, uaargs.groupname)
+ if groupadd:
+ d.setVar("GROUPADD_PARAM_%s" % pkg, "%s ; %s" % (groupadd, newgroup))
+ else:
+ d.setVar("GROUPADD_PARAM_%s" % pkg, newgroup)
uaargs.comment = ["'%s'" % field[4], uaargs.comment][not field[4]]
uaargs.home_dir = [field[5], uaargs.home_dir][not field[5]]