1
0
mirror of https://git.yoctoproject.org/poky synced 2026-05-30 12:29:55 +00:00

distrodata.bbclass: Imporve the checkpkg task more precisely and generate data for pkg-report-system

Imporve some regular expression when checking recipes' upstream version, reduce the number of invalid recipes' upstream version and imporve the precision
Generate some data for package report system.

Signed-off-by: Mei Lei<lei.mei@intel.com>
This commit is contained in:
Mei Lei
2011-01-30 15:28:46 +08:00
committed by Richard Purdie
parent d22b4357c9
commit ba06cc8943
+31 -4
View File
@@ -229,7 +229,14 @@ python checkpkg_eventhandler() {
f.write("Package\tOwner\tURI Type\tVersion\tTracking\tUpstream\tTMatch\tRMatch\n") f.write("Package\tOwner\tURI Type\tVersion\tTracking\tUpstream\tTMatch\tRMatch\n")
f.close() f.close()
bb.utils.unlockfile(lf) bb.utils.unlockfile(lf)
"""initialize log files for package report system"""
logfile2 = os.path.join(logpath, "get_pkg_info.%s.log" % bb.data.getVar('DATETIME', e.data, 1))
if not os.path.exists(logfile2):
slogfile2 = os.path.join(logpath, "get_pkg_info.log")
if os.path.exists(slogfile2):
os.remove(slogfile2)
os.system("touch %s" % logfile2)
os.symlink(logfile2, slogfile2)
return return
} }
@@ -322,7 +329,7 @@ python do_checkpkg() {
which is designed for check purpose but we override check command for our own purpose which is designed for check purpose but we override check command for our own purpose
""" """
ld = bb.data.createCopy(d) ld = bb.data.createCopy(d)
bb.data.setVar('CHECKCOMMAND_wget', "/usr/bin/env wget -t 1 --passive-ftp -O %s '${URI}'" \ bb.data.setVar('CHECKCOMMAND_wget', "/usr/bin/env wget -t 1 --passive-ftp -O %s --user-agent=\"Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.12) Gecko/20101027 Ubuntu/9.10 (karmic) Firefox/3.6.12\" '${URI}'" \
% tmpf.name, d) % tmpf.name, d)
bb.data.update_data(ld) bb.data.update_data(ld)
@@ -420,7 +427,7 @@ python do_checkpkg() {
"""match "{PN}-5.21.1.tar.gz">{PN}-5.21.1.tar.gz """ """match "{PN}-5.21.1.tar.gz">{PN}-5.21.1.tar.gz """
pn1 = re.search("^%s" % prefix, curname).group() pn1 = re.search("^%s" % prefix, curname).group()
s = "[^\"]*%s[^\d\"]*?(\d+[\.\-_])+[^\"]*" % pn1 s = "[^\"]*%s[^\d\"]*?(\d+[\.\-_])+[^\"]*" % pn1
searchstr = "[hH][rR][eE][fF]=\"%s\">" % s searchstr = "[hH][rR][eE][fF]=\"%s\".*>" % s
reg = re.compile(searchstr) reg = re.compile(searchstr)
valid = 0 valid = 0
@@ -438,7 +445,7 @@ python do_checkpkg() {
status = "ErrParseDir" status = "ErrParseDir"
else: else:
"""newver still contains a full package name string""" """newver still contains a full package name string"""
status = re.search("(\d+[.\-_])*\d+", newver[1]).group() status = re.search("(\d+[.\-_])*[0-9a-zA-Z]+", newver[1]).group()
elif not len(fhtml): elif not len(fhtml):
status = "ErrHostNoDir" status = "ErrHostNoDir"
@@ -459,11 +466,23 @@ python do_checkpkg() {
logpath = bb.data.getVar('LOG_DIR', d, 1) logpath = bb.data.getVar('LOG_DIR', d, 1)
bb.utils.mkdirhier(logpath) bb.utils.mkdirhier(logpath)
logfile = os.path.join(logpath, "checkpkg.csv") logfile = os.path.join(logpath, "checkpkg.csv")
"""initialize log files for package report system"""
logfile2 = os.path.join(logpath, "get_pkg_info.log")
"""generate package information from .bb file""" """generate package information from .bb file"""
pname = bb.data.getVar('PN', d, 1) pname = bb.data.getVar('PN', d, 1)
pdesc = bb.data.getVar('DESCRIPTION', d, 1) pdesc = bb.data.getVar('DESCRIPTION', d, 1)
pgrp = bb.data.getVar('SECTION', d, 1) pgrp = bb.data.getVar('SECTION', d, 1)
pversion = bb.data.getVar('PV', d, 1)
plicense = bb.data.getVar('LICENSE',d,1)
psection = bb.data.getVar('SECTION',d,1)
phome = bb.data.getVar('HOMEPAGE', d, 1)
prelease = bb.data.getVar('PR',d,1)
ppriority = bb.data.getVar('PRIORITY',d,1)
pdepends = bb.data.getVar('DEPENDS',d,1)
pbugtracker = bb.data.getVar('BUGTRACKER',d,1)
ppe = bb.data.getVar('PE',d,1)
psrcuri = bb.data.getVar('SRC_URI',d,1)
found = 0 found = 0
for uri in src_uri.split(): for uri in src_uri.split():
@@ -609,6 +628,14 @@ python do_checkpkg() {
(pname, maintainer, pproto, pcurver, pmver, pupver, pmstatus, pstatus)) (pname, maintainer, pproto, pcurver, pmver, pupver, pmstatus, pstatus))
f.close() f.close()
bb.utils.unlockfile(lf) bb.utils.unlockfile(lf)
"""write into get_pkg_info log file to supply data for package report system"""
lf2 = bb.utils.lockfile(logfile2 + ".lock")
f2 = open(logfile2, "a")
f2.write("%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n" % \
(pname,pversion,pupver,plicense,psection, phome,prelease, ppriority,pdepends,pbugtracker,ppe,pdesc,pstatus,pmver,psrcuri))
f2.close()
bb.utils.unlockfile(lf2)
} }
addtask checkpkgall after do_checkpkg addtask checkpkgall after do_checkpkg