]> code.ossystems Code Review - openembedded-core.git/commitdiff
lib/oe/sstatesig: Ensure packagegroups don't continually rebuild
authorRichard Purdie <richard.purdie@linuxfoundation.org>
Tue, 5 Nov 2013 22:15:22 +0000 (22:15 +0000)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Fri, 8 Nov 2013 17:24:51 +0000 (17:24 +0000)
packagegroups are allarch and shouldn't change depending on the target
or machine selected. In general they should have good stable namespaces
for their dependencies. As such we can exclude them from rebuilding when
dependency checksums change.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
meta/lib/oe/sstatesig.py

index 852fb7e64ac7e0490bbead0b1dfe151964900d03..33ff8929b3f02d9bdfcd5adba211fcc4694769e4 100644 (file)
@@ -11,6 +11,9 @@ 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(fn):
+        inherits = " ".join(dataCache.inherits[fn])
+        return "packagegroup.bbclass" in inherits
 
     # Always include our own inter-task dependencies
     if recipename == depname:
@@ -27,6 +30,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(fn):
+        return False  
+
     # Drop native/cross/nativesdk dependencies from target recipes
     if isNative(depname) or isCross(depname) or isNativeSDK(depname):
         return False