lib/oe: Add sstatesig, OE specific signature generator classes
This patch adds SignatureGenerator classes specific to OE. For now, these emulate the previous behaviour with the exception that dependencies on quilt-native are now ignored for checksum purposes. The intent is to allow easier experimentation and customisation of this code in future as a result of these changes. Note that these changes require pending bitbake patches. (From OE-Core rev: cb73cf4299a192e6065d567fae700987c3f937aa) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
b454cb7366
commit
85cf3ed593
|
@ -9,7 +9,7 @@ inherit utility-tasks
|
|||
inherit metadata_scm
|
||||
inherit logging
|
||||
|
||||
OE_IMPORTS += "os sys time oe.path oe.utils oe.data oe.packagegroup"
|
||||
OE_IMPORTS += "os sys time oe.path oe.utils oe.data oe.packagegroup oe.sstatesig"
|
||||
OE_IMPORTS[type] = "list"
|
||||
|
||||
def oe_import(d):
|
||||
|
|
|
@ -0,0 +1,48 @@
|
|||
import bb.siggen
|
||||
|
||||
def sstate_rundepfilter(fn, recipename, task, dep, depname):
|
||||
# Return True if we should keep the dependency, False to drop it
|
||||
def isNative(x):
|
||||
return x.endswith("-native")
|
||||
def isCross(x):
|
||||
return x.endswith("-cross") or x.endswith("-cross-initial") or x.endswith("-cross-intermediate")
|
||||
def isNativeSDK(x):
|
||||
return x.endswith("-nativesdk")
|
||||
|
||||
# Always include our own inter-task dependencies
|
||||
if recipename == depname:
|
||||
return True
|
||||
|
||||
# Quilt (patch application) changing isn't likely to affect anything
|
||||
if depname == "quilt-native":
|
||||
return False
|
||||
# Don't change native/cross/nativesdk recipe dependencies any further
|
||||
if isNative(recipename) or isCross(recipename) or isNativeSDK(recipename):
|
||||
return True
|
||||
|
||||
# Only target packages beyond here
|
||||
|
||||
# Drop native/cross/nativesdk dependencies from target recipes
|
||||
if isNative(depname) or isCross(depname) or isNativeSDK(depname):
|
||||
return False
|
||||
|
||||
# Default to keep dependencies
|
||||
return True
|
||||
|
||||
class SignatureGeneratorOEBasic(bb.siggen.SignatureGeneratorBasic):
|
||||
name = "OEBasic"
|
||||
def init_rundepcheck(self, data):
|
||||
pass
|
||||
def rundep_check(self, fn, recipename, task, dep, depname):
|
||||
return sstate_rundepfilter(fn, recipename, task, dep, depname)
|
||||
|
||||
class SignatureGeneratorOEBasicHash(bb.siggen.SignatureGeneratorBasicHash):
|
||||
name = "OEBasicHash"
|
||||
def init_rundepcheck(self, data):
|
||||
pass
|
||||
def rundep_check(self, fn, recipename, task, dep, depname):
|
||||
return sstate_rundepfilter(fn, recipename, task, dep, depname)
|
||||
|
||||
# Insert these classes into siggen's namespace so it can see and select them
|
||||
bb.siggen.SignatureGeneratorOEBasic = SignatureGeneratorOEBasic
|
||||
bb.siggen.SignatureGeneratorOEBasicHash = SignatureGeneratorOEBasicHash
|
Loading…
Reference in New Issue