summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta/classes/sstate.bbclass14
1 files changed, 9 insertions, 5 deletions
diff --git a/meta/classes/sstate.bbclass b/meta/classes/sstate.bbclass
index b45da4fb23..17dcf4cc17 100644
--- a/meta/classes/sstate.bbclass
+++ b/meta/classes/sstate.bbclass
@@ -862,14 +862,18 @@ sstate_create_package () {
862 fi 862 fi
863 chmod 0664 $TFILE 863 chmod 0664 $TFILE
864 # Skip if it was already created by some other process 864 # Skip if it was already created by some other process
865 if [ ! -e ${SSTATE_PKG} ]; then 865 if [ -h ${SSTATE_PKG} ] && [ ! -e ${SSTATE_PKG} ]; then
866 # There is a symbolic link, but it links to nothing.
867 # Forcefully replace it with the new file.
868 ln -f $TFILE ${SSTATE_PKG} || true
869 elif [ ! -e ${SSTATE_PKG} ]; then
866 # Move into place using ln to attempt an atomic op. 870 # Move into place using ln to attempt an atomic op.
867 # Abort if it already exists 871 # Abort if it already exists
868 ln $TFILE ${SSTATE_PKG} && rm $TFILE 872 ln $TFILE ${SSTATE_PKG} || true
869 else 873 else
870 rm $TFILE 874 touch ${SSTATE_PKG} 2>/dev/null || true
871 fi 875 fi
872 touch ${SSTATE_PKG} 2>/dev/null || true 876 rm $TFILE
873} 877}
874 878
875python sstate_sign_package () { 879python sstate_sign_package () {
@@ -905,7 +909,7 @@ sstate_unpack_package () {
905 909
906 tar -I "$ZSTD" -xvpf ${SSTATE_PKG} 910 tar -I "$ZSTD" -xvpf ${SSTATE_PKG}
907 # update .siginfo atime on local/NFS mirror if it is a symbolic link 911 # update .siginfo atime on local/NFS mirror if it is a symbolic link
908 [ ! -h ${SSTATE_PKG}.siginfo ] || touch -a ${SSTATE_PKG}.siginfo 2>/dev/null || true 912 [ ! -h ${SSTATE_PKG}.siginfo ] || [ ! -e ${SSTATE_PKG}.siginfo ] || touch -a ${SSTATE_PKG}.siginfo 2>/dev/null || true
909 # update each symbolic link instead of any referenced file 913 # update each symbolic link instead of any referenced file
910 touch --no-dereference ${SSTATE_PKG} 2>/dev/null || true 914 touch --no-dereference ${SSTATE_PKG} 2>/dev/null || true
911 [ ! -e ${SSTATE_PKG}.sig ] || touch --no-dereference ${SSTATE_PKG}.sig 2>/dev/null || true 915 [ ! -e ${SSTATE_PKG}.sig ] || touch --no-dereference ${SSTATE_PKG}.sig 2>/dev/null || true