mirror of
git://git.yoctoproject.org/poky.git
synced 2025-07-19 21:09:03 +02:00

As stated in our top level license files, the license is MIT unless otherwise stated. Add SPDX identifers accordingly. Replace older license statementa with the standardised syntax. Also drop "All Rights Reserved" expression as it isn't used now, doesn't mean anything and is confusing. (From OE-Core rev: 081a391fe09a21265881e39a2a496e4e10b4f80b) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
91 lines
2.7 KiB
Plaintext
91 lines
2.7 KiB
Plaintext
#
|
|
# Copyright OpenEmbedded Contributors
|
|
#
|
|
# SPDX-License-Identifier: MIT
|
|
#
|
|
|
|
addtask lint before do_build
|
|
do_lint[nostamp] = "1"
|
|
python do_lint() {
|
|
pkgname = d.getVar("PN")
|
|
|
|
##############################
|
|
# 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') 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 = open('%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))
|
|
}
|