* [PATCH 0/2] A couple more file checksum fixes
@ 2014-04-08 14:03 Paul Eggleton
2014-04-08 14:03 ` [PATCH 1/2] fetch2: handle wildcards correctly when recording file checksums Paul Eggleton
2014-04-08 14:03 ` [PATCH 2/2] fetch2: fix traceback when a wildcard matches a directory Paul Eggleton
0 siblings, 2 replies; 3+ messages in thread
From: Paul Eggleton @ 2014-04-08 14:03 UTC (permalink / raw)
To: bitbake-devel
The following changes since commit 35c67281775b08925957c32663d587d486944e0e:
hob: add "recipes/images/" to BBFILES when Hob is launched (2014-04-08 13:06:34 +0100)
are available in the git repository at:
git://git.yoctoproject.org/poky-contrib paule/checksumfix2
http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=paule/checksumfix2
Paul Eggleton (2):
fetch2: handle wildcards correctly when recording file checksums
fetch2: fix traceback when a wildcard matches a directory
lib/bb/fetch2/__init__.py | 31 +++++++++++++++++++++----------
1 file changed, 21 insertions(+), 10 deletions(-)
--
1.9.0
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH 1/2] fetch2: handle wildcards correctly when recording file checksums
2014-04-08 14:03 [PATCH 0/2] A couple more file checksum fixes Paul Eggleton
@ 2014-04-08 14:03 ` Paul Eggleton
2014-04-08 14:03 ` [PATCH 2/2] fetch2: fix traceback when a wildcard matches a directory Paul Eggleton
1 sibling, 0 replies; 3+ messages in thread
From: Paul Eggleton @ 2014-04-08 14:03 UTC (permalink / raw)
To: bitbake-devel
The Local fetcher's localpath is returning the parent directory for a
wildcard match; we need to handle this and add the wildcard
specification so that we checksum the correct files.
Fixes [YOCTO #6127].
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
---
lib/bb/fetch2/__init__.py | 3 +++
1 file changed, 3 insertions(+)
diff --git a/lib/bb/fetch2/__init__.py b/lib/bb/fetch2/__init__.py
index 150f864..a9ab75e 100644
--- a/lib/bb/fetch2/__init__.py
+++ b/lib/bb/fetch2/__init__.py
@@ -932,6 +932,9 @@ def get_checksum_file_list(d):
if ud and isinstance(ud.method, local.Local):
ud.setup_localpath(d)
f = ud.localpath
+ 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):
--
1.9.0
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [PATCH 2/2] fetch2: fix traceback when a wildcard matches a directory
2014-04-08 14:03 [PATCH 0/2] A couple more file checksum fixes Paul Eggleton
2014-04-08 14:03 ` [PATCH 1/2] fetch2: handle wildcards correctly when recording file checksums Paul Eggleton
@ 2014-04-08 14:03 ` Paul Eggleton
1 sibling, 0 replies; 3+ messages in thread
From: Paul Eggleton @ 2014-04-08 14:03 UTC (permalink / raw)
To: bitbake-devel
If there is a directory matching a wildcard in SRC_URI when getting file
checksums, we should recurse into that instead of producing an error.
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
---
lib/bb/fetch2/__init__.py | 28 ++++++++++++++++++----------
1 file changed, 18 insertions(+), 10 deletions(-)
diff --git a/lib/bb/fetch2/__init__.py b/lib/bb/fetch2/__init__.py
index a9ab75e..5a03a0e 100644
--- a/lib/bb/fetch2/__init__.py
+++ b/lib/bb/fetch2/__init__.py
@@ -962,24 +962,32 @@ def get_file_checksums(filelist, pn):
return None
return checksum
+ def checksum_dir(pth):
+ # Handle directories recursively
+ dirchecksums = []
+ for root, dirs, files in os.walk(pth):
+ for name in files:
+ fullpth = os.path.join(root, name)
+ checksum = checksum_file(fullpth)
+ if checksum:
+ dirchecksums.append((fullpth, checksum))
+ return dirchecksums
+
checksums = []
for pth in filelist.split():
checksum = None
if '*' in pth:
# Handle globs
for f in glob.glob(pth):
- checksum = checksum_file(f)
- if checksum:
- checksums.append((f, checksum))
+ if os.path.isdir(f):
+ checksums.extend(checksum_dir(f))
+ else:
+ checksum = checksum_file(f)
+ if checksum:
+ checksums.append((f, checksum))
continue
elif os.path.isdir(pth):
- # Handle directories
- for root, dirs, files in os.walk(pth):
- for name in files:
- fullpth = os.path.join(root, name)
- checksum = checksum_file(fullpth)
- if checksum:
- checksums.append((fullpth, checksum))
+ checksums.extend(checksum_dir(pth))
continue
else:
checksum = checksum_file(pth)
--
1.9.0
^ permalink raw reply related [flat|nested] 3+ messages in thread
end of thread, other threads:[~2014-04-08 14:34 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-04-08 14:03 [PATCH 0/2] A couple more file checksum fixes Paul Eggleton
2014-04-08 14:03 ` [PATCH 1/2] fetch2: handle wildcards correctly when recording file checksums Paul Eggleton
2014-04-08 14:03 ` [PATCH 2/2] fetch2: fix traceback when a wildcard matches a directory Paul Eggleton
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox