[OE-core] [RFC][PATCH] packagegroup.bbclass: Drop build-time dependencies
Richard Purdie
richard.purdie at linuxfoundation.org
Fri Nov 1 18:14:03 UTC 2013
On Fri, 2013-11-01 at 13:37 +0000, Paul Eggleton wrote:
> Hi Martin,
>
> On Friday 01 November 2013 13:12:12 Martin Jansa wrote:
> > * RFC because:
> > packagegroup.bbclass inherits allarch and by default sets
> > PACKAGE_ARCH = "all", but then it has runtime-dependency on
> > TUNE_PKGARCH packages and different signatures, so instead
> > of setting INHIBIT_DEFAULT_DEPS in addition to inherit allarch
> > I would like to drop default allarch completely.
>
> The fix looks OK, but I don't think we should be going further and removing the
> inherit. To my mind, the question of dependencies comes down to whether or not
> the packagegroup output changes depending on TUNE_PKGARCH, which in the
> general case it should not do.
>
> If we need to do some optimisation to avoid the packagegroup recipe rebuilding
> when it shouldn't due to packages it "contains" changing, we can certainly
> look at that.
A better idea might be something like:
diff --git a/meta/lib/oe/sstatesig.py b/meta/lib/oe/sstatesig.py
index 852fb7e..23e28f0 100644
--- a/meta/lib/oe/sstatesig.py
+++ b/meta/lib/oe/sstatesig.py
@@ -11,6 +11,8 @@ def sstate_rundepfilter(siggen, fn, recipename, task, dep, depname, dataCache):
def isKernel(fn):
inherits = " ".join(dataCache.inherits[fn])
return inherits.find("module-base.bbclass") != -1 or inherits.find("linux-kernel-base.bbclass") != -1
+ def isPackageGroup(x):
+ return "packagegroup-" in x
# Always include our own inter-task dependencies
if recipename == depname:
@@ -27,6 +29,10 @@ def sstate_rundepfilter(siggen, fn, recipename, task, dep, depname, dataCache):
# Only target packages beyond here
+ # packagegroups are assumed to have well behaved names which don't change between architecures/tunes
+ if isPackageGroup(recipename):
+ return False
+
# Drop native/cross/nativesdk dependencies from target recipes
if isNative(depname) or isCross(depname) or isNativeSDK(depname):
return False
although this is untested and needs more careful thought...
Cheers,
Richard
More information about the Openembedded-core
mailing list