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]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to