* [PATCH 0/3] oelint.bbclass: make oelint bbclass work
@ 2014-08-01 7:15 Chong Lu
2014-08-01 7:15 ` [PATCH 1/3] " Chong Lu
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Chong Lu @ 2014-08-01 7:15 UTC (permalink / raw)
To: openembedded-core
In conf/local.conf, add 'INHERIT += "oelint"' to test.
We can get many warnings, like following:
WARNING: diffutils: HOMEPAGE is not set
WARNING: sed: DESCRIPTION is not set
WARNING: perl: DESCRIPTION is not set
WARNING: perl: debian/cpan_definstalldirs.diff doesn't have Signed-off-by
WARNING: perl: debian/cpan_definstalldirs.diff doesn't have Upstream-Status
The following changes since commit 2d1660112e54653f7bb763939d0416472c49fe01:
populate_sdk_base: Fix grep command usage on old hosts (2014-07-29 09:58:27 +0100)
are available in the git repository at:
git://git.pokylinux.org/poky-contrib chonglu/oelint
http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=chonglu/oelint
Chong Lu (3):
oelint.bbclass: make oelint bbclass work
oelint.bbclass: add patch checking
oelint.bbclass: Check for ${PN} or ${P} usage
meta/classes/oelint.bbclass | 251 ++++++++++++++------------------------------
1 file changed, 81 insertions(+), 170 deletions(-)
--
1.9.1
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 1/3] oelint.bbclass: make oelint bbclass work
2014-08-01 7:15 [PATCH 0/3] oelint.bbclass: make oelint bbclass work Chong Lu
@ 2014-08-01 7:15 ` Chong Lu
2014-08-01 7:15 ` [PATCH 2/3] oelint.bbclass: add patch checking Chong Lu
2014-08-01 7:15 ` [PATCH 3/3] oelint.bbclass: Check for ${PN} or ${P} usage Chong Lu
2 siblings, 0 replies; 6+ messages in thread
From: Chong Lu @ 2014-08-01 7:15 UTC (permalink / raw)
To: openembedded-core
Remove LICENSE, MAINTAINER, PRIORITY and valid SECTION checking.
Convert tab indentation into four-space.
[YOCTO #5427]
Signed-off-by: Chong Lu <Chong.Lu@windriver.com>
---
meta/classes/oelint.bbclass | 196 ++++++--------------------------------------
1 file changed, 26 insertions(+), 170 deletions(-)
diff --git a/meta/classes/oelint.bbclass b/meta/classes/oelint.bbclass
index f2e7540..1c6f4b8 100644
--- a/meta/classes/oelint.bbclass
+++ b/meta/classes/oelint.bbclass
@@ -1,174 +1,30 @@
addtask lint before do_fetch
do_lint[nostamp] = "1"
python do_lint() {
- def testVar(var, explain=None):
- try:
- s = d[var]
- return s["content"]
- except KeyError:
- bb.error("%s is not set" % var)
- if explain: bb.note(explain)
- return None
-
-
- ##############################
- # Test that DESCRIPTION exists
- #
- testVar("DESCRIPTION")
-
-
- ##############################
- # Test that HOMEPAGE exists
- #
- s = testVar("HOMEPAGE")
- if s=="unknown":
- bb.error("HOMEPAGE is not set")
- elif not s.startswith("http://"):
- bb.error("HOMEPAGE doesn't start with http://")
-
-
-
- ##############################
- # Test for valid LICENSE
- #
- valid_licenses = {
- "GPL-2" : "GPLv2",
- "GPL LGPL FDL" : True,
- "GPL PSF" : True,
- "GPL/QPL" : True,
- "GPL" : True,
- "GPLv2" : True,
- "IBM" : True,
- "LGPL GPL" : True,
- "LGPL" : True,
- "MIT" : True,
- "OSL" : True,
- "Perl" : True,
- "Public Domain" : True,
- "QPL" : "GPL/QPL",
- }
- s = testVar("LICENSE")
- if s=="unknown":
- bb.error("LICENSE is not set")
- elif s.startswith("Vendor"):
- pass
- else:
- try:
- newlic = valid_licenses[s]
- if newlic == False:
- bb.note("LICENSE '%s' is not recommended" % s)
- elif newlic != True:
- bb.note("LICENSE '%s' is not recommended, better use '%s'" % (s, newsect))
- except:
- bb.note("LICENSE '%s' is not recommended" % s)
-
-
- ##############################
- # Test for valid MAINTAINER
- #
- s = testVar("MAINTAINER")
- if s=="OpenEmbedded Team <openembedded-devel@openembedded.org>":
- bb.error("explicit MAINTAINER is missing, using default")
- elif s and s.find("@") == -1:
- bb.error("You forgot to put an e-mail address into MAINTAINER")
-
-
- ##############################
- # Test for valid SECTION
- #
- # if Correct section: True section name is valid
- # False section name is invalid, no suggestion
- # string section name is invalid, better name suggested
- #
- valid_sections = {
- # Current Section Correct section
- "apps" : True,
- "audio" : True,
- "base" : True,
- "console/games" : True,
- "console/net" : "console/network",
- "console/network" : True,
- "console/utils" : True,
- "devel" : True,
- "developing" : "devel",
- "devel/python" : True,
- "fonts" : True,
- "games" : True,
- "games/libs" : True,
- "gnome/base" : True,
- "gnome/libs" : True,
- "gpe" : True,
- "gpe/libs" : True,
- "gui" : False,
- "libc" : "libs",
- "libs" : True,
- "libs/net" : True,
- "multimedia" : True,
- "net" : "network",
- "NET" : "network",
- "network" : True,
- "opie/applets" : True,
- "opie/applications" : True,
- "opie/base" : True,
- "opie/codecs" : True,
- "opie/decorations" : True,
- "opie/fontfactories" : True,
- "opie/fonts" : True,
- "opie/games" : True,
- "opie/help" : True,
- "opie/inputmethods" : True,
- "opie/libs" : True,
- "opie/multimedia" : True,
- "opie/pim" : True,
- "opie/setting" : "opie/settings",
- "opie/settings" : True,
- "opie/Shell" : False,
- "opie/styles" : True,
- "opie/today" : True,
- "scientific" : True,
- "utils" : True,
- "x11" : True,
- "x11/libs" : True,
- "x11/wm" : True,
- }
- s = testVar("SECTION")
- if s:
- try:
- newsect = valid_sections[s]
- if newsect == False:
- bb.note("SECTION '%s' is not recommended" % s)
- elif newsect != True:
- bb.note("SECTION '%s' is not recommended, better use '%s'" % (s, newsect))
- except:
- bb.note("SECTION '%s' is not recommended" % s)
-
- if not s.islower():
- bb.error("SECTION should only use lower case")
-
-
-
-
- ##############################
- # Test for valid PRIORITY
- #
- valid_priorities = {
- "standard" : True,
- "required" : True,
- "optional" : True,
- "extra" : True,
- }
- s = testVar("PRIORITY")
- if s:
- try:
- newprio = valid_priorities[s]
- if newprio == False:
- bb.note("PRIORITY '%s' is not recommended" % s)
- elif newprio != True:
- bb.note("PRIORITY '%s' is not recommended, better use '%s'" % (s, newprio))
- except:
- bb.note("PRIORITY '%s' is not recommended" % s)
-
- if not s.islower():
- bb.error("PRIORITY should only use lower case")
-
+ ##############################
+ # Test that DESCRIPTION exists
+ #
+ s = d.getVar("DESCRIPTION")
+ if s[1:10] == '{SUMMARY}':
+ bb.warn("${PN}: DESCRIPTION is not set")
+
+
+ ##############################
+ # Test that HOMEPAGE exists
+ #
+ s = d.getVar("HOMEPAGE")
+ if s == '':
+ bb.warn("${PN}: HOMEPAGE is not set")
+ elif not s.startswith("http://") and not s.startswith("https://"):
+ bb.warn("${PN}: HOMEPAGE doesn't start with http:// or https://")
+
+
+ ##############################
+ # Test for valid SECTION
+ #
+ s = d.getVar("SECTION")
+ if s == '':
+ bb.warn("${PN}: SECTION is not set")
+ elif not s.islower():
+ bb.warn("${PN}: SECTION should only use lower case")
}
--
1.9.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 2/3] oelint.bbclass: add patch checking
2014-08-01 7:15 [PATCH 0/3] oelint.bbclass: make oelint bbclass work Chong Lu
2014-08-01 7:15 ` [PATCH 1/3] " Chong Lu
@ 2014-08-01 7:15 ` Chong Lu
2014-08-01 7:15 ` [PATCH 3/3] oelint.bbclass: Check for ${PN} or ${P} usage Chong Lu
2 siblings, 0 replies; 6+ messages in thread
From: Chong Lu @ 2014-08-01 7:15 UTC (permalink / raw)
To: openembedded-core
Check that all patches have Signed-off-by and Upstream-Status.
[YOCTO #5427]
Signed-off-by: Chong Lu <Chong.Lu@windriver.com>
---
meta/classes/oelint.bbclass | 35 +++++++++++++++++++++++++++++++++++
1 file changed, 35 insertions(+)
diff --git a/meta/classes/oelint.bbclass b/meta/classes/oelint.bbclass
index 1c6f4b8..0bed74a 100644
--- a/meta/classes/oelint.bbclass
+++ b/meta/classes/oelint.bbclass
@@ -27,4 +27,39 @@ python do_lint() {
bb.warn("${PN}: SECTION is not set")
elif not s.islower():
bb.warn("${PN}: SECTION should only use lower case")
+
+
+ ##############################
+ # Check that all patches have Signed-off-by and Upstream-Status
+ #
+ s = 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 s:
+ 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("${PN}: %s doesn't have Signed-off-by" % item)
+ if findKey(path, "Upstream-Status"):
+ bb.warn("${PN}: %s doesn't have Upstream-Status" % item)
}
--
1.9.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 3/3] oelint.bbclass: Check for ${PN} or ${P} usage
2014-08-01 7:15 [PATCH 0/3] oelint.bbclass: make oelint bbclass work Chong Lu
2014-08-01 7:15 ` [PATCH 1/3] " Chong Lu
2014-08-01 7:15 ` [PATCH 2/3] oelint.bbclass: add patch checking Chong Lu
@ 2014-08-01 7:15 ` Chong Lu
2014-08-01 7:37 ` Robert P. J. Day
2 siblings, 1 reply; 6+ messages in thread
From: Chong Lu @ 2014-08-01 7:15 UTC (permalink / raw)
To: openembedded-core
Check for ${PN} or ${P} usage in SRC_URI or S.
We should use ${BPN} or ${BP} instead to avoid breaking multilib.
[YOCTO #5427]
Signed-off-by: Chong Lu <Chong.Lu@windriver.com>
---
meta/classes/oelint.bbclass | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/meta/classes/oelint.bbclass b/meta/classes/oelint.bbclass
index 0bed74a..685a88d 100644
--- a/meta/classes/oelint.bbclass
+++ b/meta/classes/oelint.bbclass
@@ -62,4 +62,24 @@ python do_lint() {
bb.warn("${PN}: %s doesn't have Signed-off-by" % item)
if findKey(path, "Upstream-Status"):
bb.warn("${PN}: %s doesn't have Upstream-Status" % item)
+
+
+ ##############################
+ # Check for ${PN} or ${P} usage in SRC_URI or S
+ # Should use ${BPN} or ${BP} instead to avoid breaking multilib
+ #
+ s = d.getVar("SRC_URI").split()
+
+ for srcurl in s:
+ if not srcurl.startswith("file://"):
+ if not srcurl.find("{PN}") == -1:
+ bb.warn("${PN}: Should use BPN instead to PN in SRC_URI")
+ if not srcurl.find("{P}") == -1:
+ bb.warn("${PN}: Should use BP instead to P in SRC_URI")
+
+ srcpath = d.getVar("S")
+ if not srcpath.find("{PN}") == -1:
+ bb.warn("${PN}: Should use BPN instead to PN in S")
+ if not srcpath.find("{P}") == -1:
+ bb.warn("${PN}: Should use BP instead to P in S")
}
--
1.9.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH 3/3] oelint.bbclass: Check for ${PN} or ${P} usage
2014-08-01 7:15 ` [PATCH 3/3] oelint.bbclass: Check for ${PN} or ${P} usage Chong Lu
@ 2014-08-01 7:37 ` Robert P. J. Day
2014-08-01 7:57 ` Chong Lu
0 siblings, 1 reply; 6+ messages in thread
From: Robert P. J. Day @ 2014-08-01 7:37 UTC (permalink / raw)
To: Chong Lu; +Cc: openembedded-core
On Fri, 1 Aug 2014, Chong Lu wrote:
> Check for ${PN} or ${P} usage in SRC_URI or S.
> We should use ${BPN} or ${BP} instead to avoid breaking multilib.
>
> [YOCTO #5427]
>
> Signed-off-by: Chong Lu <Chong.Lu@windriver.com>
> ---
> meta/classes/oelint.bbclass | 20 ++++++++++++++++++++
> 1 file changed, 20 insertions(+)
>
> diff --git a/meta/classes/oelint.bbclass b/meta/classes/oelint.bbclass
> index 0bed74a..685a88d 100644
> --- a/meta/classes/oelint.bbclass
> +++ b/meta/classes/oelint.bbclass
> @@ -62,4 +62,24 @@ python do_lint() {
> bb.warn("${PN}: %s doesn't have Signed-off-by" % item)
> if findKey(path, "Upstream-Status"):
> bb.warn("${PN}: %s doesn't have Upstream-Status" % item)
> +
> +
> + ##############################
> + # Check for ${PN} or ${P} usage in SRC_URI or S
> + # Should use ${BPN} or ${BP} instead to avoid breaking multilib
> + #
> + s = d.getVar("SRC_URI").split()
> +
> + for srcurl in s:
> + if not srcurl.startswith("file://"):
> + if not srcurl.find("{PN}") == -1:
> + bb.warn("${PN}: Should use BPN instead to PN in SRC_URI")
> + if not srcurl.find("{P}") == -1:
should you not say, "use BPN instead of PN ..."?
rday
--
========================================================================
Robert P. J. Day Ottawa, Ontario, CANADA
http://crashcourse.ca
Twitter: http://twitter.com/rpjday
LinkedIn: http://ca.linkedin.com/in/rpjday
========================================================================
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 3/3] oelint.bbclass: Check for ${PN} or ${P} usage
2014-08-01 7:37 ` Robert P. J. Day
@ 2014-08-01 7:57 ` Chong Lu
0 siblings, 0 replies; 6+ messages in thread
From: Chong Lu @ 2014-08-01 7:57 UTC (permalink / raw)
To: Robert P. J. Day; +Cc: openembedded-core
On 08/01/2014 03:37 PM, Robert P. J. Day wrote:
> On Fri, 1 Aug 2014, Chong Lu wrote:
>
>> Check for ${PN} or ${P} usage in SRC_URI or S.
>> We should use ${BPN} or ${BP} instead to avoid breaking multilib.
>>
>> [YOCTO #5427]
>>
>> Signed-off-by: Chong Lu <Chong.Lu@windriver.com>
>> ---
>> meta/classes/oelint.bbclass | 20 ++++++++++++++++++++
>> 1 file changed, 20 insertions(+)
>>
>> diff --git a/meta/classes/oelint.bbclass b/meta/classes/oelint.bbclass
>> index 0bed74a..685a88d 100644
>> --- a/meta/classes/oelint.bbclass
>> +++ b/meta/classes/oelint.bbclass
>> @@ -62,4 +62,24 @@ python do_lint() {
>> bb.warn("${PN}: %s doesn't have Signed-off-by" % item)
>> if findKey(path, "Upstream-Status"):
>> bb.warn("${PN}: %s doesn't have Upstream-Status" % item)
>> +
>> +
>> + ##############################
>> + # Check for ${PN} or ${P} usage in SRC_URI or S
>> + # Should use ${BPN} or ${BP} instead to avoid breaking multilib
>> + #
>> + s = d.getVar("SRC_URI").split()
>> +
>> + for srcurl in s:
>> + if not srcurl.startswith("file://"):
>> + if not srcurl.find("{PN}") == -1:
>> + bb.warn("${PN}: Should use BPN instead to PN in SRC_URI")
>> + if not srcurl.find("{P}") == -1:
> should you not say, "use BPN instead of PN ..."?
>
> rday
OK, thanks.
I will change this and resend a V2.
Best Regards
Chong
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2014-08-01 7:57 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-08-01 7:15 [PATCH 0/3] oelint.bbclass: make oelint bbclass work Chong Lu
2014-08-01 7:15 ` [PATCH 1/3] " Chong Lu
2014-08-01 7:15 ` [PATCH 2/3] oelint.bbclass: add patch checking Chong Lu
2014-08-01 7:15 ` [PATCH 3/3] oelint.bbclass: Check for ${PN} or ${P} usage Chong Lu
2014-08-01 7:37 ` Robert P. J. Day
2014-08-01 7:57 ` Chong Lu
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox