Openembedded Core Discussions
 help / color / mirror / Atom feed
* [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