Currently, get_recipe_upstream_version blindly takes the first entry in SRC_URI to see if the recipe is at the latest version. If UPSTREAM_CHECK_URI is specified in a recipe, it is probably what should be used to check for the latest version. Use that as the first check, otherwise default back to the first entry in SRC_URI.
wget was doing it's own check for UPSTREAM_CHECK_URI. Removing this in favor of the common one now being done in recipeutils.py. Signed-off-by: Jon Mason <[email protected]> --- bitbake/lib/bb/fetch2/wget.py | 37 +++++++++++++++-------------------- meta/lib/oe/recipeutils.py | 9 +++++++-- 2 files changed, 23 insertions(+), 23 deletions(-) diff --git a/bitbake/lib/bb/fetch2/wget.py b/bitbake/lib/bb/fetch2/wget.py index dc025800e659..0342f895646d 100644 --- a/bitbake/lib/bb/fetch2/wget.py +++ b/bitbake/lib/bb/fetch2/wget.py @@ -629,27 +629,22 @@ class Wget(FetchMethod): return ('', '') bb.debug(3, "latest_versionstring, regex: %s" % (package_regex.pattern)) - uri = "" - regex_uri = d.getVar("UPSTREAM_CHECK_URI") - if not regex_uri: - path = ud.path.split(package)[0] - - # search for version matches on folders inside the path, like: - # "5.7" in http://download.gnome.org/sources/${PN}/5.7/${PN}-${PV}.tar.gz - dirver_regex = re.compile(r"(?P<dirver>[^/]*(\d+\.)*\d+([-_]r\d+)*)/") - m = dirver_regex.findall(path) - if m: - pn = d.getVar('PN') - dirver = m[-1][0] - - dirver_pn_regex = re.compile(r"%s\d?" % (re.escape(pn))) - if not dirver_pn_regex.search(dirver): - return (self._check_latest_version_by_dir(dirver, - package, package_regex, current_version, ud, d), '') - - uri = bb.fetch.encodeurl([ud.type, ud.host, path, ud.user, ud.pswd, {}]) - else: - uri = regex_uri + path = ud.path.split(package)[0] + + # search for version matches on folders inside the path, like: + # "5.7" in http://download.gnome.org/sources/${PN}/5.7/${PN}-${PV}.tar.gz + dirver_regex = re.compile(r"(?P<dirver>[^/]*(\d+\.)*\d+([-_]r\d+)*)/") + m = dirver_regex.findall(path) + if m: + pn = d.getVar('PN') + dirver = m[-1][0] + + dirver_pn_regex = re.compile(r"%s\d?" % (re.escape(pn))) + if not dirver_pn_regex.search(dirver): + return (self._check_latest_version_by_dir(dirver, + package, package_regex, current_version, ud, d), '') + + uri = bb.fetch.encodeurl([ud.type, ud.host, path, ud.user, ud.pswd, {}]) return (self._check_latest_version(uri, package, package_regex, current_version, ud, d), '') diff --git a/meta/lib/oe/recipeutils.py b/meta/lib/oe/recipeutils.py index de1fbdd3a8c8..a42609060cd9 100644 --- a/meta/lib/oe/recipeutils.py +++ b/meta/lib/oe/recipeutils.py @@ -1041,8 +1041,13 @@ def get_recipe_upstream_version(rd): ru['datetime'] = datetime.now() return ru - # XXX: we suppose that the first entry points to the upstream sources - src_uri = src_uris.split()[0] + # If UPSTREAM_CHECK_URI is specified, assume it is correct and use + # it. Otherwise, use the first SRC_URI specified to determine the + # latest version. + if rd.getVar('UPSTREAM_CHECK_URI'): + src_uri = str(rd.getVar('UPSTREAM_CHECK_URI')) + else: + src_uri = src_uris.split()[0] uri_type, _, _, _, _, _ = decodeurl(src_uri) (pv, pfx, sfx) = get_recipe_pv_with_pfx_sfx(rd.getVar('PV'), uri_type) -- 2.30.2
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#197876): https://lists.openembedded.org/g/openembedded-core/message/197876 Mute This Topic: https://lists.openembedded.org/mt/105293221/21656 Group Owner: [email protected] Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
