diff options
author | Jose Quaresma <quaresma.jose@gmail.com> | 2021-11-07 11:36:52 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2021-11-15 11:53:55 +0000 |
commit | c989f6f4e0388da7a66a1dfccdcdd949a4f8193b (patch) | |
tree | 412bf75584d0d50bd47d60415bed120deeb7141b /meta/classes/sstate.bbclass | |
parent | 8392750d4fdebdbc30d5bdb136899ce8c638f035 (diff) | |
download | poky-c989f6f4e0388da7a66a1dfccdcdd949a4f8193b.tar.gz |
sstate: another fix for touching files inside pseudo
This patch is a fixup for 676757f "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: e7d94a9cc5ab1b2c5d160fd06d643a4bc3409d26)
Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 5b9210d66c78bb3f79056e5586cea7b0edd714a9)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/classes/sstate.bbclass')
-rw-r--r-- | meta/classes/sstate.bbclass | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/meta/classes/sstate.bbclass b/meta/classes/sstate.bbclass index 38dc3bff30..930d87424f 100644 --- a/meta/classes/sstate.bbclass +++ b/meta/classes/sstate.bbclass | |||
@@ -859,12 +859,12 @@ python sstate_report_unihash() { | |||
859 | # | 859 | # |
860 | sstate_unpack_package () { | 860 | sstate_unpack_package () { |
861 | tar -xvzf ${SSTATE_PKG} | 861 | tar -xvzf ${SSTATE_PKG} |
862 | # update .siginfo atime on local/NFS mirror | 862 | # update .siginfo atime on local/NFS mirror if it is a symbolic link |
863 | [ -O ${SSTATE_PKG}.siginfo ] && [ -w ${SSTATE_PKG}.siginfo ] && [ -h ${SSTATE_PKG}.siginfo ] && touch -a ${SSTATE_PKG}.siginfo | 863 | [ ! -h ${SSTATE_PKG}.siginfo ] || touch -a ${SSTATE_PKG}.siginfo 2>/dev/null || true |
864 | # Use "! -w ||" to return true for read only files | 864 | # update each symbolic link instead of any referenced file |
865 | [ ! -w ${SSTATE_PKG} ] || touch --no-dereference ${SSTATE_PKG} | 865 | touch --no-dereference ${SSTATE_PKG} 2>/dev/null || true |
866 | [ ! -w ${SSTATE_PKG}.sig ] || [ ! -e ${SSTATE_PKG}.sig ] || touch --no-dereference ${SSTATE_PKG}.sig | 866 | [ ! -e ${SSTATE_PKG}.sig ] || touch --no-dereference ${SSTATE_PKG}.sig 2>/dev/null || true |
867 | [ ! -w ${SSTATE_PKG}.siginfo ] || [ ! -e ${SSTATE_PKG}.siginfo ] || touch --no-dereference ${SSTATE_PKG}.siginfo | 867 | [ ! -e ${SSTATE_PKG}.siginfo ] || touch --no-dereference ${SSTATE_PKG}.siginfo 2>/dev/null || true |
868 | } | 868 | } |
869 | 869 | ||
870 | BB_HASHCHECK_FUNCTION = "sstate_checkhashes" | 870 | BB_HASHCHECK_FUNCTION = "sstate_checkhashes" |