diff options
Diffstat (limited to 'meta/classes/sstate.bbclass')
| -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 |
