+2011-03-12 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ Version 1.26
+ * NEWS, configure.ac: Update.
+ * po/POTFILES.in: Remove paxexit.c (see bb971a1e).
+
+2011-03-08 Paul Eggert <eggert@cs.ucla.edu>
+
+ --atime-preserve=replace: fix correctness and performance bugs
+ reported by Eric Blake in
+ <http://lists.gnu.org/archive/html/bug-tar/2011-03/msg00000.html>.
+ * src/compare.c (diff_file): Do not restore atime of size-zero
+ files.
+ * src/create.c (dump_file0): Likewise. Also, do not restore atime
+ when fd is zero, because that indicates a file we haven't opened.
+
+2011-02-23 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/tar.texi: Adjust example commands and output for accuracy.
+ The original problem was reported by Michael Witten in
+ <http://lists.gnu.org/archive/html/bug-tar/2011-02/msg00033.html>.
+
+2011-02-16 Paul Eggert <eggert@cs.ucla.edu>
+
+ tar: if (p) free (p); -> free (p);
+ There is no longer (since SunOS 4) any need to guard against
+ free (NULL), so replace each "if (p) free (p);" with "free (p);".
+ From Jim Meyering in
+ <http://lists.gnu.org/archive/html/bug-tar/2011-01/msg00026.html>.
+ * src/incremen.c (scan_directory, read_directory_file): As above.
+ (try_purge_directory): Likewise.
+ * src/list.c (read_header): Likewise.
+ * src/misc.c (assign_string): Likewise.
+
+2010-12-14 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ Correctly store long sparse file names in PAX archives.
+ * src/sparse.c (pax_dump_header_1): Make sure the created header
+ name is
+ shorter than NAME_FIELD_SIZE bytes.
+ * tests/sparse04.at: New testcase.
+ * tests/Makefile.am (TESTSUITE_AT): Add sparse04.at.
+ * tests/testsuite.at: Include sparse04.at.
+ * NEWS: Update.
+
+2010-12-07 Paul Eggert <eggert@cs.ucla.edu>
+
+ tests: make the truncate test smaller and less buggy (tiny change)
+ Reported by Solar Designer in
+ <http://lists.gnu.org/archive/html/bug-tar/2010-12/msg00003.html>.
+ * tests/truncate.at: Use a smaller test case, and make its
+ race condition less likely.
+
+2010-11-27 Paul Eggert <eggert@cs.ucla.edu>
+
+ tests: skip SIGPIPE-dependent tests in environments ignoring
+ SIGPIPE
+ Problem reported by Sven Joachim in
+ <http://lists.gnu.org/archive/html/bug-tar/2010-11/msg00043.html>.
+ * tests/remfiles01.at: Use AT_SIGPIPE_PREREQ.
+ * tests/sigpipe.at: Likewise.
+ * tests/testsuite.at (AT_SIGPIPE_PREREQ): New macro.
+
+2010-11-25 Paul Eggert <eggert@cs.ucla.edu>
+
+ tar: work around NetBSD and Tru64 symlink incompatibility
+ with POSIX
+ Problem reported by Bruno Haible in
+ <http://lists.gnu.org/archive/html/bug-gnulib/2010-11/msg00306.html>.
+ * src/extract.c (maybe_recoverable): Also treat EFTYPE (if
+ defined)
+ and ENOTSUP like ELOOP.
+
+2010-11-24 Paul Eggert <eggert@cs.ucla.edu>
+
+ tar: adjust to paxutils change: paxexit.c -> paxexit-status.c
+ * lib/Makefile.am (libtar_a_SOURCES): paxexit.c renamed to
+ paxexit-status.c.
+
+ tar: remove unused function dir_removed_diag
+ * src/common.h (dir_removed_diag): Remove unused decl.
+ * src/misc.c (dir_removed_diag): Remove unused function.
+
+2010-11-23 Paul Eggert <eggert@cs.ucla.edu>
+
+ tar: work around FreeBSD symlink incompatibility with POSIX
+ * src/extract.c (maybe_recoverable): Treat EMLINK like ELOOP, for
+ FreeBSD. Problem reported by Christian Weisgerber in
+ <http://lists.gnu.org/archive/html/bug-tar/2010-11/msg00080.html>.
+
+ * src/names.c: tar: fix bug with --one-file-system
+ --listed-incremental
+ Problem (and idea for fix) reported by Martin Weigel
+ <http://lists.gnu.org/archive/html/bug-tar/2010-11/msg00071.html>.
+ * src/common.h (is_individual_file): Remove decl.
+ * src/create.c (dump_file0): Replace "is_individual_file (p)"
+ with "top_level".
+ * src/incremen.c (procdir): Replace "!is_individual_file
+ (name_buffer)" with "st->parent". Fix bug with --one-file-system
+ and --listed-incremental.
+ * src/names.c (individual_file_table, register_individual_file):
+ (is_individual_file): Remove. All uses removed.
+
+ tests: new test listed04 for --one-file-system
+ --listed-incremental
+ * tests/Makefile.am (TESTSUITE_AT): Add listed04.at.
+ * tests/listed04.at: New file.
+ * tests/testsuite.at: Include it.
+
+ scripts: fix option parsing
+ Problem reported by Dennis Wydra in
+ <http://lists.gnu.org/archive/html/bug-tar/2010-11/msg00082.html>.
+ * scripts/backup.in: Accept "-l LEVEL". Be more systematic about
+ backslashes inside ``; it shouldn't matter for modern shells but
+ it might matter for older ones.
+ * scripts/restore.in: Likewise.
+ * scripts/backup.in: Adjust implementation of -t/--time to match
+ the new implementation of -l/--level.
+
+2010-11-15 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ Issue a warning if the archive being compared contais transformed
+ file names.
+ * src/common.h (transform_program_p): New proto.
+ * src/transform.c (transform_program_p): New function.
+ * src/compare.c (verify_volume): Warn if the archive contains
+ transformed file names.
+
+ Minor change.
+ * doc/tar.texi: Reword the description of decompress-program.
+
+2010-11-15 Paul Eggert <eggert@cs.ucla.edu>
+
+ tar: fix --verify option, which broke in 1.24
+ * NEWS: Document this.
+ * src/compare.c (verify_volume): Decode the header before invoking
+ diff_archive, as diff_archive no longer does this as of the
+ 2010-06-28 commit. Also, don't try to invoke diff_archive on a
+ zero block.
+ * tests/Makefile.am (TESTSUITE_AT): Add verify.at.
+ * tests/testsuite.at: Include verify.at.
+ * tests/verify.at: New file.
+
+2010-11-08 Paul Eggert <eggert@cs.ucla.edu>
+
+ Merge branch 'master' of ssh://git.sv.gnu.org/srv/git/tar
+
+2010-11-08 Jim Meyering <meyering@redhat.com>
+
+ tests: avoid spurious failure when VERSION_CONTROL envvar is set
+ * tests/backup01.at: Unset VERSION_CONTROL. Otherwise,
+ when set to e.g., 'always', it would cause this test to fail.
+
+2010-11-07 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ Version 1.25
+ * configure.ac: Version 1.25
+ * NEWS: Describe the changes.
+
+2010-11-05 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ Run alternative decompression programs if the principal one is
+ not available.
+ Some compression programs are able to handle various compression
+ formats
+ (e.g. `gzip' can decompress files created by `compress', `xz'
+ is able
+ to handle lzma, etc.) Tar tries to use such programs for
+ decompression
+ if the principal decompressor cannot be started.
+
+ * src/buffer.c (compress_type): Swap ct_none and ct_tar.
+ (archive_compression_type): New static variable.
+ (zip_magic): Remove program and option fields.
+ (zip_program): New structure and static.
+ (compress_program): Remove macro.
+ (find_zip_program): New static function.
+ (first_decompress_program,next_decompress_program): New functions.
+ (open_compressed_archive): Set archive_compression_type instead of
+ use_compress_program_option.
+ * src/common.h (first_decompress_program)
+ (next_decompress_program): New functions.
+ (WARN_DECOMPRESS_PROGRAM): New flag.
+ (WARN_VERBOSE_WARNINGS): Include WARN_DECOMPRESS_PROGRAM.
+ * src/warning.c (warning_args): Add "decompress-program".
+ (warning_types): Add WARN_DECOMPRESS_PROGRAM.
+ * src/system.c (run_decompress_program): New function.
+ (sys_child_open_for_uncompress): Use run_decompress_program
+ instead of calling execlp directly.
+
+2010-11-02 Paul Eggert <eggert@cs.ucla.edu>
+
+ tests: fix some issues with signals, timestamps, "test" typo
+ * tests/extrac17.at: Add --warning=no-timestamp, to avoid
+ bogus warning due to NFS clock skew.
+ * tests/remfiles01.at: Discard diagnostics that some shells
+ generate about broken pipes.
+ * tests/sigpipe.at: Likewise.
+ * tests/remfiles01.at: Fix typo: "test $EC" was written where
+ "test $EC -ne 0" was intended.
+
+2010-11-01 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ Fix extraction of device nodes.
+ * src/extract.c (extract_node): Do not mask out node type.
+ The bug was introduced in commit ea964cce.
+
+2010-10-28 Paul Eggert <eggert@cs.ucla.edu>
+
+ tar: don't cross struct member boundaries with OLDGNU_MAGIC
+ * src/create.c (write_gnu_long_link, start_header): Access
+ header->buffer + offsetof (struct posix_header, magic), instead of
+ header->header.magic, when reading or writing the OLDGNU_MAGIC
+ pattern. The code violates the C standard without this change,
+ and GCC warns about this if fortify checking is enabled. It's not
+ a bug on traditional (i.e., non-debugging) platforms, but it does
+ violate the C standard so it should be fixed. Problem originally
+ reported by John Emil Karlson in
+ <http://lists.gnu.org/archive/html/bug-tar/2010-04/msg00023.html>.
+ * src/list.c (decode_header): Likewise.
+
+ tests: port to sh variants that squirrel away file descriptors
+ OpenBSD /bin/sh, and some other sh variants, squirrel away file
+ descriptors before closing them. For example, for "cat 3<&-" they
+ first dup file descriptor 3 to a fd that is 10 or greater, then
+ close 3 (because if "cat" had been a builtin command like ":" then
+ they would have wanted to avoid the fork and restore the fd after
+ ":" finished); and they treat ordinary (forking) commands the same
+ as builtin commands. This approach fails after "ulimit -n 10".
+ Work around this deficiency by closing the file descriptors before
+ invoking ulimit. Problem reported by Christian Weisgerber in
+ <http://lists.gnu.org/archive/html/bug-tar/2010-10/msg00041.html>;
+ solution suggested by Jilles Tjoelker in
+ <http://article.gmane.org/gmane.comp.shells.dash/415>.
+
+ * tests/extrac11.at (scarce file descriptors): Close file
+ descriptors before invoking ulimit -n.
+
+2010-10-27 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ Transform file names when updating and appendig to archives.
+ This complements 28e91b48.
+
+ * src/common.h (transform_stat_info): New prototype.
+ * src/list.c (transform_stat_info): Remove static qualifier.
+ * src/update.c (update_archive): Call transform_stat_info.
+ * tests/Makefile.am (TESTSUITE_AT): Add append03.at
+ * tests/testsuite.at: Include append03.at
+
+2010-10-27 Paul Eggert <eggert@cs.ucla.edu>
+
+ tests: port to Solaris diff
+ * tests/extrac13.at: Don't assume that "diff -c" outputs nothing
+ when there are no differences. This is not true on Solaris,
+ where it outputs "No differences encounted".
+
+ tar: fix -x --overwrite bug (no --dereference, ! O_NOFOLLOW)
+ This bug was discovered on Solaris 8. On older hosts lacking
+ O_NOFOLLOW, tar -x --overwrite (without --dereference) follows
+ symbolic links, causing the "extract over symlinks" test to fail.
+
+ * src/extract.c (open_output_file): If O_NOFOLLOW is needed but
+ does not work, check for a symlink separately.
+
+ tar: don't use "((" in shell scripts
+ * tests/extrac11.at: Replace "((" with "( (" in shell scripts, as
+ "((" is not portable to the Korn shell, and POSIX 1003.1-2008 says
+ that "((" is not portable.
+
+2010-10-26 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ Make sure name matching occurs before name transformation.
+ The commit 9c194c99 altered that order.
+
+ * src/list.c (transform_stat_info): New function. Split off from
+ decode_header.
+ (read_and): Call transform_stat_info right before do_something,
+ and after deciding if we should proceed with this member name,
+ so that name matching occurs before name transformation.
+
+ * tests/extrac17.at: New file.
+ * tests/Makefile.am (TESTSUITE_AT): Add extrac17.at
+ * tests/testsuite.at: Include extrac17.at.
+
+2010-10-26 Paul Eggert <eggert@cs.ucla.edu>
+
+ tar: don't assume stdin is open when testing fd limits
+ * tests/extrac11.at: Redirect stdin from /dev/null, in case
+ the parent 'make' is running with stdin closed.
+
+2010-10-26 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ Further fixes in bootstrap.
+ * bootstrap: Restore the default for gnulib_path
+ (symlink_to_dir): Re-apply 67cad07.
+
+2010-10-26 Paul Eggert <eggert@cs.ucla.edu>
+
+ tar: fix bug with -C and extracting directories
+ Problem reported by Denis Excoffier in
+ <http://lists.gnu.org/archive/html/bug-tar/2010-10/msg00034.html>.
+
+ * src/extract.c (extract_dir): Use mkdirat, not mkdir.
+ * tests/extrac16.at: New file, to test for this bug.
+ * tests/Makefile.am (TESTSUITE_AT): Add it.
+ * tests/testsuite.at: Include it.
+
+ This file is a placeholder. It will be replaced with the actual
+ ChangeLog
+ by make dist. Run make ChangeLog if you wish to create it
+ earlier.
+
2010-10-25 Sergey Poznyakoff <gray@gnu.org.ua>
Version 1.24
* tests/extrac05.at: Skip test if creating
sparse file fails.
- Fix eventual memory override and fd exhaustion in create.c
- Both bugs reported by Kamil Dudka.
-
+ Fix eventual memory override and fd exhaustion in create.c Both
+ bugs reported by Kamil Dudka.
* src/create.c (check_exclusion_tags): Do not keep
pointer to a location within tagname: it may change
after xrealloc. Use byte offset instead.