sstate.bbclass: Remove possibility of file corruption and make package writing atomic
There is currently a race window when creating sstate packages since we don't atomically write the files to SSTATE_DIR. This change ensures we do so by writing to a temporary file and then doing an atomic move. (From OE-Core rev: 52bf113e786a57123a9da98f64442afbc2f1471e) (From OE-Core rev: d527f68bdf167b4a3dcc035968da59677abb70bb) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Joshua Lock <josh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
36e13dd42f
commit
67334bfb26
|
@ -453,12 +453,14 @@ python sstate_task_postfunc () {
|
|||
#
|
||||
sstate_create_package () {
|
||||
cd ${SSTATE_BUILDDIR}
|
||||
TFILE=`mktemp ${SSTATE_PKG}.XXXXXXXX`
|
||||
# Need to handle empty directories
|
||||
if [ "$(ls -A)" ]; then
|
||||
tar -czf ${SSTATE_PKG} *
|
||||
tar -czf $TFILE *
|
||||
else
|
||||
tar -cz --file=${SSTATE_PKG} --files-from=/dev/null
|
||||
tar -cz --file=$TFILE --files-from=/dev/null
|
||||
fi
|
||||
mv $TFILE ${SSTATE_PKG}
|
||||
|
||||
cd ${WORKDIR}
|
||||
rm -rf ${SSTATE_BUILDDIR}
|
||||
|
|
Loading…
Reference in New Issue