Hi Scott,

Le 26/10/2011 18:52, Scott Garman a écrit :
Grepping through our classes, it looks like I can detect the nativesdk within
useradd.bbclass by checking for bb.data.inherits_class('nativesdk', d).

I've filed a bug for this and will develop a patch to ensure useradd is
becomes a no-op for nativesdk builds:

http://bugzilla.pokylinux.org/show_bug.cgi?id=1702

here is a patch tentative which allowed me to compile meta-toolchain-qte.
Is that the right way to solve the problem (in which case I'll submit the patch with comment & sob)?

Thanks
Eric
diff --git a/meta/classes/useradd.bbclass b/meta/classes/useradd.bbclass
index fb70b3e..cbcc9e9 100644
--- a/meta/classes/useradd.bbclass
+++ b/meta/classes/useradd.bbclass
@@ -3,9 +3,16 @@ 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
-DEPENDS_append = " base-passwd shadow-native shadow-sysroot"
 RDEPENDS_${USERADDPN}_append = " base-passwd shadow"
 
+def useradd_dep_append(d):
+       deps = ' '
+       if not bb.data.inherits_class('nativesdk', d):
+               deps = ' shadow-native shadow-sysroot base-passwd'
+       return deps
+
+DEPENDS_append = "${@useradd_dep_append(d)}"
+
 # This preinstall function will be run in two contexts: once for the
 # native sysroot (as invoked by the useradd_sysroot() wrapper), and
 # also as the preinst script in the target package.
@@ -96,8 +103,17 @@ useradd_sysroot_sstate () {
        fi
 }
 
-do_install[prefuncs] += "useradd_sysroot"
-SSTATEPOSTINSTFUNCS += "useradd_sysroot_sstate"
+
+python () {
+       if not bb.data.inherits_class('nativesdk', d):
+               funcs = bb.data.getVarFlag('do_install', 'prefuncs', d) or ""
+               funcs += 'useradd_sysroot'
+               bb.data.setVarFlag('do_install', 'prefuncs', funcs, d)
+               d.setVar('SSTATEPOSTINSTFUNCS', 
(bb.data.getVar('SSTATEPOSTINSTFUNCS', d, True) or 
"").join("useradd_sysroot_sstate"))
+}
+

 # Recipe parse-time sanity checks
 def update_useradd_after_parse(d):
diff --git a/meta/recipes-core/dbus/dbus.inc b/meta/recipes-core/dbus/dbus.inc
index caa781c..99b2fc7 100644
--- a/meta/recipes-core/dbus/dbus.inc
+++ b/meta/recipes-core/dbus/dbus.inc
@@ -105,4 +105,8 @@ do_install_virtclass-native() {
        # dbus-glib-native and dbus-glib need this xml file
        ./bus/dbus-daemon --introspect > 
${STAGING_DATADIR_NATIVE}/dbus/dbus-bus-introspect.xml
 }
+
+do_install_virtclass-nativesdk() {
+       autotools_do_install
+}
 BBCLASSEXTEND = "native nativesdk"
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core

Reply via email to