* [PATCH 0/4] More useradd cleanups
@ 2011-11-09 2:56 Scott Garman
2011-11-09 2:56 ` [PATCH 1/4] useradd.bbclass: only modify packages in USERADD_PACKAGES Scott Garman
` (4 more replies)
0 siblings, 5 replies; 6+ messages in thread
From: Scott Garman @ 2011-11-09 2:56 UTC (permalink / raw)
To: openembedded-core
Hello,
Richard pointed out that USERADDPN is no longer needed in
useradd.bbclass. While removing that, I noticed that I was actually
injecting the user/group preinst script into *all* packages whose
recipe inherits useradd. That's not what we want, and is the reason
for the USERADD_PACKAGES variable. So I refactored the class to fix
that and clarified the useradd-example recipe documentation.
Finally, I added another check to avoid modifying -nativesdk packages.
The following changes since commit 25fae81538a92e15eab3fc169ebce44505f67839:
python: skip setup.py 'import check' when cross-compiling (2011-11-08 21:44:23 +0000)
are available in the git repository at:
git://git.pokylinux.org/poky-contrib sgarman/useradd-cleanup-final
http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=sgarman/useradd-cleanup-final
Scott Garman (4):
useradd.bbclass: only modify packages in USERADD_PACKAGES
useradd.bbclass: do not modify -nativesdk packages
useradd-example.bb: update example documentation comments
avahi: remove USERADDPN
.../recipes-skeleton/useradd/useradd-example.bb | 9 ++--
meta/classes/useradd.bbclass | 45 ++++++++------------
meta/recipes-connectivity/avahi/avahi.inc | 1 -
3 files changed, 22 insertions(+), 33 deletions(-)
--
1.7.5.4
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 1/4] useradd.bbclass: only modify packages in USERADD_PACKAGES
2011-11-09 2:56 [PATCH 0/4] More useradd cleanups Scott Garman
@ 2011-11-09 2:56 ` Scott Garman
2011-11-09 2:56 ` [PATCH 2/4] useradd.bbclass: do not modify -nativesdk packages Scott Garman
` (3 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Scott Garman @ 2011-11-09 2:56 UTC (permalink / raw)
To: openembedded-core
Previously we injected the user/group preinstall script into all
output packages. This fixes that so that only packages listed in
USERADD_PACKAGES get modified.
It also removes the USERADDPN variable, which is no longer needed.
Signed-off-by: Scott Garman <scott.a.garman@intel.com>
---
meta/classes/useradd.bbclass | 42 ++++++++++++++++--------------------------
1 files changed, 16 insertions(+), 26 deletions(-)
diff --git a/meta/classes/useradd.bbclass b/meta/classes/useradd.bbclass
index a8a1c14..3b2d1db 100644
--- a/meta/classes/useradd.bbclass
+++ b/meta/classes/useradd.bbclass
@@ -1,5 +1,3 @@
-USERADDPN ?= "${PN}"
-
# base-passwd-cross provides the default passwd and group files in the
# target sysroot, and shadow -native and -sysroot provide the utilities
# and support files needed to add and modify user and group accounts
@@ -106,30 +104,29 @@ SYSROOTPOSTFUNC_virtclass-nativesdk = ""
# Recipe parse-time sanity checks
def update_useradd_after_parse(d):
- if not d.getVar('USERADD_PACKAGES', False):
- if not d.getVar('USERADD_PARAM', False) and not d.getVar('GROUPADD_PARAM', False):
- raise bb.build.FuncFailed, "%s inherits useradd but doesn't set USERADD_PARAM or GROUPADD_PARAM" % bb.data.getVar('FILE', d)
+ useradd_packages = d.getVar('USERADD_PACKAGES', True)
+
+ if not useradd_packages:
+ raise bb.build.FuncFailed, "%s inherits useradd but doesn't set USERADD_PACKAGES" % bb.data.getVar('FILE', d)
+
+ for pkg in useradd_packages.split():
+ if not d.getVar('USERADD_PARAM_%s' % pkg, True) and not d.getVar('GROUPADD_PARAM_%s' % pkg, True):
+ raise bb.build.FuncFailed, "%s inherits useradd but doesn't set USERADD_PARAM or GROUPADD_PARAM for package %s" % (bb.data.getVar('FILE', d), pkg)
python __anonymous() {
update_useradd_after_parse(d)
}
# Return a single [GROUP|USER]ADD_PARAM formatted string which includes the
-# [group|user]add parameters for all packages in this recipe
+# [group|user]add parameters for all USERADD_PACKAGES in this recipe
def get_all_cmd_params(d, cmd_type):
import string
param_type = cmd_type.upper() + "ADD_PARAM_%s"
params = []
- pkgs = d.getVar('USERADD_PACKAGES', True)
- if not pkgs:
- pkgs = d.getVar('USERADDPN', True)
- packages = (d.getVar('PACKAGES', True) or "").split()
- if packages and pkgs not in packages:
- pkgs = packages[0]
-
- for pkg in pkgs.split():
+ useradd_packages = d.getVar('USERADD_PACKAGES', True) or ""
+ for pkg in useradd_packages.split():
param = d.getVar(param_type % pkg, True)
if param:
params.append(param)
@@ -156,17 +153,10 @@ fakeroot python populate_packages_prepend () {
rdepends = d.getVar("RDEPENDS_%s" % pkg, True) or ""
rdepends += " base-passwd shadow"
bb.data.setVar("RDEPENDS_%s" % pkg, rdepends, d)
-
- # We add the user/group calls to all packages to allow any package
- # to contain files owned by the users/groups defined in the recipe.
- # The user/group addition code is careful not to create duplicate
- # entries, so this is safe.
- pkgs = d.getVar('USERADD_PACKAGES', True)
- if not pkgs:
- pkgs = d.getVar('USERADDPN', True)
- packages = (d.getVar('PACKAGES', True) or "").split()
- if packages and pkgs not in packages:
- pkgs = packages[0]
- for pkg in pkgs.split():
+
+ # Add the user/group preinstall scripts and RDEPENDS requirements
+ # to packages specified by USERADD_PACKAGES
+ useradd_packages = d.getVar('USERADD_PACKAGES', True) or ""
+ for pkg in useradd_packages.split():
update_useradd_package(pkg)
}
--
1.7.5.4
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 2/4] useradd.bbclass: do not modify -nativesdk packages
2011-11-09 2:56 [PATCH 0/4] More useradd cleanups Scott Garman
2011-11-09 2:56 ` [PATCH 1/4] useradd.bbclass: only modify packages in USERADD_PACKAGES Scott Garman
@ 2011-11-09 2:56 ` Scott Garman
2011-11-09 2:56 ` [PATCH 3/4] useradd-example.bb: update example documentation comments Scott Garman
` (2 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Scott Garman @ 2011-11-09 2:56 UTC (permalink / raw)
To: openembedded-core
Exclude the addition of user/group code and RDEPENDS changes for
-nativesdk packages.
Signed-off-by: Scott Garman <scott.a.garman@intel.com>
---
meta/classes/useradd.bbclass | 9 +++++----
1 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/meta/classes/useradd.bbclass b/meta/classes/useradd.bbclass
index 3b2d1db..64d6861 100644
--- a/meta/classes/useradd.bbclass
+++ b/meta/classes/useradd.bbclass
@@ -153,10 +153,11 @@ fakeroot python populate_packages_prepend () {
rdepends = d.getVar("RDEPENDS_%s" % pkg, True) or ""
rdepends += " base-passwd shadow"
bb.data.setVar("RDEPENDS_%s" % pkg, rdepends, d)
-
+
# Add the user/group preinstall scripts and RDEPENDS requirements
# to packages specified by USERADD_PACKAGES
- useradd_packages = d.getVar('USERADD_PACKAGES', True) or ""
- for pkg in useradd_packages.split():
- update_useradd_package(pkg)
+ if not bb.data.inherits_class('nativesdk', d):
+ useradd_packages = d.getVar('USERADD_PACKAGES', True) or ""
+ for pkg in useradd_packages.split():
+ update_useradd_package(pkg)
}
--
1.7.5.4
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 3/4] useradd-example.bb: update example documentation comments
2011-11-09 2:56 [PATCH 0/4] More useradd cleanups Scott Garman
2011-11-09 2:56 ` [PATCH 1/4] useradd.bbclass: only modify packages in USERADD_PACKAGES Scott Garman
2011-11-09 2:56 ` [PATCH 2/4] useradd.bbclass: do not modify -nativesdk packages Scott Garman
@ 2011-11-09 2:56 ` Scott Garman
2011-11-09 2:56 ` [PATCH 4/4] avahi: remove USERADDPN Scott Garman
2011-11-10 17:18 ` [PATCH 0/4] More useradd cleanups Saul Wold
4 siblings, 0 replies; 6+ messages in thread
From: Scott Garman @ 2011-11-09 2:56 UTC (permalink / raw)
To: openembedded-core
Clarify that only packages listed in USERADD_PACKAGES will
include the user/group creation code.
Signed-off-by: Scott Garman <scott.a.garman@intel.com>
---
.../recipes-skeleton/useradd/useradd-example.bb | 9 ++++-----
1 files changed, 4 insertions(+), 5 deletions(-)
diff --git a/meta-skeleton/recipes-skeleton/useradd/useradd-example.bb b/meta-skeleton/recipes-skeleton/useradd/useradd-example.bb
index 02d56f6..b10c1d0 100644
--- a/meta-skeleton/recipes-skeleton/useradd/useradd-example.bb
+++ b/meta-skeleton/recipes-skeleton/useradd/useradd-example.bb
@@ -17,13 +17,12 @@ PACKAGES =+ "${PN}-user3"
inherit useradd
-# Specify which package(s) should include the user/group code.
-# Make sure that any packages which install files owned by custom
-# users/groups are included here. The code which adds users and
-# groups is idempotent.
+# You must set USERADD_PACKAGES when you inherit useradd. This
+# lists which output packages will include the user/group
+# creation code.
USERADD_PACKAGES = "${PN} ${PN}-user3"
-# You *must* set USERADD_PARAM and/or GROUPADD_PARAM when
+# You must also set USERADD_PARAM and/or GROUPADD_PARAM when
# you inherit useradd.
# USERADD_PARAM specifies command line options to pass to the
--
1.7.5.4
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 4/4] avahi: remove USERADDPN
2011-11-09 2:56 [PATCH 0/4] More useradd cleanups Scott Garman
` (2 preceding siblings ...)
2011-11-09 2:56 ` [PATCH 3/4] useradd-example.bb: update example documentation comments Scott Garman
@ 2011-11-09 2:56 ` Scott Garman
2011-11-10 17:18 ` [PATCH 0/4] More useradd cleanups Saul Wold
4 siblings, 0 replies; 6+ messages in thread
From: Scott Garman @ 2011-11-09 2:56 UTC (permalink / raw)
To: openembedded-core
USERADDPN is no longer used; remove it.
Signed-off-by: Scott Garman <scott.a.garman@intel.com>
---
meta/recipes-connectivity/avahi/avahi.inc | 1 -
1 files changed, 0 insertions(+), 1 deletions(-)
diff --git a/meta/recipes-connectivity/avahi/avahi.inc b/meta/recipes-connectivity/avahi/avahi.inc
index 728c38f..deebbd6 100644
--- a/meta/recipes-connectivity/avahi/avahi.inc
+++ b/meta/recipes-connectivity/avahi/avahi.inc
@@ -23,7 +23,6 @@ SRC_URI = "http://avahi.org/download/avahi-${PV}.tar.gz \
file://99avahi-autoipd \
file://initscript.patch"
-USERADDPN = "avahi-daemon"
USERADD_PACKAGES = "avahi-daemon"
USERADD_PARAM_avahi-daemon = "--system --home /var/run/avahi-daemon \
--no-create-home --shell /bin/false \
--
1.7.5.4
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH 0/4] More useradd cleanups
2011-11-09 2:56 [PATCH 0/4] More useradd cleanups Scott Garman
` (3 preceding siblings ...)
2011-11-09 2:56 ` [PATCH 4/4] avahi: remove USERADDPN Scott Garman
@ 2011-11-10 17:18 ` Saul Wold
4 siblings, 0 replies; 6+ messages in thread
From: Saul Wold @ 2011-11-10 17:18 UTC (permalink / raw)
To: Patches and discussions about the oe-core layer; +Cc: Scott Garman
On 11/08/2011 06:56 PM, Scott Garman wrote:
> Hello,
>
> Richard pointed out that USERADDPN is no longer needed in
> useradd.bbclass. While removing that, I noticed that I was actually
> injecting the user/group preinst script into *all* packages whose
> recipe inherits useradd. That's not what we want, and is the reason
> for the USERADD_PACKAGES variable. So I refactored the class to fix
> that and clarified the useradd-example recipe documentation.
>
> Finally, I added another check to avoid modifying -nativesdk packages.
>
> The following changes since commit 25fae81538a92e15eab3fc169ebce44505f67839:
>
> python: skip setup.py 'import check' when cross-compiling (2011-11-08 21:44:23 +0000)
>
> are available in the git repository at:
> git://git.pokylinux.org/poky-contrib sgarman/useradd-cleanup-final
> http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=sgarman/useradd-cleanup-final
>
> Scott Garman (4):
> useradd.bbclass: only modify packages in USERADD_PACKAGES
> useradd.bbclass: do not modify -nativesdk packages
> useradd-example.bb: update example documentation comments
> avahi: remove USERADDPN
>
> .../recipes-skeleton/useradd/useradd-example.bb | 9 ++--
> meta/classes/useradd.bbclass | 45 ++++++++------------
> meta/recipes-connectivity/avahi/avahi.inc | 1 -
> 3 files changed, 22 insertions(+), 33 deletions(-)
>
Merged int OE-Core
Thanks
Sau!
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2011-11-10 17:25 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-11-09 2:56 [PATCH 0/4] More useradd cleanups Scott Garman
2011-11-09 2:56 ` [PATCH 1/4] useradd.bbclass: only modify packages in USERADD_PACKAGES Scott Garman
2011-11-09 2:56 ` [PATCH 2/4] useradd.bbclass: do not modify -nativesdk packages Scott Garman
2011-11-09 2:56 ` [PATCH 3/4] useradd-example.bb: update example documentation comments Scott Garman
2011-11-09 2:56 ` [PATCH 4/4] avahi: remove USERADDPN Scott Garman
2011-11-10 17:18 ` [PATCH 0/4] More useradd cleanups Saul Wold
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox