summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/bb/fetch2/__init__.py
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2020-08-25 14:49:12 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2020-08-26 09:05:38 +0100
commit1560a4b0cbb8b7ad12623635c64ce43d962e8dce (patch)
tree1e78e359a8f93bd7fe4e3e534ea1f7fabbaaa692 /bitbake/lib/bb/fetch2/__init__.py
parent3cfc4e9fa92ac594a137a4b6b29ae6ca980b26d6 (diff)
downloadpoky-1560a4b0cbb8b7ad12623635c64ce43d962e8dce.tar.gz
bitbake: fetch2: Drop globbing supprt in file:// SRC_URIs
Globbing in file:// urls is terminally broken. Currently when its used, the file checksum code is basically bypassed. This means changes to the source files don't change the task checksum, the task doesn't rebuild when the inputs change and things generally break. To make globbing work generically, we'd have to scan the file system for all possible matches to the glob and log whether they exist or not. We can't simply log the files which exist, we have to also know which files could later exist and influence the choice of file so we know when to reparse. For a simple file://xxx/*, this could be done but for bigger patterns, it becomes much more problemtic. We already support file://xxx/ in urls. So, lets decide we'll not support globs in file://urls. Worse case users can put files in a directory and reference that, moving files into place if needed. Remove all the glob special cases (see the comments if anyone doesn't believe this is terminally broken) and error to the user if they have such urls. (Bitbake rev: 0c9302d950c6f37bfcc4256b41001d63f668bdf7) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib/bb/fetch2/__init__.py')
-rw-r--r--bitbake/lib/bb/fetch2/__init__.py12
1 files changed, 0 insertions, 12 deletions
diff --git a/bitbake/lib/bb/fetch2/__init__.py b/bitbake/lib/bb/fetch2/__init__.py
index 756f60212f..7ec1fea5d0 100644
--- a/bitbake/lib/bb/fetch2/__init__.py
+++ b/bitbake/lib/bb/fetch2/__init__.py
@@ -1195,8 +1195,6 @@ def get_checksum_file_list(d):
1195 paths = ud.method.localpaths(ud, d) 1195 paths = ud.method.localpaths(ud, d)
1196 for f in paths: 1196 for f in paths:
1197 pth = ud.decodedurl 1197 pth = ud.decodedurl
1198 if '*' in pth:
1199 f = os.path.join(os.path.abspath(f), pth)
1200 if f.startswith(dl_dir): 1198 if f.startswith(dl_dir):
1201 # The local fetcher's behaviour is to return a path under DL_DIR if it couldn't find the file anywhere else 1199 # The local fetcher's behaviour is to return a path under DL_DIR if it couldn't find the file anywhere else
1202 if os.path.exists(f): 1200 if os.path.exists(f):
@@ -1365,9 +1363,6 @@ class FetchMethod(object):
1365 # We cannot compute checksums for directories 1363 # We cannot compute checksums for directories
1366 if os.path.isdir(urldata.localpath): 1364 if os.path.isdir(urldata.localpath):
1367 return False 1365 return False
1368 if urldata.localpath.find("*") != -1:
1369 return False
1370
1371 return True 1366 return True
1372 1367
1373 def recommends_checksum(self, urldata): 1368 def recommends_checksum(self, urldata):
@@ -1430,11 +1425,6 @@ class FetchMethod(object):
1430 iterate = False 1425 iterate = False
1431 file = urldata.localpath 1426 file = urldata.localpath
1432 1427
1433 # Localpath can't deal with 'dir/*' entries, so it converts them to '.',
1434 # but it must be corrected back for local files copying
1435 if urldata.basename == '*' and file.endswith('/.'):
1436 file = '%s/%s' % (file.rstrip('/.'), urldata.path)
1437
1438 try: 1428 try:
1439 unpack = bb.utils.to_boolean(urldata.parm.get('unpack'), True) 1429 unpack = bb.utils.to_boolean(urldata.parm.get('unpack'), True)
1440 except ValueError as exc: 1430 except ValueError as exc:
@@ -1613,8 +1603,6 @@ class FetchMethod(object):
1613 """ 1603 """
1614 if os.path.exists(ud.localpath): 1604 if os.path.exists(ud.localpath):
1615 return True 1605 return True
1616 if ud.localpath.find("*") != -1:
1617 return True
1618 return False 1606 return False
1619 1607
1620 def implicit_urldata(self, ud, d): 1608 def implicit_urldata(self, ud, d):