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 da29225983..caa25815e0 100644 --- a/meta/classes/sstate.bbclass +++ b/meta/classes/sstate.bbclass | |||
| @@ -827,14 +827,18 @@ sstate_create_package () { | |||
| 827 | fi | 827 | fi |
| 828 | chmod 0664 $TFILE | 828 | chmod 0664 $TFILE |
| 829 | # Skip if it was already created by some other process | 829 | # Skip if it was already created by some other process |
| 830 | if [ ! -e ${SSTATE_PKG} ]; then | 830 | if [ -h ${SSTATE_PKG} ] && [ ! -e ${SSTATE_PKG} ]; then |
| 831 | # There is a symbolic link, but it links to nothing. | ||
| 832 | # Forcefully replace it with the new file. | ||
| 833 | ln -f $TFILE ${SSTATE_PKG} || true | ||
| 834 | elif [ ! -e ${SSTATE_PKG} ]; then | ||
| 831 | # Move into place using ln to attempt an atomic op. | 835 | # Move into place using ln to attempt an atomic op. |
| 832 | # Abort if it already exists | 836 | # Abort if it already exists |
| 833 | ln $TFILE ${SSTATE_PKG} && rm $TFILE | 837 | ln $TFILE ${SSTATE_PKG} || true |
| 834 | else | 838 | else |
| 835 | rm $TFILE | 839 | touch ${SSTATE_PKG} 2>/dev/null || true |
| 836 | fi | 840 | fi |
| 837 | touch ${SSTATE_PKG} 2>/dev/null || true | 841 | rm $TFILE |
| 838 | } | 842 | } |
| 839 | 843 | ||
| 840 | python sstate_sign_package () { | 844 | python sstate_sign_package () { |
| @@ -864,7 +868,7 @@ python sstate_report_unihash() { | |||
| 864 | sstate_unpack_package () { | 868 | sstate_unpack_package () { |
| 865 | tar -xvzf ${SSTATE_PKG} | 869 | tar -xvzf ${SSTATE_PKG} |
| 866 | # update .siginfo atime on local/NFS mirror if it is a symbolic link | 870 | # update .siginfo atime on local/NFS mirror if it is a symbolic link |
| 867 | [ ! -h ${SSTATE_PKG}.siginfo ] || touch -a ${SSTATE_PKG}.siginfo 2>/dev/null || true | 871 | [ ! -h ${SSTATE_PKG}.siginfo ] || [ ! -e ${SSTATE_PKG}.siginfo ] || touch -a ${SSTATE_PKG}.siginfo 2>/dev/null || true |
| 868 | # update each symbolic link instead of any referenced file | 872 | # update each symbolic link instead of any referenced file |
| 869 | touch --no-dereference ${SSTATE_PKG} 2>/dev/null || true | 873 | touch --no-dereference ${SSTATE_PKG} 2>/dev/null || true |
| 870 | [ ! -e ${SSTATE_PKG}.sig ] || touch --no-dereference ${SSTATE_PKG}.sig 2>/dev/null || true | 874 | [ ! -e ${SSTATE_PKG}.sig ] || touch --no-dereference ${SSTATE_PKG}.sig 2>/dev/null || true |
