86 lines
2.8 KiB
Plaintext
86 lines
2.8 KiB
Plaintext
addtask lint before do_fetch
|
|
do_lint[nostamp] = "1"
|
|
python do_lint() {
|
|
pkgname = d.getVar("PN", True)
|
|
|
|
##############################
|
|
# Test that DESCRIPTION exists
|
|
#
|
|
description = d.getVar("DESCRIPTION")
|
|
if description[1:10] == '{SUMMARY}':
|
|
bb.warn("%s: DESCRIPTION is not set" % pkgname)
|
|
|
|
|
|
##############################
|
|
# Test that HOMEPAGE exists
|
|
#
|
|
homepage = d.getVar("HOMEPAGE")
|
|
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")
|
|
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").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))
|
|
|
|
|
|
##############################
|
|
# 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://"):
|
|
if not s.find("{PN}") == -1:
|
|
bb.warn("%s: should use BPN instead of PN in SRC_URI" % pkgname)
|
|
if not s.find("{P}") == -1:
|
|
bb.warn("%s: should use BP instead of P in SRC_URI" % pkgname)
|
|
|
|
srcpath = d.getVar("S")
|
|
if not srcpath.find("{PN}") == -1:
|
|
bb.warn("%s: should use BPN instead of PN in S" % pkgname)
|
|
if not srcpath.find("{P}") == -1:
|
|
bb.warn("%s: should use BP instead of P in S" % pkgname)
|
|
}
|