diff options
| author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2022-05-23 04:40:05 -1000 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2022-05-25 18:00:44 +0100 |
| commit | 03cc5f63bc89aa6ef7c3e52400606c4db30da8f7 (patch) | |
| tree | 0cf31fd78294071661622a3cb417d8d5ad8d3d93 /bitbake/lib/bb | |
| parent | 2fd92929c2f76bb479743860ab8cea0713f30753 (diff) | |
| download | poky-03cc5f63bc89aa6ef7c3e52400606c4db30da8f7.tar.gz | |
bitbake: build: Add clean_stamp API function to allow removal of task stamps
We currently have no API to be able to remove all the potential stamps of a
task. It is unusual to need to do this, particularly as you could race against
other things happening in the system but we do have a use case for this in
cleaning up sysroots in OE-Core. The alternative is to mess with CLEANMASK in
OE-Core but that is just going to add potential for errors.
We need the first part of the make_stamp() function so separate that out so
it can be called seperately.
(Bitbake rev: 494fcfcb7c4469915c67f544997104d81c417266)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 4d671504a25863018ac51c21c005cef0a4d8f05c)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib/bb')
| -rw-r--r-- | bitbake/lib/bb/build.py | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/bitbake/lib/bb/build.py b/bitbake/lib/bb/build.py index af60c3d8f5..55f68b98c5 100644 --- a/bitbake/lib/bb/build.py +++ b/bitbake/lib/bb/build.py | |||
| @@ -835,11 +835,7 @@ def stamp_cleanmask_internal(taskname, d, file_name): | |||
| 835 | 835 | ||
| 836 | return [cleanmask, cleanmask.replace(taskflagname, taskflagname + "_setscene")] | 836 | return [cleanmask, cleanmask.replace(taskflagname, taskflagname + "_setscene")] |
| 837 | 837 | ||
| 838 | def make_stamp(task, d, file_name = None): | 838 | def clean_stamp(task, d, file_name = None): |
| 839 | """ | ||
| 840 | Creates/updates a stamp for a given task | ||
| 841 | (d can be a data dict or dataCache) | ||
| 842 | """ | ||
| 843 | cleanmask = stamp_cleanmask_internal(task, d, file_name) | 839 | cleanmask = stamp_cleanmask_internal(task, d, file_name) |
| 844 | for mask in cleanmask: | 840 | for mask in cleanmask: |
| 845 | for name in glob.glob(mask): | 841 | for name in glob.glob(mask): |
| @@ -850,6 +846,14 @@ def make_stamp(task, d, file_name = None): | |||
| 850 | if name.endswith('.taint'): | 846 | if name.endswith('.taint'): |
| 851 | continue | 847 | continue |
| 852 | os.unlink(name) | 848 | os.unlink(name) |
| 849 | return | ||
| 850 | |||
| 851 | def make_stamp(task, d, file_name = None): | ||
| 852 | """ | ||
| 853 | Creates/updates a stamp for a given task | ||
| 854 | (d can be a data dict or dataCache) | ||
| 855 | """ | ||
| 856 | clean_stamp(task, d, file_name) | ||
| 853 | 857 | ||
| 854 | stamp = stamp_internal(task, d, file_name) | 858 | stamp = stamp_internal(task, d, file_name) |
| 855 | # Remove the file and recreate to force timestamp | 859 | # Remove the file and recreate to force timestamp |
