From patchwork Sun Nov 6 20:31:10 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: useradd changes to dbus, base-passwd Date: Sun, 06 Nov 2011 20:31:10 -0000 From: Eric BENARD X-Patchwork-Id: 14385 Message-Id: <4EB6EE8E.4000401@eukrea.com> To: scott.a.garman@intel.com Cc: Patches and discussions about the oe-core layer 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"