Module Name: src Committed By: christos Date: Sun Jan 12 16:08:31 UTC 2020
Modified Files: src/external/bsd/libarchive/dist/libarchive: archive.h archive_private.h archive_util.c archive_write_disk_posix.c src/external/bsd/libarchive/dist/tar: bsdtar.c Log Message: Introduce ARCHIVE_EXTRACT_ATOMIC and set it by default on bsdtar. This flag changes the way that regular files are extracted: Instead of removing existing files first and re-creating them in order to replace their contents, a temporary file is created and when writing to the temporary file is completed, the file is rename(2)d to the final destination name. This has the effect of presenting a consistent view of the file to the system (either the file with the new contents or the file with the old contents). Removing and overwriting the file has the undesired side effect that the the system can either not see the file at all (from the time it is being removed till the time it is being re-created), or worse it can see partial file contents. This is problematic when extracting system files (for example shared libraries). Perhaps there should be a flag to disable it, when for example it is not desirable because of space constraints, but then again one can specify to unlink the file before. (this is pull request 1289) To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 \ src/external/bsd/libarchive/dist/libarchive/archive.h cvs rdiff -u -r1.1.1.3 -r1.2 \ src/external/bsd/libarchive/dist/libarchive/archive_private.h cvs rdiff -u -r1.1.1.4 -r1.2 \ src/external/bsd/libarchive/dist/libarchive/archive_util.c cvs rdiff -u -r1.1.1.2 -r1.2 \ src/external/bsd/libarchive/dist/libarchive/archive_write_disk_posix.c cvs rdiff -u -r1.1.1.4 -r1.2 src/external/bsd/libarchive/dist/tar/bsdtar.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.