mirror of
https://git.yoctoproject.org/poky
synced 2026-05-02 18:32:15 +02:00
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>
This commit is contained in:
@@ -1195,8 +1195,6 @@ def get_checksum_file_list(d):
|
||||
paths = ud.method.localpaths(ud, d)
|
||||
for f in paths:
|
||||
pth = ud.decodedurl
|
||||
if '*' in pth:
|
||||
f = os.path.join(os.path.abspath(f), pth)
|
||||
if f.startswith(dl_dir):
|
||||
# The local fetcher's behaviour is to return a path under DL_DIR if it couldn't find the file anywhere else
|
||||
if os.path.exists(f):
|
||||
@@ -1365,9 +1363,6 @@ class FetchMethod(object):
|
||||
# We cannot compute checksums for directories
|
||||
if os.path.isdir(urldata.localpath):
|
||||
return False
|
||||
if urldata.localpath.find("*") != -1:
|
||||
return False
|
||||
|
||||
return True
|
||||
|
||||
def recommends_checksum(self, urldata):
|
||||
@@ -1430,11 +1425,6 @@ class FetchMethod(object):
|
||||
iterate = False
|
||||
file = urldata.localpath
|
||||
|
||||
# Localpath can't deal with 'dir/*' entries, so it converts them to '.',
|
||||
# but it must be corrected back for local files copying
|
||||
if urldata.basename == '*' and file.endswith('/.'):
|
||||
file = '%s/%s' % (file.rstrip('/.'), urldata.path)
|
||||
|
||||
try:
|
||||
unpack = bb.utils.to_boolean(urldata.parm.get('unpack'), True)
|
||||
except ValueError as exc:
|
||||
@@ -1613,8 +1603,6 @@ class FetchMethod(object):
|
||||
"""
|
||||
if os.path.exists(ud.localpath):
|
||||
return True
|
||||
if ud.localpath.find("*") != -1:
|
||||
return True
|
||||
return False
|
||||
|
||||
def implicit_urldata(self, ud, d):
|
||||
|
||||
Reference in New Issue
Block a user