summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta/classes/distrodata.bbclass52
1 files changed, 43 insertions, 9 deletions
diff --git a/meta/classes/distrodata.bbclass b/meta/classes/distrodata.bbclass
index d84b306226..e2cc8fa049 100644
--- a/meta/classes/distrodata.bbclass
+++ b/meta/classes/distrodata.bbclass
@@ -347,7 +347,6 @@ python do_checkpkg() {
347 f = tempfile.NamedTemporaryFile(delete=False, prefix="%s-1-" % pn) 347 f = tempfile.NamedTemporaryFile(delete=False, prefix="%s-1-" % pn)
348 status = internal_fetch_wget(url, d, f) 348 status = internal_fetch_wget(url, d, f)
349 fhtml = f.read() 349 fhtml = f.read()
350
351 if status == "SUCC" and len(fhtml): 350 if status == "SUCC" and len(fhtml):
352 newver = parse_inter(curver) 351 newver = parse_inter(curver)
353 352
@@ -436,6 +435,10 @@ python do_checkpkg() {
436 else: 435 else:
437 """newver still contains a full package name string""" 436 """newver still contains a full package name string"""
438 status = re.search("(\d+[\.\-_])*(\d+[0-9a-zA-Z]*)", newver[1]).group() 437 status = re.search("(\d+[\.\-_])*(\d+[0-9a-zA-Z]*)", newver[1]).group()
438 if "_" in status:
439 status = re.sub("_",".",status)
440 elif "-" in status:
441 status = re.sub("-",".",status)
439 elif not len(fhtml): 442 elif not len(fhtml):
440 status = "ErrHostNoDir" 443 status = "ErrHostNoDir"
441 444
@@ -531,6 +534,12 @@ python do_checkpkg() {
531 534
532 alturi = bb.encodeurl([type, host, altpath, user, pswd, {}]) 535 alturi = bb.encodeurl([type, host, altpath, user, pswd, {}])
533 newver = check_new_version(alturi, curname, d) 536 newver = check_new_version(alturi, curname, d)
537 while(newver == "ErrHostNoDir"):
538 if alturi == "/download":
539 break
540 else:
541 alturi = "/".join(alturi.split("/")[0:-2]) + "/download"
542 newver = check_new_version(alturi, curname, d)
534 if not re.match("Err", newver): 543 if not re.match("Err", newver):
535 pupver = newver 544 pupver = newver
536 if pupver != pcurver: 545 if pupver != pcurver:
@@ -550,13 +559,38 @@ python do_checkpkg() {
550 gitproto = parm['protocol'] 559 gitproto = parm['protocol']
551 else: 560 else:
552 gitproto = "rsync" 561 gitproto = "rsync"
553 562 gitcmd = "git ls-remote %s://%s%s%s *tag* 2>&1" % (gitproto, gituser, host, path)
554 gitcmd = "git ls-remote %s://%s%s%s HEAD 2>&1" % (gitproto, gituser, host, path) 563 gitcmd2 = "git ls-remote %s://%s%s%s HEAD 2>&1" % (gitproto, gituser, host, path)
555 print gitcmd 564 tmp = os.popen(gitcmd).read()
556 ver = os.popen(gitcmd).read() 565 tmp2 = os.popen(gitcmd2).read()
557 if ver and re.search("HEAD", ver): 566 #This is for those repo have tag like: refs/tags/1.2.2
558 pupver = ver.split("\t")[0] 567 if tmp:
559 if pcurver == pupver: 568 tmpline = tmp.split("\n")
569 verflag = 0
570 for line in tmpline:
571 if len(line)==0:
572 break;
573 puptag = line.split("/")[-1]
574 puptag = re.search("[0-9][0-9|\.|_]+[0-9]", puptag)
575 if puptag == None:
576 continue;
577 puptag = puptag.group()
578 puptag = re.sub("_",".",puptag)
579 plocaltag = pversion.split("+")[0]
580 if "git" in plocaltag:
581 plocaltag = plocaltag.split("-")[0]
582 result = bb.utils.vercmp(("0", puptag, ""), ("0", plocaltag, ""))
583 if result > 0:
584 verflag = 1
585 pstatus = "UPADTE"
586 pupver = puptag
587 elif verflag == 0 :
588 pupver = plocaltag
589 pstatus = "MATCH"
590 #This is for those no tag repo
591 elif tmp2:
592 pupver = tmp2.split("\t")[0]
593 if pupver in pversion:
560 pstatus = "MATCH" 594 pstatus = "MATCH"
561 else: 595 else:
562 pstatus = "UPDATE" 596 pstatus = "UPDATE"
@@ -580,7 +614,7 @@ python do_checkpkg() {
580 for line in svninfo.split("\n"): 614 for line in svninfo.split("\n"):
581 if re.search("^Last Changed Rev:", line): 615 if re.search("^Last Changed Rev:", line):
582 pupver = line.split(" ")[-1] 616 pupver = line.split(" ")[-1]
583 if pcurver == pupver: 617 if pupver in pversion:
584 pstatus = "MATCH" 618 pstatus = "MATCH"
585 else: 619 else:
586 pstatus = "UPDATE" 620 pstatus = "UPDATE"