summaryrefslogtreecommitdiffstats
path: root/meta/lib/oe/utils.py
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2023-11-06 14:51:12 +0000
committerSteve Sakoman <steve@sakoman.com>2023-12-15 03:54:00 -1000
commit046b70083f3bc9e25f547e8026400032f5c563d9 (patch)
tree1b2931ca5a78a810f2cc34ff3c292fb56282c528 /meta/lib/oe/utils.py
parent825972095a52ed5a6f67c044dc83df31ede19410 (diff)
downloadpoky-046b70083f3bc9e25f547e8026400032f5c563d9.tar.gz
sstate: Ensure sstate searches update file mtime
Commands like "bitbake XXX -S printdiff" search for sstate files but don't download them. This means that local files aren't touched as the download code would do, meaning the sstate cleanup scripts can delete them. This can then lead to obtuse build failures. Have the search code touch local files in the same way as the main code paths would to avoid these files disappearing. Move the function to a common touch() function in lib/oe instead of duplicating code. (From OE-Core rev: 427c43d8e3315fa6872feaa71d135de60c810de7) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit a27fc0bd5706ab5b9c68a0271fcf57377a678cdf) Signed-off-by: Steve Sakoman <steve@sakoman.com>
Diffstat (limited to 'meta/lib/oe/utils.py')
-rw-r--r--meta/lib/oe/utils.py12
1 files changed, 12 insertions, 0 deletions
diff --git a/meta/lib/oe/utils.py b/meta/lib/oe/utils.py
index a3b1bb1087..14a7d07ef0 100644
--- a/meta/lib/oe/utils.py
+++ b/meta/lib/oe/utils.py
@@ -7,6 +7,7 @@
7import subprocess 7import subprocess
8import multiprocessing 8import multiprocessing
9import traceback 9import traceback
10import errno
10 11
11def read_file(filename): 12def read_file(filename):
12 try: 13 try:
@@ -528,3 +529,14 @@ def directory_size(root, blocksize=4096):
528 total += sum(roundup(getsize(os.path.join(root, name))) for name in files) 529 total += sum(roundup(getsize(os.path.join(root, name))) for name in files)
529 total += roundup(getsize(root)) 530 total += roundup(getsize(root))
530 return total 531 return total
532
533# Update the mtime of a file, skip if permission/read-only issues
534def touch(filename):
535 try:
536 os.utime(filename, None)
537 except PermissionError:
538 pass
539 except OSError as e:
540 # Handle read-only file systems gracefully
541 if e.errno != errno.EROFS:
542 raise e