diff options
-rw-r--r-- | meta/classes/sstate.bbclass | 14 |
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 | ||
875 | python sstate_sign_package () { | 879 | python 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 |