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: f6e7445c94443544e92fda97a017ce93393c5f84)

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>
This commit is contained in:
Jose Quaresma
2021-10-20 18:25:46 +01:00
committed by Richard Purdie
parent 700202afb1
commit 676757f187

View File

@@ -830,7 +830,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
@@ -865,7 +865,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 () {