mirror of
https://git.yoctoproject.org/poky
synced 2026-04-09 20:02:21 +02:00
sstate: another fix for touching files inside pseudo
This patch is a fixup for676757f"sstate: fix touching files inside pseudo" running the 'id' command inside the sstate_unpack_package function shows that this funcion run inside the pseudo: uid=0(root) gid=0(root) groups=0(root) The check for [ -w ${SSTATE_PKG} ] and [ -O ${SSTATE_PKG}.siginfo ] will always return true and the touch can fail when the real user don't have permission or in readonly filesystem. As the documentation refers: - the file test operator "-w" check if the file has write permission (for the user running the test). - the file test operator "-O" check if you are owner of file We can avoid this test running the touch and mask any return errors that we have. (From OE-Core rev: 29fc85997ade490ae46ffca37ef8e1a56957c876) (From OE-Core rev: a5240d78f287ff5f3c5831af69e6e0ca3feaf769) Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit5b9210d66c) Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
42f080deba
commit
03e2fa220c
@@ -863,12 +863,12 @@ python sstate_report_unihash() {
|
||||
#
|
||||
sstate_unpack_package () {
|
||||
tar -xvzf ${SSTATE_PKG}
|
||||
# update .siginfo atime on local/NFS mirror
|
||||
[ -O ${SSTATE_PKG}.siginfo ] && [ -w ${SSTATE_PKG}.siginfo ] && [ -h ${SSTATE_PKG}.siginfo ] && touch -a ${SSTATE_PKG}.siginfo
|
||||
# Use "! -w ||" to return true for read only files
|
||||
[ ! -w ${SSTATE_PKG} ] || touch --no-dereference ${SSTATE_PKG}
|
||||
[ ! -w ${SSTATE_PKG}.sig ] || [ ! -e ${SSTATE_PKG}.sig ] || touch --no-dereference ${SSTATE_PKG}.sig
|
||||
[ ! -w ${SSTATE_PKG}.siginfo ] || [ ! -e ${SSTATE_PKG}.siginfo ] || touch --no-dereference ${SSTATE_PKG}.siginfo
|
||||
# update .siginfo atime on local/NFS mirror if it is a symbolic link
|
||||
[ ! -h ${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
|
||||
}
|
||||
|
||||
BB_HASHCHECK_FUNCTION = "sstate_checkhashes"
|
||||
|
||||
Reference in New Issue
Block a user