Patchwork [bitbake-devel] build.py: Preserve sigdata files in the stamps directory

login
register
mail settings
Submitter Richard Purdie
Date Nov. 28, 2012, 8:26 p.m.
Message ID <1354134376.15992.5.camel@ted>
Download mbox | patch
Permalink /patch/39841/
State New
Headers show

Comments

Richard Purdie - Nov. 28, 2012, 8:26 p.m.
Leaving the sigdata files around can aid debugging and doesn't harm
anything. This is the easiest way to allow this to happen.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
---
Chris Larson - Nov. 28, 2012, 10:19 p.m.
On Wed, Nov 28, 2012 at 1:26 PM, Richard Purdie <
richard.purdie@linuxfoundation.org> wrote:

> -        bb.utils.remove(mask)
> -
> +        # Preserve sigdata files in the stamps directory
> +        for name in glob.glob(mask):
> +            if name.find("sigdata") != -1:
>

if 'sigdata' not in name:
Chris Larson - Nov. 28, 2012, 10:19 p.m.
On Wed, Nov 28, 2012 at 3:19 PM, Chris Larson <clarson@kergoth.com> wrote:

> On Wed, Nov 28, 2012 at 1:26 PM, Richard Purdie <
> richard.purdie@linuxfoundation.org> wrote:
>
>> -        bb.utils.remove(mask)
>> -
>> +        # Preserve sigdata files in the stamps directory
>> +        for name in glob.glob(mask):
>> +            if name.find("sigdata") != -1:
>>
>
> if 'sigdata' not in name:


Erm, s/not in/in/. You get the idea. Use of 'find' only really makes sense
if you need the locations within the string.
Richard Purdie - Nov. 29, 2012, 12:21 p.m.
On Wed, 2012-11-28 at 15:19 -0700, Chris Larson wrote:
> On Wed, Nov 28, 2012 at 3:19 PM, Chris Larson <clarson@kergoth.com>
> wrote:
>         On Wed, Nov 28, 2012 at 1:26 PM, Richard Purdie
>         <richard.purdie@linuxfoundation.org> wrote:
>                 -        bb.utils.remove(mask)
>                 -
>                 +        # Preserve sigdata files in the stamps
>                 directory
>                 +        for name in glob.glob(mask):
>                 +            if name.find("sigdata") != -1:
>
>         if 'sigdata' not in name:
>
> Erm, s/not in/in/. You get the idea. Use of 'find' only really makes
> sense if you need the locations within the string.

Yes, good point, thanks.

Richard

Patch

diff --git a/bitbake/lib/bb/build.py b/bitbake/lib/bb/build.py
index 8ff7fb2..f9f0a65 100644
--- a/bitbake/lib/bb/build.py
+++ b/bitbake/lib/bb/build.py
@@ -29,6 +29,7 @@  import os
 import sys
 import logging
 import shlex
+import glob
 import bb
 import bb.msg
 import bb.process
@@ -504,8 +505,12 @@  def make_stamp(task, d, file_name = None):
     """
     cleanmask = stamp_cleanmask_internal(task, d, file_name)
     for mask in cleanmask:
-        bb.utils.remove(mask)
-
+        # Preserve sigdata files in the stamps directory
+        for name in glob.glob(mask):
+            if name.find("sigdata") != -1:
+                continue
+            os.unlink(name)
+    
     stamp = stamp_internal(task, d, file_name)
     # Remove the file and recreate to force timestamp
     # change on broken NFS filesystems