sstate: Update unpack touch code to be consistent

When we unpack sstate files, we want to update the mtime+atime of the sstate
object and any sig/siginfo files, both for the files themselves and symlinks.

The logic was getting a bit hard to follow and wasn't entirely consistent with
only a time in some cases.

Clean it up and be consistent for all the files.

(From OE-Core rev: 147004ef60987039372c977e6c2f304a5414f39f)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 5213ca88cbec4e86b50d8da1fe4c300ca8f5de17)
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
[YC: for [YOCTO #15289] ]
Signed-off-by: Paul Barker <paul@pbarker.dev>
This commit is contained in:
Richard Purdie authored and Paul Barker committed 2026-10-07 16:08:04 +01:00
1 parent a0a07cb4fe
commit 74cbee5aae
1 file changed
+7 -6
+7 -6
View File
@@ -932,12 +932,13 @@ sstate_unpack_package () {
fi
tar -I "$ZSTD" -xvpf ${SSTATE_PKG}
# update .siginfo atime on local/NFS mirror if it is a symbolic link
[ ! -h ${SSTATE_PKG}.siginfo ] || [ ! -e ${SSTATE_PKG}.siginfo ] || touch -a ${SSTATE_PKG}.siginfo 2>/dev/null || true
# update each symbolic link instead of any referenced file
touch --no-dereference ${SSTATE_PKG} 2>/dev/null || true
[ ! -e ${SSTATE_PKG}.sig ] || touch --no-dereference ${SSTATE_PKG}.sig 2>/dev/null || true
[ ! -e ${SSTATE_PKG}.siginfo ] || touch --no-dereference ${SSTATE_PKG}.siginfo 2>/dev/null || true
# Update both any file and any symlink pointing to the file for sigs as well as the file
for file in ${SSTATE_PKG} ${SSTATE_PKG}.sig ${SSTATE_PKG}.siginfo
do
[ ! -e $file ] || touch $file 2>/dev/null || true
[ ! -e $file ] || touch --no-dereference $file 2>/dev/null || true
done
}
BB_HASHCHECK_FUNCTION = "sstate_checkhashes"