Rather than just use d.getVar(X), use the more explict d.getVar(X, False) since at some point in the future, having the default of expansion would be nice. This is the first step towards that. This patch was mostly made using the command: sed -e 's:\(getVar([^,()]*\)\s*):\1, False):g' -i `grep -ril getVar *` (From OE-Core rev: ab7c1d239b122c8e549e8112c88fd46c9e2b061b) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
85 lines
2.7 KiB
Text
85 lines
2.7 KiB
Text
addtask lint before do_build
|
|
do_lint[nostamp] = "1"
|
|
python do_lint() {
|
|
pkgname = d.getVar("PN", True)
|
|
|
|
##############################
|
|
# Test that DESCRIPTION exists
|
|
#
|
|
description = d.getVar("DESCRIPTION", False)
|
|
if description[1:10] == '{SUMMARY}':
|
|
bb.warn("%s: DESCRIPTION is not set" % pkgname)
|
|
|
|
|
|
##############################
|
|
# Test that HOMEPAGE exists
|
|
#
|
|
homepage = d.getVar("HOMEPAGE", False)
|
|
if homepage == '':
|
|
bb.warn("%s: HOMEPAGE is not set" % pkgname)
|
|
elif not homepage.startswith("http://") and not homepage.startswith("https://"):
|
|
bb.warn("%s: HOMEPAGE doesn't start with http:// or https://" % pkgname)
|
|
|
|
|
|
##############################
|
|
# Test for valid SECTION
|
|
#
|
|
section = d.getVar("SECTION", False)
|
|
if section == '':
|
|
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", False).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
|
|
|
|
def checkPN(pkgname, varname, str):
|
|
if str.find("{PN}") != -1:
|
|
bb.warn("%s: should use BPN instead of PN in %s" % (pkgname, varname))
|
|
if str.find("{P}") != -1:
|
|
bb.warn("%s: should use BP instead of P in %s" % (pkgname, varname))
|
|
|
|
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))
|
|
|
|
|
|
##############################
|
|
# Check for ${PN} or ${P} usage in SRC_URI or S
|
|
# Should use ${BPN} or ${BP} instead to avoid breaking multilib
|
|
#
|
|
for s in srcuri:
|
|
if not s.startswith("file://"):
|
|
checkPN(pkgname, 'SRC_URI', s)
|
|
|
|
checkPN(pkgname, 'S', d.getVar('S', False))
|
|
}
|