bitbake: fetch2/git: Make latest_versionstring extract tags with slashes correctly

Before, everything up to the last slash was removed when extracting the
names of the tags. This would lead to that a tag such as "agent/11.0.0"
would be incorrectly identified as "11.0.0", which would then be treated
as a correct version matching "^(?P<pver>\d+(\.\d+)+)".

(Bitbake rev: 8b21024b9966d5158ac4a77e87ffb935c2a57764)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Peter Kjellerstedt
2024-02-19 01:38:05 +01:00
committed by Richard Purdie
parent 9694fe1d68
commit d25f6b970f
2 changed files with 9 additions and 2 deletions

View File

@@ -833,6 +833,7 @@ class Git(FetchMethod):
bb.note("Could not list remote: %s" % str(e))
return pupver
rev_tag_re = re.compile(r"([0-9a-f]{40})\s+refs/tags/(.*)")
pver_re = re.compile(d.getVar('UPSTREAM_CHECK_GITTAGREGEX') or r"(?P<pver>([0-9][\.|_]?)+)")
nonrel_re = re.compile(r"(alpha|beta|rc|final)+")
@@ -841,7 +842,12 @@ class Git(FetchMethod):
if not line:
break
tag = line.split("/")[-1]
m = rev_tag_re.match(line)
if not m:
continue
(revision, tag) = m.groups()
# Ignore non-released branches
if nonrel_re.search(tag):
continue
@@ -857,7 +863,6 @@ class Git(FetchMethod):
continue
verstring = pver
revision = line.split()[0]
pupver = (verstring, revision)
return pupver

View File

@@ -1420,6 +1420,8 @@ class FetchLatestVersionTest(FetcherTest):
: "1.3.59",
("remake", "git://github.com/rocky/remake.git;protocol=https;branch=master", "f05508e521987c8494c92d9c2871aec46307d51d", r"(?P<pver>(\d+\.(\d+\.)*\d*(\+dbg\d+(\.\d+)*)*))", "")
: "3.82+dbg0.9",
("sysdig", "git://github.com/draios/sysdig.git;branch=dev;protocol=https", "4fb6288275f567f63515df0ff0a6518043ecfa9b", r"^(?P<pver>\d+(\.\d+)+)", "10.0.0")
: "0.28.0",
}
test_wget_uris = {