[oe-commits] Richard Purdie : lib/oe/sstatesig: Ensure packagegroups don' t continually rebuild

git at git.openembedded.org git at git.openembedded.org
Fri Nov 8 17:26:16 UTC 2013


Module: openembedded-core.git
Branch: master
Commit: 80b065ff46322ec0cad039dfd9eb2d010168dba6
URL:    http://git.openembedded.org/?p=openembedded-core.git&a=commit;h=80b065ff46322ec0cad039dfd9eb2d010168dba6

Author: Richard Purdie <richard.purdie at linuxfoundation.org>
Date:   Tue Nov  5 22:15:22 2013 +0000

lib/oe/sstatesig: Ensure packagegroups don't continually rebuild

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 at linuxfoundation.org>
Signed-off-by: Saul Wold <sgw at linux.intel.com>

---

 meta/lib/oe/sstatesig.py | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/meta/lib/oe/sstatesig.py b/meta/lib/oe/sstatesig.py
index 852fb7e..33ff892 100644
--- a/meta/lib/oe/sstatesig.py
+++ b/meta/lib/oe/sstatesig.py
@@ -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



More information about the Openembedded-commits mailing list