summaryrefslogtreecommitdiffstats
path: root/meta/classes/utility-tasks.bbclass
diff options
context:
space:
mode:
Diffstat (limited to 'meta/classes/utility-tasks.bbclass')
-rw-r--r--meta/classes/utility-tasks.bbclass72
1 files changed, 64 insertions, 8 deletions
diff --git a/meta/classes/utility-tasks.bbclass b/meta/classes/utility-tasks.bbclass
index c3001ecfc8..a4db4f8beb 100644
--- a/meta/classes/utility-tasks.bbclass
+++ b/meta/classes/utility-tasks.bbclass
@@ -276,7 +276,6 @@ python do_checkpkg() {
276 276
277 """generate package information from .bb file""" 277 """generate package information from .bb file"""
278 pname = bb.data.getVar('PN', d, 1) 278 pname = bb.data.getVar('PN', d, 1)
279 pcurver = bb.data.getVar('PV', d, 1)
280 pdesc = bb.data.getVar('DESCRIPTION', d, 1) 279 pdesc = bb.data.getVar('DESCRIPTION', d, 1)
281 pgrp = bb.data.getVar('SECTION', d, 1) 280 pgrp = bb.data.getVar('SECTION', d, 1)
282 281
@@ -296,6 +295,11 @@ python do_checkpkg() {
296 295
297 (type, host, path, user, pswd, parm) = bb.decodeurl(uri) 296 (type, host, path, user, pswd, parm) = bb.decodeurl(uri)
298 if type in ['http', 'https', 'ftp']: 297 if type in ['http', 'https', 'ftp']:
298 pcurver = bb.data.getVar('PV', d, 1)
299 else:
300 pcurver = bb.data.getVar("SRCREV", d, 1)
301
302 if type in ['http', 'https', 'ftp']:
299 newver = pcurver 303 newver = pcurver
300 altpath = path 304 altpath = path
301 dirver = "-" 305 dirver = "-"
@@ -342,12 +346,52 @@ python do_checkpkg() {
342 if re.match("Err", newver): 346 if re.match("Err", newver):
343 pstatus = newver + ":" + altpath + ":" + dirver + ":" + curname 347 pstatus = newver + ":" + altpath + ":" + dirver + ":" + curname
344 elif type == 'git': 348 elif type == 'git':
345 """N.B. Now hardcode UPDATE for git/svn/cvs.""" 349 if user:
346 pupver = "master" 350 gituser = user + '@'
347 pstatus = "UPDATE" 351 else:
352 gituser = ""
353
354 if 'protocol' in parm:
355 gitproto = parm['protocol']
356 else:
357 gitproto = "rsync"
358
359 gitcmd = "git ls-remote %s://%s%s%s HEAD 2>&1" % (gitproto, gituser, host, path)
360 print gitcmd
361 ver = os.popen(gitcmd).read()
362 if ver and re.search("HEAD", ver):
363 pupver = ver.split("\t")[0]
364 if pcurver == pupver:
365 pstatus = "MATCH"
366 else:
367 pstatus = "UPDATE"
368 else:
369 pstatus = "ErrGitAccess"
348 elif type == 'svn': 370 elif type == 'svn':
349 pupver = "HEAD" 371 options = []
350 pstatus = "UPDATE" 372 if user:
373 options.append("--username %s" % user)
374 if pswd:
375 options.append("--password %s" % pswd)
376 svnproto = 'svn'
377 if 'proto' in parm:
378 svnproto = parm['proto']
379 if 'rev' in parm:
380 pcurver = parm['rev']
381
382 svncmd = "svn info %s %s://%s%s/%s/ 2>&1" % (" ".join(options), svnproto, host, path, parm["module"])
383 print svncmd
384 svninfo = os.popen(svncmd).read()
385 for line in svninfo.split("\n"):
386 if re.search("^Last Changed Rev:", line):
387 pupver = line.split(" ")[-1]
388 if pcurver == pupver:
389 pstatus = "MATCH"
390 else:
391 pstatus = "UPDATE"
392
393 if re.match("Err", pstatus):
394 pstatus = "ErrSvnAccess"
351 elif type == 'cvs': 395 elif type == 'cvs':
352 pupver = "HEAD" 396 pupver = "HEAD"
353 pstatus = "UPDATE" 397 pstatus = "UPDATE"
@@ -360,10 +404,22 @@ python do_checkpkg() {
360 404
361 if re.match("Err", pstatus): 405 if re.match("Err", pstatus):
362 pstatus += ":%s%s" % (host, path) 406 pstatus += ":%s%s" % (host, path)
407
408 """Read from manual distro tracking fields as alternative"""
409 pmver = bb.data.getVar("RECIPE_LATEST_VERSION", d, 1)
410 if not pmver:
411 pmver = "N/A"
412 pmstatus = "ErrNoRecipeData"
413 else:
414 if pmver == pcurver:
415 pmstatus = "MATCH"
416 else:
417 pmstatus = "UPDATE"
418
363 lf = bb.utils.lockfile(logfile + ".lock") 419 lf = bb.utils.lockfile(logfile + ".lock")
364 f = open(logfile, "a") 420 f = open(logfile, "a")
365 f.write("\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n" % \ 421 f.write("%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n" % \
366 (pname, pgrp, pproto, pcurver, pupver, pstatus, pdesc)) 422 (pname, pgrp, pproto, pcurver, pmver, pupver, pmstatus, pstatus, pdesc))
367 f.close() 423 f.close()
368 bb.utils.unlockfile(lf) 424 bb.utils.unlockfile(lf)
369} 425}