sstate: fix touching files inside pseudo

running the 'id' command inside the sstate_create_package
function shows that this funcion run inside the pseudo:

 uid=0(root) gid=0(root) groups=0(root)

The check for touch files [ ! -w ${SSTATE_PKG} ]
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).

We can avoid this test running the touch and mask any return errors
that we have.

(From OE-Core rev: 590de1dd89cfd5f0ca7395880ba88b27ee35470d)

Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit f6e7445c94443544e92fda97a017ce93393c5f84)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Jose Quaresma
2021-10-20 18:25:46 +01:00
committed by Richard Purdie
parent 1f3c535350
commit bc73d2c63b

View File

@@ -796,7 +796,7 @@ sstate_task_postfunc[dirs] = "${WORKDIR}"
sstate_create_package () {
# Exit early if it already exists
if [ -e ${SSTATE_PKG} ]; then
[ ! -w ${SSTATE_PKG} ] || touch ${SSTATE_PKG}
touch ${SSTATE_PKG} 2>/dev/null || true
return
fi
@@ -830,7 +830,7 @@ sstate_create_package () {
else
rm $TFILE
fi
[ ! -w ${SSTATE_PKG} ] || touch ${SSTATE_PKG}
touch ${SSTATE_PKG} 2>/dev/null || true
}
python sstate_sign_package () {