summaryrefslogtreecommitdiff
path: root/meta/classes
diff options
context:
space:
mode:
authorChong Lu <Chong.Lu@windriver.com>2014-08-01 17:03:37 +0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2014-08-06 10:22:32 +0100
commita2b6be10daca733ba4e557bd2d831c60589e9ffd (patch)
treefc5b18fca5161464782f1e3367308a7ab389bc24 /meta/classes
parent184baa681b3381b7f1f289c3e0c3a0f1096368f6 (diff)
downloadopenembedded-core-a2b6be10daca733ba4e557bd2d831c60589e9ffd.tar.gz
openembedded-core-a2b6be10daca733ba4e557bd2d831c60589e9ffd.tar.bz2
openembedded-core-a2b6be10daca733ba4e557bd2d831c60589e9ffd.zip
oelint.bbclass: add patch checking
Check that all patches have Signed-off-by and Upstream-Status. [YOCTO #5427] Signed-off-by: Chong Lu <Chong.Lu@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/classes')
-rw-r--r--meta/classes/oelint.bbclass35
1 files changed, 35 insertions, 0 deletions
diff --git a/meta/classes/oelint.bbclass b/meta/classes/oelint.bbclass
index d14e3783f3..07a7ed9d7c 100644
--- a/meta/classes/oelint.bbclass
+++ b/meta/classes/oelint.bbclass
@@ -29,4 +29,39 @@ python do_lint() {
bb.warn("%s: SECTION is not set" % pkgname)
elif not section.islower():
bb.warn("%s: SECTION should only use lower case" % pkgname)
+
+
+ ##############################
+ # Check that all patches have Signed-off-by and Upstream-Status
+ #
+ srcuri = d.getVar("SRC_URI").split()
+ fpaths = (d.getVar('FILESPATH', True) or '').split(':')
+
+ def findPatch(patchname):
+ for dir in fpaths:
+ patchpath = dir + patchname
+ if os.path.exists(patchpath):
+ return patchpath
+
+ def findKey(path, key):
+ ret = True
+ f = file('%s' % path, mode = 'r')
+ line = f.readline()
+ while line:
+ if line.find(key) != -1:
+ ret = False
+ line = f.readline()
+ f.close()
+ return ret
+
+ length = len("file://")
+ for item in srcuri:
+ if item.startswith("file://"):
+ item = item[length:]
+ if item.endswith(".patch") or item.endswith(".diff"):
+ path = findPatch(item)
+ if findKey(path, "Signed-off-by"):
+ bb.warn("%s: %s doesn't have Signed-off-by" % (pkgname, item))
+ if findKey(path, "Upstream-Status"):
+ bb.warn("%s: %s doesn't have Upstream-Status" % (pkgname, item))
}