"""generate package information from .bb file"""
pname = bb.data.getVar('PN', d, 1)
- pcurver = bb.data.getVar('PV', d, 1)
pdesc = bb.data.getVar('DESCRIPTION', d, 1)
pgrp = bb.data.getVar('SECTION', d, 1)
pstatus = "ErrUnknown"
(type, host, path, user, pswd, parm) = bb.decodeurl(uri)
+ if type in ['http', 'https', 'ftp']:
+ pcurver = bb.data.getVar('PV', d, 1)
+ else:
+ pcurver = bb.data.getVar("SRCREV", d, 1)
+
if type in ['http', 'https', 'ftp']:
newver = pcurver
altpath = path
if re.match("Err", newver):
pstatus = newver + ":" + altpath + ":" + dirver + ":" + curname
elif type == 'git':
- """N.B. Now hardcode UPDATE for git/svn/cvs."""
- pupver = "master"
- pstatus = "UPDATE"
+ if user:
+ gituser = user + '@'
+ else:
+ gituser = ""
+
+ if 'protocol' in parm:
+ gitproto = parm['protocol']
+ else:
+ gitproto = "rsync"
+
+ gitcmd = "git ls-remote %s://%s%s%s HEAD 2>&1" % (gitproto, gituser, host, path)
+ print gitcmd
+ ver = os.popen(gitcmd).read()
+ if ver and re.search("HEAD", ver):
+ pupver = ver.split("\t")[0]
+ if pcurver == pupver:
+ pstatus = "MATCH"
+ else:
+ pstatus = "UPDATE"
+ else:
+ pstatus = "ErrGitAccess"
elif type == 'svn':
- pupver = "HEAD"
- pstatus = "UPDATE"
+ options = []
+ if user:
+ options.append("--username %s" % user)
+ if pswd:
+ options.append("--password %s" % pswd)
+ svnproto = 'svn'
+ if 'proto' in parm:
+ svnproto = parm['proto']
+ if 'rev' in parm:
+ pcurver = parm['rev']
+
+ svncmd = "svn info %s %s://%s%s/%s/ 2>&1" % (" ".join(options), svnproto, host, path, parm["module"])
+ print svncmd
+ svninfo = os.popen(svncmd).read()
+ for line in svninfo.split("\n"):
+ if re.search("^Last Changed Rev:", line):
+ pupver = line.split(" ")[-1]
+ if pcurver == pupver:
+ pstatus = "MATCH"
+ else:
+ pstatus = "UPDATE"
+
+ if re.match("Err", pstatus):
+ pstatus = "ErrSvnAccess"
elif type == 'cvs':
pupver = "HEAD"
pstatus = "UPDATE"
if re.match("Err", pstatus):
pstatus += ":%s%s" % (host, path)
+
+ """Read from manual distro tracking fields as alternative"""
+ pmver = bb.data.getVar("RECIPE_LATEST_VERSION", d, 1)
+ if not pmver:
+ pmver = "N/A"
+ pmstatus = "ErrNoRecipeData"
+ else:
+ if pmver == pcurver:
+ pmstatus = "MATCH"
+ else:
+ pmstatus = "UPDATE"
+
lf = bb.utils.lockfile(logfile + ".lock")
f = open(logfile, "a")
- f.write("\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n" % \
- (pname, pgrp, pproto, pcurver, pupver, pstatus, pdesc))
+ f.write("%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n" % \
+ (pname, pgrp, pproto, pcurver, pmver, pupver, pmstatus, pstatus, pdesc))
f.close()
bb.utils.unlockfile(lf)
}
RECIPE_STATUS_pn-initscripts = "green"
DEPENDENCY_CHECK_pn-initscripts = "not done"
RECIPE_LATEST_VERSION_pn-initscripts = "1.0"
-RECIPE_PATCH_pn-initscripts+* = "many local scripts"
+RECIPE_PATCH_pn-initscripts = "many local scripts"
RECIPE_INTEL_SECTION_pn-initscripts = "base utils"
RECIPE_TIME_BETWEEN_LAST_TWO_RELEASES_pn-initscripts = "n/a"
RECIPE_LATEST_RELEASE_DATE_pn-initscripts = "n/a"
RECIPE_STATUS_pn-keymaps = "yellow" # LICENSE
DEPENDENCY_CHECK_pn-keymaps = "not done"
RECIPE_LATEST_VERSION_pn-keymaps = "1.0"
-RECIPE_PATCH_pn-keymaps+* = "many local keymap files"
+RECIPE_PATCH_pn-keymaps = "many local keymap files"
RECIPE_INTEL_SECTION_pn-keymaps = "base utils"
RECIPE_TIME_BETWEEN_LAST_TWO_RELEASES_pn-keymaps = "n/a"
RECIPE_LATEST_RELEASE_DATE_pn-keymaps = "n/a"
RECIPE_STATUS_pn-network-suspend-scripts = "yellow" # no PV
DEPENDENCY_CHECK_pn-network-suspend-scripts = "not done"
RECIPE_LATEST_VERSION_pn-network-suspend-scripts = "1.0"
-RECIPE_PATCH_pn-network-suspend-scripts+* = "local scripts"
+RECIPE_PATCH_pn-network-suspend-scripts = "local scripts"
RECIPE_INTEL_SECTION_pn-network-suspend-scripts = "base utils"
RECIPE_TIME_BETWEEN_LAST_TWO_RELEASES_pn-network-suspend-scripts = "n/a"
RECIPE_LATEST_RELEASE_DATE_pn-network-suspend-scripts = "n/a"
RECIPE_STATUS_pn-opkg-collateral = "yellow" # license
DEPENDENCY_CHECK_pn-opkg-collateral = "not done"
RECIPE_LATEST_VERSION_pn-opkg-collateral = "1.0"
-RECIPE_PATCH_pn-opkg-collateral+* = "local"
+RECIPE_PATCH_pn-opkg-collateral = "local"
RECIPE_INTEL_SECTION_pn-opkg-collateral = "base utils"
RECIPE_TIME_BETWEEN_LAST_TWO_RELEASES_pn-opkg-collateral = "n/a"
RECIPE_LATEST_RELEASE_DATE_pn-opkg-collateral = "n/a"