<div dir="ltr">Hi,<br><br>I&#39;ve run into a strange problem on master. I have a recipe:<br><br><a href="http://test-bug.bb">test-bug.bb</a><br>===========<br>LICENSE = &quot;CLOSED&quot;<br><br>SRC_URI = &quot;\<br>    file://a \<br>
    file://dir/* \<br>&quot;<br>============<br><br>The accompaning test-bug/ folder looks like:<br>test-bug/a<br>test-bug/b<br>test-bug/dir<br>test-bug/dir/c<br><br>Note the extra file &quot;b&quot;, which is not specified in the SRC_URI.<br>
<br>Adding debug prints according to the patch at the bottom of the mail gives me the following output:<br><br>WARNING: #1 /home/jkroon/Projects/oe-devel/meta-monkey/recipes/test-bug/a /home/jkroon/Projects/oe-devel/meta-monkey/recipes/test-bug/.<br>
WARNING: #2 /home/jkroon/Projects/oe-devel/meta-monkey/recipes/test-bug/a<br>WARNING: #5 /home/jkroon/Projects/oe-devel/meta-monkey/recipes/test-bug/a<br>WARNING: #2 /home/jkroon/Projects/oe-devel/meta-monkey/recipes/test-bug/.<br>
WARNING: #4 /home/jkroon/Projects/oe-devel/meta-monkey/recipes/test-bug/./a<br>WARNING: #4 /home/jkroon/Projects/oe-devel/meta-monkey/recipes/test-bug/./b<br>WARNING: #4 /home/jkroon/Projects/oe-devel/meta-monkey/recipes/test-bug/./dir/c<br>
<br>and running bitbake-diffsigs on the resulting test-bug:do_fetch signature gives me:<br><br>This task depends on the checksums of files: [<br>(&#39;a&#39;, &#39;b026324c6904b2a9cb4b88d6d61c81d1&#39;),<br>(&#39;a&#39;, &#39;b026324c6904b2a9cb4b88d6d61c81d1&#39;),<br>
(&#39;b&#39;, &#39;26ab0db90d72e28ad0ba1e22ee510510&#39;),<br>(&#39;c&#39;, &#39;6d7fce9fee471194aa8b5b6e47267f03&#39;)<br>]<br><br>&#39;a&#39; is duplicated, and &#39;b&#39; is included although I assume it shouldn&#39;t be.<br>
<br>The debug prints I&#39;ve added are:<br><br>diff --git a/lib/bb/fetch2/__init__.py b/lib/bb/fetch2/__init__.py<br>index 8e5342f..15f4081 100644<br>--- a/lib/bb/fetch2/__init__.py<br>+++ b/lib/bb/fetch2/__init__.py<br>
@@ -961,13 +961,16 @@ def get_file_checksums(filelist, pn):<br>         return checksum<br> <br>     checksums = []<br>+    bb.warn(&quot;#1 &quot; + filelist)<br>     for pth in filelist.split():<br>         checksum = None<br>
+        bb.warn(&quot;#2 &quot; + pth)<br>         if &#39;*&#39; in pth:<br>             # Handle globs<br>             for f in glob.glob(pth):<br>                 checksum = checksum_file(f)<br>                 if checksum:<br>
+                    bb.warn(&quot;#3 &quot; + f)<br>                     checksums.append((f, checksum))<br>             continue<br>         elif os.path.isdir(pth):<br>@@ -977,12 +980,14 @@ def get_file_checksums(filelist, pn):<br>
                     fullpth = os.path.join(root, name)<br>                     checksum = checksum_file(fullpth)<br>                     if checksum:<br>+                        bb.warn(&quot;#4 &quot; + fullpth)<br>                         checksums.append((fullpth, checksum))<br>
             continue<br>         else:<br>             checksum = checksum_file(pth)<br> <br>         if checksum:<br>+            bb.warn(&quot;#5 &quot; + pth)<br>             checksums.append((pth, checksum))<br> <br>
     checksums.sort(key=operator.itemgetter(1))<br><br>I&#39;ve tried tracing backwards trying to understand why the &#39;*&#39; gets replaced with a &#39;.&#39;, but I get lost in the cache code.<br><br>-- Jacob<br><br></div>