From: Chen Qi <[email protected]>
We want to be able to do stable version upgrade for recipes. For
example, 1.0.0 -> 1.0.1 instead of 1.0.0 -> 1.1.0.
To to this, we need an extra paramter to latest_versionstring
so that we are able to filter out the versions we need. Using regex
has the advantage of adapting to different version schemes.
Signed-off-by: Chen Qi <[email protected]>
---
lib/bb/fetch2/wget.py | 17 +++++++++++------
1 file changed, 11 insertions(+), 6 deletions(-)
diff --git a/lib/bb/fetch2/wget.py b/lib/bb/fetch2/wget.py
index 6ac4306c0..6e186e1ca 100644
--- a/lib/bb/fetch2/wget.py
+++ b/lib/bb/fetch2/wget.py
@@ -492,7 +492,7 @@ class Wget(FetchMethod):
return fetchresult
- def _check_latest_version(self, url, package, package_regex, current_version, ud, d):
+ def _check_latest_version(self, url, package, package_regex, current_version, ud, d, filter_regex=None):
"""
Return the latest version of a package inside a given directory path
If error or no version, return ""
@@ -515,6 +515,11 @@ class Wget(FetchMethod):
newver = self._parse_path(package_regex, str(line))
if newver:
+ if filter_regex:
+ # filter_regex is derived from PV, and uses . as separator
+ # while upstream may be using _ as separator
+ if not re.match(filter_regex, re.sub('_', '.', newver[1])):
+ continue
bb.debug(3, "Upstream version found: %s" % newver[1])
if valid == 0:
version = newver
@@ -532,7 +537,7 @@ class Wget(FetchMethod):
return ""
- def _check_latest_version_by_dir(self, dirver, package, package_regex, current_version, ud, d):
+ def _check_latest_version_by_dir(self, dirver, package, package_regex, current_version, ud, d, filter_regex=None):
"""
Scan every directory in order to get upstream version.
"""
@@ -576,7 +581,7 @@ class Wget(FetchMethod):
ud.user, ud.pswd, {}])
pupver = self._check_latest_version(uri,
- package, package_regex, current_version, ud, d)
+ package, package_regex, current_version, ud, d, filter_regex)
if pupver:
version[1] = pupver
@@ -637,7 +642,7 @@ class Wget(FetchMethod):
return package_custom_regex_comp
- def latest_versionstring(self, ud, d):
+ def latest_versionstring(self, ud, d, filter_regex=None):
"""
Manipulate the URL and try to obtain the latest package version
@@ -678,11 +683,11 @@ class Wget(FetchMethod):
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), '')
+ package, package_regex, current_version, ud, d, filter_regex), '')
uri = bb.fetch.encodeurl([ud.type, ud.host, path, ud.user, ud.pswd, {}])
else:
uri = regex_uri
return (self._check_latest_version(uri, package, package_regex,
- current_version, ud, d), '')
+ current_version, ud, d, filter_regex), '')
--
2.34.1
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.