From: Aníbal Limón Date: Thu, 24 Mar 2016 18:08:19 +0000 (-0600) Subject: fetch2/wget.py: _check_latest_version_by_dir fix prefix detection X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=c760531c6dbf88135ab9f8e6f0784ccbf2cce1e4;p=thirdparty%2Fopenembedded%2Fopenembedded-core-contrib.git fetch2/wget.py: _check_latest_version_by_dir fix prefix detection When prefix is part of the version directory it need to ensure that only version directory is used so remove previous directories if exists. Example: pfx = '/dir1/dir2/v' and version = '2.5' the expected result is 'v2.5' instead of '/dir1/dir2/v2.5'. [YOCTO #8778] Signed-off-by: Aníbal Limón Signed-off-by: Aníbal Limón Signed-off-by: Richard Purdie --- diff --git a/lib/bb/fetch2/wget.py b/lib/bb/fetch2/wget.py index ffae5405b0c..8bc9e93ca05 100644 --- a/lib/bb/fetch2/wget.py +++ b/lib/bb/fetch2/wget.py @@ -438,9 +438,19 @@ class Wget(FetchMethod): for line in soup.find_all('a', href=True): s = dirver_regex.search(line['href'].strip("/")) if s: - version_dir_new = ['', s.group('ver'), ''] + sver = s.group('ver') + + # When prefix is part of the version directory it need to + # ensure that only version directory is used so remove previous + # directories if exists. + # + # Example: pfx = '/dir1/dir2/v' and version = '2.5' the expected + # result is v2.5. + spfx = s.group('pfx').split('/')[-1] + + version_dir_new = ['', sver, ''] if self._vercmp(version_dir, version_dir_new) <= 0: - dirver_new = s.group('pfx') + s.group('ver') + dirver_new = spfx + sver path = ud.path.replace(dirver, dirver_new, True) \ .split(package)[0] uri = bb.fetch.encodeurl([ud.type, ud.host, path,