Options to control option handling in file lists. The --verbatim-files-from option disables option handling in file lists. The --no-verbatim-files-from reverts its effect. The --null option implies --verbatim-files-from. This restores the documented behavior, broken by 26538c9b. * src/common.h (verbatim_files_from_option): New global. * src/names.c (name_elt): New member: file.verbatim (name_add_file): Take 'verbatim' state as its third parameter. (read_next_name): Don't call handle_option if file.verbatim is set. * src/tar.c: New options --verbatim-files-from and --no-verbatim-files-from. * doc/tar.texi: Document --verbatim-files-from and --no-verbatim-files-from options. * NEWS: Update. * configure.ac: Version 1.28.90 * tests/T-null2.at: New testcase. * tests/Makefile.am: Update. * tests/testsuite.at: Update.
tar: fix symlink race and symlink transform bug Problem reported by Tobias Stoeckmann in: http://lists.gnu.org/archive/html/bug-tar/2015-07/msg00004.html * gnulib.modules: Add areadlinkat-with-size. * src/create.c: Include areadlink.h. (dump_file0): Use areadlinkat_with_size, rather than trying to do it by hand, incorrectly. This also avoids assumption that the symlink contents fit on the stack. Also, use the transformed link name, not the original link name, when deciding whether the name is long enough to require writing a long link.
Fix extraction from concatenated incremental archives. * src/common.h (remove_delayed_set_stat): New proto. * src/extract.c (free_delayed_set_stat) (remove_delayed_set_stat): New function. (apply_nonancestor_delayed_set_stat): Use free_delayed_set_stat. * src/misc.c (safer_rmdir): Remove delayed_set_stat entry corresponding to the removed directory. * tests/incr10.at: New test case. * tests/Makefile.am: Add new test. * tests/testsuite.at: Likewise.
Improve compression format recognition Some comressed archives can pass the checksum test, which makes tar treat them as uncompressed archives. * src/buffer.c (check_compressed_archive): Test the checksum only if the block we read looks like a valid tar header (i.e. has a magic string).
tar: port wordsplit attribute to Sun C Reported by Ted Carr in: http://lists.gnu.org/archive/html/bug-tar/2015-01/msg00002.html * lib/wordsplit.h (__WORDSPLIT_ATTRIBUTE_FORMAT): New macro, taken from Gnulib. (struct wordsplit): Use it. * lib/wordsplit.c (_wsplt_error): Use it.
Honor the pax-option overrides when creating archive. Changes proposed by Denis Excoffier. * NEWS: Fix typos. * doc/tar.texi: Fix typos. Improve recipe for creation of binary equivalent archives. * src/create.c (write_extended): Use the value of the --mtime option (if specified) as the default for exthdr.mtime. * src/xheader.c (xheader_store): Create the header if at least one override is supplied in --pax-option.
Fix bug in sparse file listing List posix archives containing sparse files >8GB correctly and do not fail. This fixes also bug in format of listing for sparse files >8GB - now the real size is printed instead of the effective one (this is not strictly posix format related). * src/list.c: Remove redundant assignment. * src/tar.h: Add new 'real_size' and 'real_size_set' fields in tar_stat_info struct. * src/xheader.c: Correctly handle (especially sparse) file sizes directly in xheader_decode().