summaryrefslogtreecommitdiffstats
path: root/meta
diff options
context:
space:
mode:
authorMark Hatle <mark.hatle@windriver.com>2014-02-10 13:28:25 -0600
committerRichard Purdie <richard.purdie@linuxfoundation.org>2014-02-11 12:04:38 +0000
commit39d9414b952027f3d07fe0929c9ad29b9c2d40c1 (patch)
tree9d473c906d9d2de5bad0c367646b1a7c5824568a /meta
parenta146d50242e2ba7779920da6bc7d4961f08ed195 (diff)
downloadpoky-39d9414b952027f3d07fe0929c9ad29b9c2d40c1.tar.gz
useradd-staticids: Fix groupadd when --user-group is selected
When --user-group is selected (it's on by default as well) we want to translate that to a groupname and disable the --user-group. Before we just disabled --user-group, but didn't always add the group to the system. This change ensures that we add the group (as long as we have enough information to actually add the group), and we disable --user-group in that case. If a static groupid is not specified we continue to use the groupname, but via an explicit groupadd. (From OE-Core rev: ae83db0fdcf0b807ffdfc901f4d1c463fffee82a) Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta')
-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):
96 # is used, and we disable the user_group option. 96 # is used, and we disable the user_group option.
97 # 97 #
98 uaargs.groupname = [uaargs.gid, uaargs.LOGIN][not uaargs.gid or uaargs.user_group] 98 uaargs.groupname = [uaargs.gid, uaargs.LOGIN][not uaargs.gid or uaargs.user_group]
99 uaargs.user_group = False 99 uaargs.groupid = [uaargs.gid, uaargs.groupname][not uaargs.gid]
100 uaargs.groupid = [field[3], uaargs.groupid][not field[3]]
100 101
101 uaargs.gid = [uaargs.gid, uaargs.groupname][not uaargs.gid] 102 if not uaargs.gid or uaargs.gid != uaargs.groupid:
102 uaargs.gid = [field[3], uaargs.gid][not field[3]] 103 if (uaargs.groupid and uaargs.groupid.isdigit()) and (uaargs.groupname and uaargs.groupname.isdigit()) and (uaargs.groupid != uaargs.groupname):
103 104 # We want to add a group, but we don't know it's name... so we can't add the group...
104 if uaargs.groupname == uaargs.gid: 105 # We have to assume the group has previously been added or we'll fail on the adduser...
105 # Nothing to do... 106 # Note: specifying the actual gid is very rare in OE, usually the group name is specified.
106 pass 107 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))
107 elif (uaargs.groupname and uaargs.groupname.isdigit()) and (uaargs.gid and uaargs.gid.isdigit()) and (uaargs.groupname != uaargs.gid): 108 elif (uaargs.groupid and not uaargs.groupid.isdigit()) and uaargs.groupid == uaargs.groupname:
108 # We want to add a group, but we don't know it's name... so we can't add the group... 109 # We don't have a number, so we have to add a name
109 # We have to assume the group has previously been added or we'll fail on the adduser... 110 bb.debug(1, "Adding group %s!" % (uaargs.groupname))
110 # Note: specifying the actual gid is very rare in OE, usually the group name is specified. 111 uaargs.gid = uaargs.groupid
111 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)) 112 uaargs.user_group = False
112 elif uaargs.groupname and (uaargs.gid and uaargs.gid.isdigit()): 113 groupadd = d.getVar("GROUPADD_PARAM_%s" % pkg, True)
113 bb.debug(1, "Adding group %s gid (%s)!" % (uaargs.groupname, uaargs.gid)) 114 newgroup = "%s %s" % (['', ' --system'][uaargs.system], uaargs.groupname)
114 groupadd = d.getVar("GROUPADD_PARAM_%s" % pkg, True) 115 if groupadd:
115 newgroup = "-g %s %s" % (uaargs.gid, uaargs.groupname) 116 d.setVar("GROUPADD_PARAM_%s" % pkg, "%s ; %s" % (groupadd, newgroup))
116 if groupadd: 117 else:
117 d.setVar("GROUPADD_PARAM_%s" % pkg, "%s ; %s" % (groupadd, newgroup)) 118 d.setVar("GROUPADD_PARAM_%s" % pkg, newgroup)
118 else: 119 elif uaargs.groupname and (uaargs.groupid and uaargs.groupid.isdigit()):
119 d.setVar("GROUPADD_PARAM_%s" % pkg, newgroup) 120 # We have a group name and a group number to assign it to
121 bb.debug(1, "Adding group %s gid (%s)!" % (uaargs.groupname, uaargs.groupid))
122 uaargs.gid = uaargs.groupid
123 uaargs.user_group = False
124 groupadd = d.getVar("GROUPADD_PARAM_%s" % pkg, True)
125 newgroup = "-g %s %s" % (uaargs.gid, uaargs.groupname)
126 if groupadd:
127 d.setVar("GROUPADD_PARAM_%s" % pkg, "%s ; %s" % (groupadd, newgroup))
128 else:
129 d.setVar("GROUPADD_PARAM_%s" % pkg, newgroup)
120 130
121 uaargs.comment = ["'%s'" % field[4], uaargs.comment][not field[4]] 131 uaargs.comment = ["'%s'" % field[4], uaargs.comment][not field[4]]
122 uaargs.home_dir = [field[5], uaargs.home_dir][not field[5]] 132 uaargs.home_dir = [field[5], uaargs.home_dir][not field[5]]