Import upstream version 1.27
[debian/tar] / ChangeLog
index bb3a1013b9b2d5b18b5629c9298e3a7269c93a59..3dbd67a7c62b6e45de5e00e1abb3e07adb2dbda8 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
+2013-10-06  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Version 1.27
+
+       * NEWS: Update.
+       * configure.ac: Update.
+
+2013-10-06  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Minor fixes.
+
+       * src/names.c: Include argp.h
+       * tests/testsuite.at (AT_XATTRS_UTILS_PREREQ)
+       (AT_SELINUX_UTILS_PREREQ,AT_ACLS_UTILS_PREREQ)
+       (AT_CAPABILITIES_UTILS_PREREQ)
+       (AT_XATTRS_PREREQ,AT_SELINUX_PREREQ)
+       (AT_ACLS_PREREQ): Use POSIX-compatible syntax for
+       mktemp.
+       * tests/incr08.at: Fix find usage.
+
+2013-10-05  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Xfail the remfiles09b test.
+
+       * tests/remfiles09b.at: Turn into expected failure.
+
+2013-10-05  Nathan Stratton Treadway  <nathanst@ontko.com>
+
+       Tiny change
+
+       * scripts/tar-snapshot-edit: Mention --show-snapshot-field-ranges
+       option
+
+2013-10-05  Pavel Raiskup  <praiskup@redhat.com>
+
+       Tiny change
+
+       * configure.ac (RSH): Define as AC_ARG_VAR.
+
+2013-10-05  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Fix namespace contamination in testsuite.
+
+       * tests/append01.at: Use m4_pushdef/m4_popdef to define local
+       macros.
+       * tests/delete03.at: Likewise.
+       * tests/exclude06.at: Likewise.
+       * tests/incr04.at: Likewise.
+       * tests/link03.at: Likewise.
+       * tests/long01.at: Likewise.
+       * tests/longv7.at: Likewise.
+       * tests/lustar01.at: Likewise.
+       * tests/lustar02.at: Likewise.
+       * tests/lustar03.at: Likewise.
+       * tests/multiv05.at: Likewise.
+       * tests/sparse04.at: Likewise.
+
+2013-10-05  Nathan Stratton Treadway  <nathanst@ontko.com>
+
+       Provide comprehensive testcases for various file removal modes.
+
+       * tests/Makefile.am: Add new testcases.
+       * tests/testsuite.at: Likewise.
+       * tests/incr09.at: Add description.
+       * tests/remfiles04a.at: New file.
+       * tests/remfiles05.at: Rename to ...
+       * tests/remfiles04b.at: ... this.
+       * tests/remfiles04.at: Rename to ...
+       * tests/remfiles04c.at: ... this.
+       * tests/remfiles05a.at: New file.
+       * tests/remfiles05b.at: New file.
+       * tests/remfiles06.at: Rename to ...
+       * tests/remfiles05c.at: ... this.
+       * tests/remfiles06a.at: New file.
+       * tests/remfiles06b.at: New file.
+       * tests/remfiles06c.at: New file.
+       * tests/remfiles07a.at: New file.
+       * tests/remfiles07b.at: New file.
+       * tests/remfiles07c.at: New file.
+       * tests/remfiles08a.at: New file.
+       * tests/remfiles08b.at: New file.
+       * tests/remfiles08c.at: New file.
+       * tests/remfiles08.at: Rename to ...
+       * tests/remfiles09a.at: ... this.
+       * tests/remfiles09b.at: New file.
+       * tests/remfiles07.at: Rename to ...
+       * tests/remfiles09c.at: ... this.
+
+2013-10-03  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Tiny changes.
+
+       * src/misc.c: Fix comments, rename wd.cwd to wd.abspath (Nathan
+       Stratton
+       Treadway);
+       * src/tar.c (options): Reword description of the --starting-file
+       and
+       --preserve-order options.
+       (decode_options): Both --starting-file and --preserve-order
+       have meaning
+       only when used together with an archive reading command. (Pavel
+       Raiskup).
+
+2013-10-01  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Revamp tar_getcwd/normalize_filename stuff.
+
+       The changes are based on the discussion with Nathan.
+
+       * src/common.h (normalize_filename): Take two arguments. All
+       callers updated.
+       (tar_getcwd): Replaced with ..
+       (tar_getcdpath): New proto.
+       * src/misc.c (normalize_filename): Take two arguments.
+       (chdir_arg): Populate cwd along with creating the
+       structure.
+       (tar_getcwd): Removed.
+       (tar_getcdpath): New function.
+
+       * tests/incr09.at: New test case.
+       * tests/Makefile.am: Add new tests.
+       * tests/testsuite.at: Likewise.
+
+2013-09-27  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Bugfix
+
+       * tests/remfiles08.at: Restore missing find
+
+2013-09-26  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Use relative addressing in deferred unlinks.
+
+       * src/common.h (tar_dirname): New function.
+       * src/misc.c (normalize_filename_x): Make extern.
+       (tar_dirname): New function.
+       (tar_getcwd): Take into account absoulte pathnames.
+       * src/unlink.c (deferred_unlink) <dir_idx>: New member; keeps the
+       value of chdir_current at the moment of structure allocation.
+       (flush_deferred_unlinks): Use chdir_do and relative addressing.
+       (queue_deferred_unlink): Initialize dir_idx.
+       * tests/Makefile.am: Add new tests.
+       * tests/testsuite.at: Add new tests.
+       * tests/remfiles06.at: Fix description.
+       * tests/remfiles07.at: Fix description.
+       * tests/remfiles08.at: New test case.
+
+2013-09-25  Nathan Stratton Treadway  <nathanst@ontko.com>
+
+       Improve tar-snapshot-edit
+
+       Support architecture-specific field ranges for the "-c" function.
+       Better handle negative or larger-than-32-bit field values even
+       when running in 32-bit Perl (for the default "print a summary"
+       function)
+
+2013-09-25  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Improve tar_getcwd
+
+       * src/common.h (tar_getcwd): Return pointer is const.
+       * src/misc.c (wd) <cwd>: New member.
+       (chdir_arg): Initialize cwd.
+       (tar_getcwd): Use cwd member to cache the result.  Take into
+       account absolute pathnames,
+       (normalize_filename): Don't free the value
+       returned from tar_getcwd.
+       * src/names.c (name_next_elt): Remove leftover call chdir().
+       * tests/Makefile.am: Add new tests.
+       * tests/testsuite.at: Likewise.
+
+       * tests/incr08.at: New testcase.
+       * tests/remfiles04.at: New testcase.
+       * tests/remfiles05.at: New testcase.
+       * tests/remfiles06.at: New testcase.
+       * tests/remfiles07.at: New testcase.
+
+2013-09-24  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Fix normalize_filename.
+
+       The function did not take into account eventual -C options, which
+       in particular led to various problems when using -C and
+       --remove-files
+       together.
+
+       * src/common.h (namebuf_add_dir,namebuf_finish)
+       (tar_getcwd): New prototypes.
+       * src/misc.c (namebuf_add_dir,namebuf_finish)
+       (tar_getcwd): New functions.
+       (normalize_filename): Use tar_getcwd.
+
+2013-09-23  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Changes for compatibility with Slackware installation scripts.
+
+       * src/buffer.c (short_read): the "Record size" message
+       is controlled by the WARN_RECORD_SIZE warning_option bit.
+       * src/common.h (keep_directory_symlink_option): New global.
+       (WARN_RECORD_SIZE): New constant.
+       (WARN_VERBOSE_WARNINGS): Add WARN_RECORD_SIZE.
+       * src/extract.c (extract_dir): If keep_directory_symlink_option is
+       set, follow symlinks to directories.
+       * src/suffix.c (compression_suffixes): Add support for txz
+       suffix.
+       * src/tar.c (KEEP_DIRECTORY_SYMLINK_OPTION): New constant.
+       (options): New option --keep-directory-symlink.
+       (parse_opt): Handle this option.
+       * src/warning.c: Implement "record-size" warning control.
+
+       * NEWS: Update.
+       * doc/tar.texi: Document new features.
+
+2013-09-21  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Fix error message (complements 0ea6e686)
+
+       * src/tar.c (set_subcommand_option): Mention --delete in the
+       error message.
+
+2013-09-15  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Improve the incr07 test
+
+2013-09-15  Nathan Stratton Treadway  <nathanst@ontko.com>
+
+       Implement the --show-snapshot-field-ranges option
+
+       * src/common.h (show_snapshot_field_ranges): New prototype.
+       * src/incremen.c (show_snapshot_field_ranges): New function.
+       * src/tar.c: New option --show-snapshot-field-ranges.
+       * doc/snapshot.texi: Document the --show-snapshot-field-ranges
+       option.
+       * doc/tar.texi: Likewise.
+
+2013-09-15  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Take into account chdir_fd when extracting from incremental dumps.
+
+       * src/common.h (tar_savedir): New prototype.
+       * src/misc.c (tar_savedir): New function.
+       (remove_any_file): Use tar_savedir.
+       * src/incremen.c (try_purge_directory): Use tar_savedir.
+       * src/update.c (update_archive): Use tar_savedir.
+       * tests/incr07.at: New testcase.
+       * tests/Makefile.am (TESTSUITE_AT): Add new test.
+       * tests/testsuite.at: Likewise.
+       * THANKS: Updated.
+
+2013-09-15  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Minor fix
+
+       * src/tar.c (main): Mention --delete in the error message.
+       * THANKS: Update
+
+2013-09-13  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * src/names.c (file_list_name): Properly prototype.
+
+2013-09-13  Paul Eggert  <eggert@cs.ucla.edu>
+
+       tar: don't warn about zero timestamps
+
+       * src/extract.c (check_time): Suppress warniing when t.tv_sec
+       == 0.
+       Problem reported by Denis Excoffier.
+
+2013-08-19  Pavel Raiskup  <praiskup@redhat.com>
+
+       Minor fix in the testsuite.
+
+       * tests/T-cd.at: sort the 'tar cf' output.
+
+2013-08-17  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Improve error diagnostics
+
+       * src/names.c (file_list_name): New static function.
+       (add_file_id): If a filelist is being read twice, print the names
+       of the files that caused it.
+       * tests/T-rec.at: New test case.
+       * tests/Makefile.am: Add new file.
+       * tests/testsuite.at: Include new file.
+
+2013-08-16  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Revamp initial name collection functions to ensure proper
+       argument ordering.
+
+       * src/names.c (NELT_NOOP): New constant
+       (name_elt) <next,prev>: New members.
+       (name_array,allocated_entries,entries,scanned): Remove.
+       (check_name_alloc): Remove function.
+       (name_elt_alloc): New static.
+       (name_list_adjust,name_list_advance): New functions.
+       (name_add_name,name_add_dir)
+       (name_add_file): Use new allocation functions.
+       (read_next_name): Advance list head pointer as necessary
+       before returning.
+       (name_next_elt): Read elements from list.
+       * tests/T-cd.at: New file.
+       * tests/T-mult.at: New file.
+       * tests/T-nest.at: New file.
+       * tests/Makefile.am: Add new testcases.
+       * tests/testsuite.at: Likewise.
+
+2013-08-16  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Don't treat attempts to read an already read file list as
+       fatal errors.
+
+       * src/names.c (add_file_id): Report error and return 1 if the file
+       has already been read.
+       (read_next_name): Don't try to open file if add_file_id returns 1.
+       (name_next_elt): Simplify conditional.
+
+2013-08-16  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Minor change.
+
+       * src/names.c (name_next_elt): Simplify conditional.
+
+2013-08-15  Pavel Raiskup  <praiskup@redhat.com>
+
+       Fix use of uninitialized memory
+
+       * src/names.c (name_add_file): Initialize the ep->v.file.fp
+       pointer
+       after structure allocation.
+
+2013-08-05  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Minor changes
+
+       * src/names.c (handle_option): Use program_invocation_short_name
+       instead of the constant string.
+       (read_next_name): Remove unused variable.
+
+2013-08-04  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Update the docs.
+
+       * doc/tar.texi: Parsing of the options found in the file list
+       follows the same rules as for command line.  Remove the obsolete
+       description.  This complements 26538c9b.
+
+2013-08-04  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Fix interacton of --verbose and --append.
+
+       * src/buffer.c (_open_archive): don't overwrite existing archive
+       if given the --verify option.
+       * tests/append04.at: New file.
+       * tests/Makefile.am: Add new testcase.
+       * tests/testsuite.at: Add new testcase.
+       * THANKS: Update.
+
+2013-08-04  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Bugfix.
+
+       * src/names.c (read_name_from_file): Fix a typo. Remove
+       unused variable.
+
+2013-08-04  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Reduce memory consuption when handling the -T option.
+
+       The commit cdb27293 made the -T option more flexible, but
+       incurred a very considerable memory overhead by storing
+       all file names in the argument array.  In case of very
+       big file lists this caused tar to run out of memory.  This
+       was reported by Christian Wetzel <wetzel@phoenix-pacs.de>
+       on March 14, 2013
+       (http://lists.gnu.org/archive/html/bug-tar/2013-03/msg00018.html).
+
+       On the other hand, Michal Žeidl discovered that tar misfunctioned
+       when given empty file lists or lists with the trailing newline
+       misssing in the last entry.  This was reported by Pavel Raiskup
+       on July 23
+       (http://lists.gnu.org/archive/html/bug-tar/2013-07/msg00009.html
+       and
+       msg00010.html).
+
+       This change fixes both issues.
+
+       * src/common.h (name_add_file,request_stdin): New prototype.
+       (more_options): New prototype.
+       * src/names.c (NELT_FILE): New entry type.
+       (name_elt) <file>: New union member.
+       (name_add_file): New function.
+       (read_name_from_file): New function, a rewrite of
+       the same function from tar.c
+       (read_next_name,copy_name): New static functions.
+       (name_next_elt): Handle NELT_FILE entries.
+       * src/tar.c (request_stdin): Make extern.
+       (read_name_from_file,add_file_id)
+       (update_argv): Removed.
+       (parse_opt): Change handling of the -T option.
+       (more_options): New function.
+
+       * tests/T-null.at: Rewrite test.
+       * tests/T-zfile.at: New file.
+       * tests/T-nonl.at: New file.
+       * tests/Makefile.am: Add new testcases.
+       * tests/testsuite.at: Likewise.
+
+       * THANKS: Update.
+
+2013-06-29  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Fix the compatibility check for the --occurrence option.
+
+       * src/tar.c (SUBCL_OCCUR): New class.
+       (subcommand_class): Update.
+       (decode_options): Accept the --occurrence option
+       with any subcommand from the SUBCL_OCCUR class.
+
+2013-06-29  Pavel Raiskup  <praiskup@redhat.com>
+
+       testsuite: do not resist on file order in archive
+
+       On my Fedora 19 box, the exclude08 & exclude11 tests failed before
+       this fix.  The reason was that the directory traversing chosen the
+       file order differently than the testsuite expected.
+
+       * tests/exclude08.at: Sort the tarball content output.
+       * tests/exclude09.at: Likewise.
+       * tests/exclude10.at: Likewise.
+       * tests/exclude11.at: Likewise.
+       * tests/exclude12.at: Likewise.
+       * tests/exclude13.at: Likewise.
+       * tests/exclude14.at: Likewise.
+       * tests/exclude15.at: Likewise.
+       * tests/exclude16.at: Likewise.
+
+2013-06-29  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Improve checks for incompatible options.
+
+       * src/common.h (READ_LIKE_SUBCOMMAND): Remove define.
+       * src/tar.c (IS_SUBCOMMAND_CLASS): New macro.
+       (decode_options): Use IS_SUBCOMMAND_CLASS in checking
+       option compatibility.
+       Accept the --verify option only with subcommands that
+       write to the archive.
+
+       * tests/opcomp01.at: New test case.
+       * tests/opcomp02.at: New test case.
+       * tests/opcomp03.at: New test case.
+       * tests/opcomp04.at: New test case.
+       * tests/opcomp05.at: New test case.
+       * tests/opcomp06.at: New test case.
+       * tests/Makefile.am: Add new testcases.
+       * tests/testsuite.at: Likewise.
+
+2013-06-28  Paul Eggert  <eggert@cs.ucla.edu>
+
+       tar: port to Mingw Shell
+
+       * src/extract.c (extract_symlink) [!HAVE_SYMLINK]:
+       Fix typo by replacing WARN_SYMBOLIC_CAST with WARN_SYMLINK_CAST.
+       Problem reported by kaka in
+       <http://lists.gnu.org/archive/html/bug-tar/2013-06/msg00008.html>.
+
+2013-05-06  Paul Eggert  <eggert@cs.ucla.edu>
+
+       maint: revert previous change
+
+       It wasn't actually needed.  Reported by Stefano Lattarini in
+       <http://lists.gnu.org/archive/html/bug-tar/2013-04/msg00041.html>.
+       * configure.ac (AM_GNU_GETTEXT_VERSION): Decrease from 0.18.2
+       back to 0.16.
+
+2013-04-25  Paul Eggert  <eggert@cs.ucla.edu>
+
+       maint: port to bleeding-edge Automake by assuming Gettext 0.18.2
+
+       Reported by Stefano Lattarini in
+       <http://lists.gnu.org/archive/html/bug-tar/2013-04/msg00009.html>.
+       * configure.ac (AM_GNU_GETTEXT_VERSION): Increase from 0.16
+       to 0.18.2.
+       README-alpha says that we do not make any efforts to accommodate
+       older versions of Gettext.
+
+2013-04-25  Paul Eggert  <eggert@cs.ucla.edu>
+
+       tar: port to --without-xattrs --enable-gcc-warnings
+
+       Reported by Pavel Raiskup in
+       <http://lists.gnu.org/archive/html/bug-tar/2013-03/msg00029.html>.
+       * src/xattrs.c (xattrs__fd_set) [!HAVE_XATTRS]: Omit.
+
+2013-04-25  Paul Eggert  <eggert@cs.ucla.edu>
+
+       doc: port to texinfo 5
+
+       * doc/tar.texi (Reports, assumptions, Mixing):
+       Put FIXMEs at line start.
+
+2013-03-12  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Continue extracting from a separate volume after skipping a
+       partial member.
+
+       Reported by Göran Udeborg on 2013-03-09.
+
+       * src/extract.c (extract_skip): New function.
+       (prepare_to_extract): Set extractor to extract_skip if starting
+       at a partial member.
+
+2013-03-12  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Fix interaction of various --exclude-tag options with
+       --listed-incremental.
+
+       * src/incremen.c (procdir): Set directory->tagfile in
+       the exclusion_tag_contents case.
+       (makedumpdir): Mark all entries as ignored if directory->tagfile
+       is set.
+       Free new_dump before returning.
+       (maketagdumpdir): New function.
+       (scan_directory): If directory->children is set to
+       NO_CHILDREN and directory->tagfile is set, create a
+       dumpdir consisting of the tagfile only.
+
+       * tests/exclude08.at: New testcase.
+       * tests/exclude09.at: New testcase.
+       * tests/exclude10.at: New testcase.
+       * tests/exclude11.at: New testcase.
+       * tests/exclude12.at: New testcase.
+       * tests/exclude13.at: New testcase.
+       * tests/exclude14.at: New testcase.
+       * tests/exclude15.at: New testcase.
+       * tests/exclude16.at: New testcase.
+       * tests/Makefile.am: Add new tests.
+       * tests/testsuite.at: Include new tests.
+       * tests/atlocal.in (mkexcltest): New function.
+       * tests/chtype.at: Update keywords.
+       * tests/filerem01.at: Likewise.
+       * tests/filerem02.at: Likewise.
+       * tests/incremental.at: Likewise.
+       * tests/multiv04.at: Likewise.
+
+2013-02-20  Paul Eggert  <eggert@cs.ucla.edu>
+
+       tar: remove lint
+
+       * lib/wordsplit.c (_wsplit_error): Mark with printf attribute.
+       (expvar): "Use" defstr to pacify GCC.
+       * src/system.c (xexec): Now _Noreturn, to pacify GCC.
+       (run_decompress_program): Add cast to pacify GCC.
+       (sys_exec_command, sys_exec_info_script,
+       sys_exec_checkpoint_script):
+       Remove unused variables.
+
+2013-02-10  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Pass command line arguments to external commands.
+
+       Any option taking a command name as its argument accepts
+       additional arguments as well.
+
+       * lib/wordsplit.c: New file.
+       * lib/wordsplit.h: New file.
+       * lib/Makefile.am: Add new files.
+       * src/system.c (xexec): New function.
+       (run_decompress_program): Use wordsplit.
+       (sys_child_open_for_compress,sys_exec_command)
+       (sys_exec_info_script)
+       (sys_exec_checkpoint_script): Use xexec to invoke external
+       command.
+
+       * NEWS: Update.
+       * doc/tar.texi: Update.
+
+2013-01-29  Nathan Stratton Treadway  <nathanst@ontko.com>
+
+       tar: improve compile-time diagnostics
+
+       * src/misc.c (sysinttostr, strtosysint): Improve #error wording.
+
+2013-01-27  Paul Eggert  <eggert@cs.ucla.edu>
+
+       tar: improve quality of diagnostics with incrementals
+
+       Inspired by a prototype by Nathan Stratton Treadway in
+       <http://lists.gnu.org/archive/html/bug-tar/2013-01/msg00000.html>.
+       * src/incremen.c (read_num): Rewrite by merging read_negative_num
+       and read_unsigned_num.  Use strtosysint rather than rolling this
+       stuff ourselves.  Change return type to bool.  All uses changed.
+       (read_negative_num, read_unsigned_num): Remove.
+       (read_num, read_timespec, read_incr_db_2): Improve quality of
+       diagnostics, e.g., by supplying byte offset of error.
+
+2013-01-26  Paul Eggert  <eggert@cs.ucla.edu>
+
+       tar: fix bug with sparse files with effective size of 8 GiB
+       or more
+
+       Reported by Pavel Raiskup in
+       <http://lists.gnu.org/archive/html/bug-tar/2013-01/msg00001.html>.
+       * NEWS: Document the fix.
+       * src/sparse.c (pax_start_header): New function.
+       (pax_dump_header_0, pax_dump_header_1): Use it.
+
+2012-12-31  Paul Eggert  <eggert@cs.ucla.edu>
+
+       maint: update copyrights for 2013 and as per current GNU standards
+
+2012-12-31  Paul Eggert  <eggert@cs.ucla.edu>
+
+       maint: remove unnecessary file
+
+       * src/configure.in: Remove.  This file has been obsolete for
+       a while.
+
+2012-12-24  Paul Eggert  <eggert@cs.ucla.edu>
+
+       maint: don't enable warnings by default unless GCC 4.6 or later
+
+       * configure.ac (gl_GCC_VERSION_IFELSE): New macro, from coreutils.
+       (gl_gcc_warnings): By default, disable warnings for GCC versions
+       before 4.6.  This works around a failure when building from git on
+       Ubuntu 10, reported privately by Nathan Stratton Treadway.
+
+2012-12-23  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Handle incremental format 2 with negative numbers, too.
+
+       * src/incremen.c (read_unsigned_num): Last arg is intmax_t *, not
+       uintmax_t, for consistency with other readers.  All callers
+       changed.
+       Avoid signed integer overflow.
+       (read_num):
+
+2012-12-23  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Fix some problems with negative and out-of-range integers.
+
+       Original problem reported for HP-UX LVM v2.2 by Michael White in
+       <http://lists.gnu.org/archive/html/bug-tar/2012-10/msg00000.html>.
+       This patch fixes some other gotchas that I noticed.
+       * gnulib.modules: Add extern-inline.
+       * src/common.h: Use _GL_INLINE_HEADER_BEGIN,
+       _GL_INLINE_HEADER_END.
+       (COMMON_INLINE, max, min): New macros.
+       (represent_uintmax, valid_timespec): New inline functions.
+       (SYSINT_BUFSIZE): New constant.
+       (sysinttostr, strtosysint, decode_timespec): New decls.
+       * src/create.c (start_private_header): Silently bring the time_t
+       value into range; it is now the caller's responsibility to deal
+       with any overflow error.  Use uid 0 and gid 0 rather than the
+       user's uid/gid, since the faked header isn't "owned" by the user
+       and the uid/gid could in theory be out of range.  Leave major and
+       minor zeroed.
+       (FILL): Remove.
+       (write_gnu_long_link): Let start_private_header zero things out.
+       * src/create.c (write_gnu_long_link, write_extended):
+       * src/xheader.c (xheader_write_global):
+       Use start_time, not current time; no point hammering on the clock.
+       * src/compare.c (diff_multivol): Check that offset, size are
+       in range.
+       * src/incremen.c (read_incr_db_01, write_directory_file_entry):
+       Allow negative time_t, dev_t, and ino_t.
+       * src/list.c (max): Remove (moved to common.h).
+       (read_header): Check that size is in range.
+       (from_header): Return intmax_t, not uintmax_t, to allow negative.
+       All callers changed.  At compile time, check assumptions about
+       intmax_t and uintmax_t.  Use bool for booleans.  Avoid overflow
+       hassles on picky hosts.
+       (mode_from_header): Last arg is now bool *, not unsigned *.
+       All callers changed.
+       (simple_print_header): Do not assume UID, GID fit in 'long'.
+       * src/list.c (from_header):
+       * src/xheader.c (out_of_range_header):
+       Arg is now a plain minimum value, not minus minval converted to
+       uintmax_t.  All callers changed.
+       * src/misc.c (COMMON_INLINE): New macro.
+       (sysinttostr, strtosysint, decode_timespec): New functions.
+       * src/sparse.c (oldgnu_add_sparse, oldgnu_fixup_header)
+       (star_fixup_header):
+       Check for offset overflow.
+       (decode_num): Clear errno before calling strtoumax.
+       * src/tar.c (expand_pax_option): Don't discard nanoseconds.
+       * src/xheader.c (assign_time_option): Allow negative time_t.
+       (decode_record): Simplify, since out-of-range string is guaranteed
+       to produce a value exceeding len_max.
+       (xheader_read): Last arg is off_t, not size_t.
+       Caller should diagnose negative arg, as needed.
+       Check that it's in range.
+       (enum decode_time_status): Remove.
+       (_decode_time): Remove, folding into decode_time.
+       (decode_time): Return bool, not enum decode_time_status.
+       Rely on decode_timespec to do most of the work.
+       (code_signed_num): New function.
+       (code_num): Use it.
+       (decode_signed_num): New function.
+       (decode_num): Use it.
+       (gid_coder, gid_decoder, uid_coder, uid_decoder,
+       sparse_map_decoder)
+       (sparse_map_decoder): Code and decode negative values.
+       (sparse_map_decoder): Improve check for out-of-range values.
+       * tests/time01.at: New file.
+       * tests/Makefile.am (TESTSUITE_AT): Add it.
+       * tests/testsuite.at: Include it.
+
+2012-12-22  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Port use of mkdirat etc. to Solaris 10.
+
+       * gnulib.modules (fchmodat, fchownat, fstatat, mkdirat, unlinkat):
+       Add.  These were split out in gnulib, so we now need to request
+       them separately.  mkdirat, for example, is not in Solaris 10.
+
+2012-12-22  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Port ACL configuration to Solaris 10.
+
+       * configure.ac (with_posix_acls): Fix misspellings.
+       Stop checking at the first failure, to speed up 'configure'.
+
+2012-12-19  Paul Eggert  <eggert@cs.ucla.edu>
+
+       tar: remove unused externs, or make them static
+
+       * src/buffer.c (record_buffer_aligned, flush_write_ptr,
+       flush_read_ptr)
+       (duration):
+       * src/list.c (recent_global_header):
+       * src/unlink.c (deferred_unlink_delay):
+       * src/transform.c (transform_flags):
+       * src/xattrs.c (acl_get_file_at, acl_set_file_at,
+       file_has_acl_at):
+       Now static.
+       * src/common.h (rmt_command_option): Remove; unused.
+       * src/tar.c (check_links_option, allocated_archive_names):
+       Move decls here from common.h; these are now static.
+
+2012-12-19  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * .gitignore: Regenerate.
+
+2012-12-19  Paul Eggert  <eggert@cs.ucla.edu>
+
+       build: new configure option --enable-gcc-warnings
+
+       This has a similar meaning as in other GNU applications
+       such as coreutils and Emacs.
+       * NEWS: Document it.
+       * .gitignore: Remove redundant build-aux.
+       Remove gnu, since gnu/Makefile.am is now in git.
+       Add gnu/.gitignore, gnu/charset.alias, gnu/*.h, gnu/*/ to cover
+       autogenerated files.
+       * bootstrap.conf (gnulib_mk): Remove.
+       * configure.ac: Add support for --enable-gcc-warnings,
+       taken from coreutils and simplified.
+       * gnu/Makefile.am: New file.  Formerly this was autogenerated,
+       but the autogenerated file has been renamed to gnulib.mk,
+       its usual name when bootstrapping from gnulib.
+       This way, AM_CFLAGS can incorporate warning options.
+       * gnulib.modules: Add manywarnings.
+       * lib/Makefile.am, src/Makefile.am (AM_CFLAGS): New macro,
+       incorporating warning options.
+       * lib/attr-xattr.in.h (ENOATTR): New macro, if not already
+       defined.
+       * src/buffer.c (magic): Don't rely on incomplete initializers.
+       * src/common.h (report_difference): Add printf format attribute.
+       * src/system.c (sys_exec_command, sys_exec_info_script)
+       (sys_exec_checkpoint_script):
+       * src/tar.c (update_argv):
+       Add casts to char * to pacify GCC warnings about using string
+       literals in a char * context.
+       * src/xattrs.c, src/xattrs.h (xattrs_clear_setup):
+       Declare parameters as (void), not ().
+       * src/xheader.c (xheader_format_name): Initialize pptr to null,
+       to pacify GCC.  Remove unnecessary test of nptr versus null.
+
+2012-12-19  Paul Eggert  <eggert@cs.ucla.edu>
+
+       tar: don't truncate diagnostic
+
+       * src/list.c (from_header): Fix buffer size calculation when
+       generating a diagnostic.
+
+2012-12-03  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Bugfix.
+
+       * tests/Makefile.am: Fix double AM_CPPFLAGS
+
+2012-12-01  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Use AM_CPPFLAGS instead of INCLUDES.
+
+2012-11-19  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Housekeeping.
+
+       * NEWS: Mention the support for POSIX ACLs, extended
+       attributes and SELinux context.
+       * THANKS: List James Antill and Pavel Raiskup.
+
+2012-11-19  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Fix indentation.
+
+2012-11-19  Pavel Raiskup  <praiskup@redhat.com>
+
+       Allow to store/extract '=' character in xattr keyword
+
+       * src/xheader.c (xattr_decode_keyword)
+       (xattr_encode_keyword): New functions.
+       (xheader_print_n,xattr_decoder): Use them.
+       * tests/xattr05.at: New test case.
+       * tests/Makefile.am: Add new test case.
+       * tests/testsuite.at: Likewise.
+
+2012-11-19  Pavel Raiskup  <praiskup@redhat.com>
+
+       Bugfixes.
+
+       * configure.ac: Avoid linking against -lacl when
+       --without-posix-acls is given.
+       * tests/selacl01.at: Call restorecon
+       * tests/selnx01.at: Likewise.
+       * tests/testsuite.at (AT_SELINUX_UTILS_PREREQ): Likewise.
+       (AT_SELINUX_PREREQ,AT_ACLS_PREREQ): Use the right _PREREQ macros.
+
+2012-11-19  Pavel Raiskup  <praiskup@redhat.com>
+
+       Fix bootstrapping.
+
+       * bootstrap (gnulib_extra_files): Remove $build_aux/missing
+
+2012-11-19  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Various fixes.
+
+       * src/xattrs.c: Don't mix variable declarations and statements.
+       Use proper data types.  Remove improper use of const qualifiers.
+       Use x2nrealloc to reallocate memory buffers.
+
+2012-11-18  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Minor change.
+
+       * src/xattrs.c: Fix indentation. Fix copyleft statement, promote
+       to GPLv3+.
+       * src/xattrs.h: Likewise
+
+2012-11-18  Pavel Raiskup  <praiskup@redhat.com>
+
+       Add SELinux context store/restore/list support.
+
+       * gnulib.modules: Add selinux-at.
+       * src/Makefile.am (tar_LDADD): Add LIB_SELINUX.
+
+       * src/create.c (start_header, dump_file0): Handle selinux
+       contexts.
+       * src/extract.c (delayed_set_stat) <cntx_name>: New member.
+       (delayed_link) <cntx_name>: New member.
+       (set_stat, delay_set_stat)
+       (apply_nonancestor_delayed_set_stat): Handle selinux contexts.
+       * src/tar.c: New options: "--selinux", "--no-selinux".
+       (tar_stat_destroy): Free cntx_name.
+       * src/tar.h (tar_stat_info) <cntx_name>: New member.
+       * src/xattrs.c (xattrs_selinux_get)
+       (xattrs_selinux_set): New functions.
+       (xattrs_print_char): Honor selinux_context_option.
+       (xattrs_print): Print selinux context.
+       * src/xheader.c: Handle new keyword "RHT.security.selinux".
+       * tests/Makefile.am: Add new tests.
+       * tests/testsuite.at: Likewise.
+       * tests/selacl01.at: New test.
+       * tests/selnx01.at: New test.
+
+2012-11-18  Pavel Raiskup  <praiskup@redhat.com>
+
+       Support for POSIX ACLs
+
+       * configure.ac: Check whether ACLs are available on the
+       host system.
+       * gnulib.modules: Add acl
+       * src/create.c (start_header): Store ACLs when creating
+       a POSIX archive.
+       (dump_file0): Handle ACLs.
+       * src/extract.c (delayed_set_stat) <acls_a_ptr, acls_a_len>
+       <acls_d_ptr, acls_d_len>: New members.
+       (delayed_link): Likewise.
+       (set_stat,delay_set_stat)
+       (apply_nonancestor_delayed_set_stat): Set ACLs.
+       * src/tar.c: New options: "--acls", "--no-acls"
+       (tar_stat_destroy): Free acls_a_ptr and acls_d_ptr fields.
+       * src/tar.h (tar_stat_info) <acls_a_ptr, acls_a_len>
+       <acls_d_ptr, acls_d_len>: New members.
+       * src/xattrs.c (xattrs_acls_get, xattrs_acls_set): New functions.
+       * src/xheader.c: Support new keywors: "SCHILY.acl.access" and
+       "SCHILY.acl.default".
+       * tests/Makefile.am: Add new tests.
+       * tests/testsuite.at: Likewise.
+       * tests/acls01.at: New test.
+       * tests/acls02.at: New test.
+
+2012-11-18  Pavel Raiskup  <praiskup@redhat.com>
+
+       Add basic suuport for extended attributes.
+
+       * src/Makefile.am: Add xattrs.[ch]
+       * src/xattrs.c: New file.
+       * src/xattrs.h: New file.
+       * src/common.h (READ_LIKE_SUBCOMMAND): New define.
+       (selinux_context_option, acls_option, xattrs_option): New globals.
+       (xheader_xattr_init, xheader_xattr_free)
+       (xheader_xattr_copy, xheader_xattr_add): New protos.
+       (WARN_XATTR_WRITE): New mask.
+       * src/create.c (start_header): Handle xattrs pairs if in POSIX
+       format.
+       (dump_file0): Handle extended attributes.
+       * src/extract.c (delayed_set_stat,delayed_link) <xattr_map_size>
+       <xattr_map>: New members.
+       (set_xattr): New static function.
+       (open_output_file): Accept an additional argument indicating
+       whether the file has already been created.
+       (set_stat,delay_set_stat)
+       (apply_nonancestor_delayed_set_stat)
+       (extract_file): Handle extended attributes.
+       * src/list.c (decode_header, simple_print_header): Display
+       extended attributes.
+       * src/tar.c: New options --xattrs, --no-xattrs, --xattrs-include,
+       --xattrs-exclude
+       (tar_stat_destroy): Free the xattr_map storage.
+       * src/tar.h (xattr_array): New struct.
+       (tar_stat_info) <xattr_map_size, xattr_map>: New members.
+       * src/warning.c: New warning control keyword "xattr-write".
+       * src/xheader.c (xheader_xattr_init)
+       (xheader_xattr_free, xheader_xattr_add)
+       (xheader_xattr_copy): New functions.
+       (struct xhdr_tab) <prefix>: New member.
+       (locate_handler): Permit selecting the keyword based on its
+       prefix.
+       (xheader_protected_pattern_p)
+       (xheader_protected_keyword_p): Likewise.
+       (xattr_coder, xattr_decoder): New functions.
+       (xhdr_tab): Reflect the changes to struct xhdr_tab.
+       New keyword "SCHILY.xattr".
+       * tests/Makefile.am: Add new tests.
+       * tests/testsuite.at: Likewise.
+       (AT_CHECK_UTIL, AT_XATTRS_UTILS_PREREQ)
+       (AT_CAPABILITIES_UTILS_PREREQ, AT_XATTRS_PREREQ): New defuns.
+       * tests/xattr01.at: New test.
+       * tests/xattr02.at: New test.
+       * tests/xattr03.at: New test.
+       * tests/xattr04.at: New test.
+       * tests/capabs_raw01.at: New test.
+
+2012-11-18  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Prepare for implementing extended attribute support.
+
+       This patch adds *xattr() stubs in case extended attribute
+       support is
+       not present and implements the *attrat() family of functions.
+       Based
+       on the patch by Pavel Raiskup <pavel@raiskup.cz> for gnulib.
+
+       * acinclude.m4 (TAR_HEADERS_ATTR_XATTR_H): New defun.
+       * configure.ac: Call TAR_HEADERS_ATTR_XATTR_H
+       * lib/Makefile.am: Add xattr-at.[ch], distribute attr-xattr.in.h
+       [!TAR_COND_XATTR_H]: Build attr/xattr.h
+       * lib/attr-xattr.in.h: New file.
+       * lib/xattr-at.c: New file.
+       * lib/xattr-at.h: New file.
+
+2012-11-14  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Fix creation of incremental archives when a subdirectory becomes
+       a mountpoint.
+
+       When used with --listed-incrfental and --one-file-system, tar
+       was unable to cope with directories that had once been part of the
+       dumped system and became separate mount points afterwards.
+       The bug
+       has been reported and a fix proposed by Nathan Stratton Treadway.
+
+       * src/incremen.c (procdir): If one_file_system_option is in
+       effect,
+       clear out dumpdir info from the directory.
+       * tests/Makefile.am: Add new testcase.
+       * tests/listed05.at: New testcase.
+       * tests/testsuite.at (AT_PRIVILEGED_PREREQ): New macro.
+       include listed05.at.
+       * THANKS: Update.
+
+2012-07-27  Jim Meyering  <jim@meyering.net>
+
+       maint: try to avoid unwanted chatter in ChangeLog
+
+       * bootstrap.conf: Do not alter ChangeLog if it already exists.
+
+2012-07-26  Paul Eggert  <eggert@cs.ucla.edu>
+
+       doc: improve discussion of compressed archives
+
+       * doc/tar.texi (gzip): Don't claim that -I 'gzip --best' works.
+       Problem reported by Davide Brini in
+       <http://lists.gnu.org/archive/html/bug-tar/2012-07/msg00025.html>.
+       Also, improve some of the surrounding text.
+
+       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.
+
+2012-06-27  Paul Eggert  <eggert@cs.ucla.edu>
+
+       tests: fix permissions-assumption bug in test
+
+       * tests/owner.at: Don't assume umask is 022.
+       Reported by Pavel Raiskup in
+       <http://lists.gnu.org/archive/html/bug-tar/2012-06/msg00015.html>.
+
+2012-06-27  Paul Eggert  <eggert@cs.ucla.edu>
+
+       tar: don't assume root is uid 0
+
+       This is not true for Tandem NonStop Kernel.  See Joachim Schmitz's
+       comment in <http://bugs.gnu.org/10305#111>.
+       * gnulib.modules: Add root-uid.
+       * src/extract.c: Include <root-uid.h>.
+       (extr_init): Don't assume root is uid 0.
+
+2012-04-25  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * src/compare.c (diff_dumpdir): Omit useless 'stat'.
+
+2012-04-25  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * doc/tar.texi (Option Summary): Fix xref typo.
+
+       Reported by Nathan Stratton Treadway in
+       <http://lists.gnu.org/archive/html/bug-tar/2012-04/msg00035.html>.
+
+       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.
+
+2012-03-29  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Fix unrecognized option.
+
+       * src/tar.c (parse_opt): Handle OLD_ARCHIVE_OPTION.
+
+2012-03-11  Paul Eggert  <eggert@cs.ucla.edu>
+
+       tar: remove lint
+
+       This lint was found by GCC 4.6.2 on Fedora 15 x86-64.
+       * src/buffer.c (buffer_write_global_xheader, mv_end,
+       set_start_time)
+       (compute_duration, print_total_stats, flush_read, flush_write):
+       * src/checkpoint.c (checkpoint_finish_compile):
+       * src/list.c (test_archive_label):
+       * src/misc.c (chdir_count):
+       * src/names.c (const):
+       * src/unlink.c (finish_deferred_unlinks):
+       Define with (void) instead of with (), for slightly-better C type
+       checking and to avoid a GCC warning.
+       * src/compare.c (diff_dumpdir):
+       * src/tar.c (parse_owner_group): Remove unused local.
+       * src/misc.c (chdir_do):
+       * src/tar.c (add_exclude_array): Rename local to avoid shadowing.
+       (LOW_DENSITY_NUM, MID_DENSITY_NUM, HIGH_DENSITY_NUM):
+       Define only if needed.
+       * src/update.c (update_archive): Initialize a local; this fixes
+       what appears to be a real bug.
+
+2012-02-14  Paul Eggert  <eggert@cs.ucla.edu>
+
+       doc: suggest Bash for large-fd script
+
+       * doc/tar.texi (Multi-Volume Archives): Suggest Bash for shell
+       script that might use >&10.  Problem reported by Edward F
+       Eaglehouse in
+       <http://lists.gnu.org/archive/html/bug-tar/2012-02/msg00002.html>.
+
+2012-01-18  Paul Eggert  <eggert@cs.ucla.edu>
+
+       tar: quote 'like this', not `like this'
+
+       This fixes some test failures recently introduced by gnulib
+       updates
+       prompted by recent changes to the GNU coding standards,
+       which now advise to use quotes 'like this' or "like this"
+       rather than `like this'.
+       * NEWS: Document this.
+       * README, README-hacking, doc/Makefile.am, scripts/backup.in:
+       * scripts/backup.sh.in, scripts/dump-remind.in:
+       * src/buffer.c, src/checkpoint.c, src/create.c, src/incremen.c:
+       * src/misc.c, src/names.c, src/sparse.c, src/transform.c:
+       * tests/incr02.at, tests/incremental.at, tests/multiv08.at:
+       * tests/sparse04.at, tests/star/README, tests/update01.at:
+       Quote 'like this' in comments.
+       * src/tar.h:
+       Quote "like this" in comments, when quoting English phrases rather
+       than code.
+       * configure.ac:
+       * scripts/xsparse.c (get_var, read_xheader, main):
+       * src/compare.c (diff_archive):
+       * src/extract.c (prepare_to_extract):
+       * src/tar.c (request_stdin, tar_set_quoting_style, doc, options)
+       (set_subcommand_option, report_textual_dates, parse_opt)
+       (decode_options, main):
+       * src/xheader.c (decx):
+       Quote 'like this' in diagnostics.
+       * doc/tar.texi (list, warnings, override)
+       (Selecting Archive Members, quoting styles, after, hard links)
+       (Sparse Recovery, Multi-Volume Archives, label):
+       Adjust documentation to match new output.
+       * tests/backup01.at, tests/incr01.at, tests/incr04.at:
+       * tests/label04.at, tests/label05.at, tests/link03.at:
+       * tests/listed02.at, tests/multiv03.at, tests/multiv05.at:
+       * tests/rename01.at, tests/rename02.at, tests/rename03.at:
+       * tests/volume.at:
+       Adjust tests to match new quoting behavior.
+
+2012-01-18  Paul Eggert  <eggert@cs.ucla.edu>
+
+       tar: port --overwrite symlink test to GNU/Hurd
+
+       Problem reported by Pino Toscano in
+       <http://lists.gnu.org/archive/html/bug-tar/2012-01/msg00040.html>.
+       * gnulib.modules: Add fcntl-h, which defines
+       HAVE_WORKING_O_NOFOLLOW.
+       * src/extract.c (open_output_file): Use HAVE_WORKING_O_NOFOLLOW,
+       not O_NOFOLLOW, when testing whther O_NOFOLLOW works.
+
+       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.
+
+2012-01-11  Paul Eggert  <eggert@cs.ucla.edu>
+
+       tar: fix core dump with --index-file=bad_path
+
+       * src/tar.c (decode_options): Exit cleanly if index file won't
+       open.
+       Problem reported by Khanh-Dang Nguyen Thu Lam in
+       <http://lists.gnu.org/archive/html/bug-tar/2012-01/msg00018.html>.
+
+2012-01-06  Paul Eggert  <eggert@cs.ucla.edu>
+
+       tar: don't assume O_NONBLOCK is benign on regular files
+
+       On Data Migration Facility (DMF), High Peformance Storage System
+       (HPSS),
+       and presumably other file systems based on hierarchical storage,
+       opening
+       a regular file with O_NONBLOCK can cause later reads to fail with
+       errno == EAGAIN.  We need the O_NONBLOCK to avoid some security
+       races.
+       Work around the problem by using fcntl to clear the O_NONBLOCK
+       flag if I/O fails with that errno value.
+       Problem reported by Vitezslav Cizek in
+       <http://lists.gnu.org/archive/html/bug-tar/2012-01/msg00000.html>.
+       * src/common.h (blocking_read, blocking_write): New decls.
+       * src/misc.c (blocking_read, blocking_write): New functions.
+       * src/compare.c (process_rawdata):
+       * src/create.c (dump_regular_file):
+       * src/extract.c (extract_file):
+       * src/sparse.c (sparse_scan_file, sparse_extract_region):
+
+2011-11-26  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Fix --keep-old-files option.
+
+       The regression was introduced by 8f390db9.  This patch implements
+       additional
+       option --skip-old-files, which silently skips members which
+       would cause
+       writing over existing files, and restores --keep-old-files to
+       its traditional
+       behavior.
+
+       * NEWS: Update.
+       * configure.ac: Update.
+       * doc/tar.texi: Document the changes.
+       * src/common.h (SKIP_OLD_FILES): New old_files mode.
+       * src/extract.c (maybe_recoverable): Restore KEEP_OLD_FILES
+       behavior.
+       Handle SKIP_OLD_FILES.
+       * src/tar.c: New option --skip-old-files.
+       * tests/extrac18.at: New file.
+       * tests/extrac19.at: New file.
+       * tests/Makefile.am: Add new test cases.
+       * tests/testsuite.at: Likewise.
+
+2011-11-17  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Warn about existing files in keep-old-files mode (complements
+       8f390db9).
+
+       This is controlled by "existing-file" warning code, which is off
+       by default.
+
+       * src/common.h (WARN_EXISTING_FILE): New warning code.
+       (WARN_VERBOSE_WARNINGS): Add WARN_EXISTING_FILE.
+       * src/extract.c (maybe_recoverable): warn about existing file
+       if WARN_EXISTING_FILE is set.
+       * src/warning.c: New warning type: "existing-file"
+
+2011-11-17  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Fix the "Creating directory:" output
+
+       * src/list.c (print_for_mkdir): don't use unquoted name length for
+       computing its output width.
+
+2011-11-15  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Fix operation of --verify in conjunction with --listed-incremental
+
+       * src/common.h (clear_directory_table): New proto.
+       * src/incremen.c (clear_directory_table): New function.
+       * src/compare.c (diff_dumpdir): Take a pointer to struct
+       tar_stat_info as argument.
+       Initialize its fd.
+       (diff_archive): Update call to diff_dumpdir.
+       (verify_volume): Call clear_directory_table.
+
+2011-10-18  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * doc/tar.texi (Option Summary, absolute): Document -P better,
+
+       by describing how it deals with symbolic links on extraction.
+
+2011-09-28  Paul Eggert  <eggert@cs.ucla.edu>
+
+       2011-09-27 Paul Eggert <eggert@cs.ucla.edu>
+
+       * src/tar.c (stat_on_signal): Use SA_RESTART if available.
+
+2011-09-20  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * doc/tar.texi: Remove front- and back-cover texts.
+
+       These are no longer needed for this manual, according to the
+       GNU maintainers guide.  Update copyright date to 2011.
+
+2011-09-19  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Minor changes.
+
+       * scripts/tar-snapshot-edit: License under GPLv3+.
+       Remove trailing whitespace.
+
+2011-09-19  Nathan Stratton Treadway  <nathanst+bugtar@ontko.com>
+
+       Minor changes.
+
+       * doc/snapshot.texi: Clarify the use of nfs field in 0 and
+       1 formats.
+       Give more precise information about which versions of tar
+       used each
+       format.
+
+2011-09-19  Nathan Stratton Treadway  <nathanst+bugtar@ontko.com>
+
+       Upgrade tar-snapshot-edit script.
+
+       * scripts/tar-snapshot-edit: Update Perl syntax to work
+       correctly with more recent versions of Perl.  (The original
+       code worked with in the v5.8 timeframe but not with
+       Perl v5.10.1 and later.)
+       Add a "-c" option to check the snapshot file for invalid
+       field values.
+       Handle NFS indicator character ("+") in version 0 and 1 files.
+       Preserve the original header/version line when editing version 1
+       or 2 files.
+       Tweak output formatting.
+       * doc/tar-snapshot-edit.texi: Update documentation.
+
+2011-08-13  Paul Eggert  <eggert@cs.ucla.edu>
+
+       tar: --owner and --group names and numbers
+
+       The --owner and --group options now accept operands of the form
+       NAME:NUM, so that you can specify both symbolic name and numeric
+       ID for owner and group.  Also, in these options, NAME no longer
+       needs to be present in the current host's user and group
+       databases; this implements Debian enhancement request 136231
+       <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=136231> reported
+       by Mark W. Eichin, communicated by Thayne Harbaugh to bug-tar in
+       <http://lists.gnu.org/archive/html/bug-tar/2011-08/msg00001.html>.
+       * NEWS, doc/tar.texi (Option Summary, override): Document
+       enhancement.
+       * src/common.h (group_name_option, owner_name_option): New decls.
+       * src/create.c (start_header): Don't assume owner and group names
+       are in current host database.
+       * src/tar.c (parse_owner_group): New function, for parsing
+       NAME:NUM.
+       (parse_opt): Use it.
+       (decode_options): Initialize owner_name_option, group_name_option.
+       * tests/owner.at: New file, to test this enhancement.
+       * tests/Makefile.am (TESTSUITE_AT): Add it.
+       * tests/testsuite.at: Include it.
+
+2011-08-13  Paul Eggert  <eggert@cs.ucla.edu>
+
+       .gitignore: update
+
+       * .gitignore: Add rmt.
+       * lib/.gitignore: New file.
+
+2011-07-30  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Fix the --exclude-backups option.
+
+       * src/tar.c (add_exclude_array): Take exclude option filags in its
+       second argument.
+       (parse_opt): Register backup_file_table with the EXCLUDE_WILDCARDS
+       flag.
+       * tests/exclude07.at: New testcase.
+       * tests/Makefile.am (TESTSUITE_AT): Add testsuite.at.
+       * tests/testsuite.at: Include exclude07.at.
+
+2011-06-08  Paul Eggert  <eggert@cs.ucla.edu>
+
+       tar: simplify birthtime calculations
+
+       * src/extract.c (same_birthtime): Remove.
+       (extract_link, apply_delayed_links): Go back to using
+       timestamp_cmp
+       instead of same_birthtime, as this is a bit simpler.  This fix
+       relies
+       on an up-to-date gnulib.
+
+2011-06-08  Paul Eggert  <eggert@cs.ucla.edu>
+
+       tar: use birthtime rather than ctime when checking identity
+
+       Without this fix, tar would sometimes mishandle the extraction of
+       hard links to symbolic links.  Problem reported in
+       <http://lists.gnu.org/archive/html/bug-tar/2011-06/msg00000.html>
+       by Andreas Stolcke.
+       * src/extract.c (struct delayed_link): Change ctime member
+       to birthtime.
+       (same_birthtime): New function.
+       (create_placeholder_file, extract_link, apply_delayed_links):
+       Use it to compare birthtimes (when available) instead of ctime.
+
+2011-05-26  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * doc/tar.texi (Old Options): Clarify distinction from short
+       options.
+
+       Adjust other parts of the manual to use examples that parse the
+       same regardless of whether "-" is in front of the option clump.
+       See
+       <http://lists.gnu.org/archive/html/bug-tar/2011-05/msg00022.html>.
+
+2011-03-12  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Testsuite fix.
+
+       * tests/sparse04.at: Use the -f option.
+
 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
 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
 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.
 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
 
        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.
 
        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
 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.
 
+2010-11-24  Paul Eggert  <eggert@cs.ucla.edu>
+
        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>.
 
+2010-11-23  Paul Eggert  <eggert@cs.ucla.edu>
+
        * 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/names.c (individual_file_table, register_individual_file):
        (is_individual_file): Remove.  All uses removed.
 
+2010-11-23  Paul Eggert  <eggert@cs.ucla.edu>
+
        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.
 
+2010-11-23  Paul Eggert  <eggert@cs.ucla.edu>
+
        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
 
        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.
 
+2010-11-15  Sergey Poznyakoff  <gray@gnu.org.ua>
+
        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-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.
 
 
        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'
 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
 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
        <http://lists.gnu.org/archive/html/bug-tar/2010-04/msg00023.html>.
        * src/list.c (decode_header): Likewise.
 
+2010-10-28  Paul Eggert  <eggert@cs.ucla.edu>
+
        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
 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.
 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".
 
+2010-10-27  Paul Eggert  <eggert@cs.ucla.edu>
+
        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.
 
+2010-10-27  Paul Eggert  <eggert@cs.ucla.edu>
+
        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
 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>.
 
 2010-10-25  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Version 1.24
+
        * configure.ac, NEWS: Version 1.24
        * bootstrap: Restore tar-specific code lost during last
        sync from gnulib (241b72ffad).
 2010-10-16  Paul Eggert  <eggert@cs.ucla.edu>
 
        tar: use more-accurate diagnostic when intermediate mkdir fails
+
        Without this change, if tar tried to extract a file A/B/C, noticed
        that A/B didn't exist, attempted to mkdir A/B, and the mkdir
        failed, it did not diagnose the mkdir failure, but simply reported
        * tests/Makefile.am (TESTSUITE_AT): Add it.
        * tests/testsuite.at: Include it.
 
+2010-10-16  Paul Eggert  <eggert@cs.ucla.edu>
+
        tests: port to NFS file servers with clock skew
+
        Several of the tests assumed that a newly created file cannot
        have a time stamp dated in the future.  This assumption is not
        true when files are served by a remote host whose clock is
 
        gnulib: sync from latest gnulib, notably bootstrap and
        parse-datetime
+
        * bootstrap: Sync from gnulib.
        * doc/.gitignore: Rename getdate.texi to parse-datetime.texi.
        * doc/Makefile.am (tar_TEXINFOS): Likewise.
 2010-09-24  Paul Eggert  <eggert@cs.ucla.edu>
 
        tar: -x -C symlink fix
+
        * src/misc.c (chdir_do): Don't use O_NOFOLLOW when opening the
        argument to -C.  This is for consistency with "tar -c -C FOO", and
        matches the new documentation.
        * tests/Makefile.am (TESTSUITE_AT): Add it.
        * tests/testsuite.at: Include it.
 
+2010-09-24  Paul Eggert  <eggert@cs.ucla.edu>
+
        tar: --dereference consistency
+
        This closes another race condition, that occurs when overwriting a
        symlink with a regular file.
        * NEWS (--dereference consistency): New section.
 2010-09-20  Paul Eggert  <eggert@cs.ucla.edu>
 
        tar: do not crash with --listed-incremental
+
        Problem reported by Frantisek Hanzlik in
        <https://bugzilla.redhat.com/635318> via Kamil Dudka in
        <http://lists.gnu.org/archive/html/bug-tar/2010-09/msg00066.html>.
 2010-09-19  Paul Eggert  <eggert@cs.ucla.edu>
 
        tar: prefer openat-style functions
+
        This change replaces traditional functions like 'open' with the
        POSIX.1-2008 functions like 'openat'.  Mostly this is an internal
        refactoring change, in preparation for further changes to close
 2010-09-18  Paul Eggert  <eggert@cs.ucla.edu>
 
        tar: add utimens.h includes
+
        * src/extract.c: Include <utimens.h>, needed for fdutimens
        prototype.
        * src/misc.c: Likewise.
 
+2010-09-18  Paul Eggert  <eggert@cs.ucla.edu>
+
        tar: switch to gnulib fdutimensat module
+
        * gnulib.modules: Add fdutimensat.
        * src/common.h (fd_utimensat): Remove decl.
        * src/extract.c (set_stat): Call fdutimensat, not fd_utimensat.
 2010-09-17  Paul Eggert  <eggert@cs.ucla.edu>
 
        tar: extract permissions for . last
+
        * src/common.h (must_be_dot_or_slash): New decl.
        * src/extract.c (mark_after_links): New function, taking code
        that used to be in create_placeholder_file.
        * tests/Makefile.am (TESTSUITE_AT): Add it.
        * tests/testsuite.at: Likewise.
 
+2010-09-17  Paul Eggert  <eggert@cs.ucla.edu>
+
        tar: don't check for getdtablesize; use AC_CHECK_FUNCS_ONCE
+
        * configure.ac: Don't check for getdtablesize; no longer needed.
        Use AC_CHECK_FUNCS_ONCE rather than AC_CHECK_FUNCS, for
        efficiency.
 
+2010-09-17  Paul Eggert  <eggert@cs.ucla.edu>
+
        tar: extract symlink attributes, close some symlink-related races
+
        * NEWS: Describe symlink-extraction improvements.
        * src/extract.c (enum permstatus): Remove.
        (fchmod, fchown): Define dummy replacement macros if the system
 2010-09-16  Paul Eggert  <eggert@cs.ucla.edu>
 
        tar: tar -x without --incremental no longer sets atime again
+
        * src/extract.c (set_stat): Use UTIME_OMIT rather than UTIME_NOW.
        The UTIME_NOW was there only to emulate the previous behavior of
        using the current time, and the previous behavior was there only
        because before we started assuming POSIX.1-2008 there was no
        portable way to get the effect of UTIME_NOW.
 
+2010-09-16  Paul Eggert  <eggert@cs.ucla.edu>
+
        tar: another --atime-preserve race fix
+
        * src/common.h (set_file_atime): Add parentfd arg.
        * src/compare.c (diff_file): Use it.
        * src/create.c (dump_file0): Likewise.  This closes yet another
        race condition with symbolic links.
        * src/misc.c (set_file_atime): Add parentfd arg.
 
+2010-09-16  Paul Eggert  <eggert@cs.ucla.edu>
+
        tar: --atime-preserve fixes for races etc.
+
        This patch fixes a race condition in the --atime-preserve=replace
        option, which might cause tar to improperly follow a symbolic
        link.
 2010-09-14  Paul Eggert  <eggert@cs.ucla.edu>
 
        * configure.ac: tar: close some race conditions when extracting
+
        * configure.ac: Check for fchmod and fchown.  Don't check
        for utimes.
        * src/extract.c (fdchmod, fdchown, fdstat): New functions.
 2010-09-13  Paul Eggert  <eggert@cs.ucla.edu>
 
        tar: don't worry about fdopendir closing its argument
+
        * NEWS: Don't mention dirfd; no longer needed.
        * gnulib.modules: Remove dirfd.
        * src/create.c (get_directory_entries): Remove the code dealing
        <http://lists.gnu.org/archive/html/bug-gnulib/2010-09/msg00208.html>
        and gnulib commit 970c9038e4cca46e1b037ae0a6d574dfae6a7327.
 
+2010-09-13  Paul Eggert  <eggert@cs.ucla.edu>
+
        * NEWS: Fix wording typo in previous change.
+
        Reported by Jim Meyering.
 
+2010-09-13  Paul Eggert  <eggert@cs.ucla.edu>
+
        tar: live within system-supplied limits on file descriptors
+
        * NEWS: Note the change.  Mention dirfd and fdopendir.
        * gnulib.modules: Add dirfd and fdopendir.  The code was already
        using fdopendir; dirfd is a new need.
 2010-09-08  Paul Eggert  <eggert@cs.ucla.edu>
 
        tar: improve documentation of reliability and security issues
+
        * doc/tar.texi (Reliability and security, Reliability):
        (Permissions problems, Data corruption and repair, Race
        conditions):
 2010-09-06  Paul Eggert  <eggert@cs.ucla.edu>
 
        tar: more reliable directory traversal when creating archives
+
        * NEWS: Document this.
        * gnulib.modules: Add openat, readlinkat.
        * src/common.h (open_read_flags, fstatat_flags): New global
 2010-09-05  Paul Eggert  <eggert@cs.ucla.edu>
 
        tar: remove lint discovered by Sun C compiler
+
        * src/common.h (WARN_ALL): Don't mask with 0xffffffff; on a 32-bit
        host, 0xffffffff is of type 'unsigned int', which makes WARN_ALL
        an unsigned int value that is too large to fit into an int, and
 2010-09-04  Paul Eggert  <eggert@cs.ucla.edu>
 
        tar: restore macros that are used in some cases
+
        * src/tar.c (LOW_DENSITY_NUM, MID_DENSITY_NUM, HIGH_DENSITY_NUM):
        Restore these macros, undoing the previous change to this file.
        The macros are used after all, in some cases.  Sorry about that.
 2010-09-03  Paul Eggert  <eggert@cs.ucla.edu>
 
        tar: remove unused macros
+
        * src/create.c (UINTMAX_TO_CHARS): Remove; no longer used.
        * src/tar.c (LOW_DENSITY_NUM, MID_DENSITY_NUM, HIGH_DENSITY_NUM):
        Likewise.
 2010-08-27  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Fix --remove-files in update/append mode.
+
        * src/update.c (update_archive): Call finish_deferred_unlinks when
        done.
 
 
        tar: avoid assumptions about root access and chmod -w in test
        cases
+
        * tests/extrac07.at, tests/extrac09.at, tests/listed03.at: Use
        AT_UNPRIVILEGED_PREREQ, since this test requires non-root
        privileges.
        portable to start a chmod permissions-list with "-" as it may be
        confused with an option.  Use "chmod a-w" instead.
 
+2010-08-26  Paul Eggert  <eggert@cs.ucla.edu>
+
        tar: fix bug with -C and delayed setting of metadata
+
        * src/common.h (chdir_current): New decl.
        * src/extract.c (struct delayed_set_stat, struct delayed_link):
        New member change_dir.
 2010-08-25  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Don't apply file transformations to volume names.
+
        * src/list.c (decode_header): Don't apply file transformations
        to volume names.
        * tests/xform01.at: New testcase.
 2010-08-25  Paul Eggert  <eggert@cs.ucla.edu>
 
        tar: optimize -c --sparse when file is entirely sparse
+
        * src/sparse.c (sparse_scan_file): If the file is entirely sparse,
        that is, if ST_NBLOCKS is zero, don't bother scanning for nonzero
        blocks.  Idea by Kit Westneat, communicated by Bernd Schubert in
        <http://lists.gnu.org/archive/html/bug-tar/2010-08/msg00038.html>.
        Also, omit unnecessary lseek at start of file.
 
+2010-08-25  Paul Eggert  <eggert@cs.ucla.edu>
+
        tar: don't assume size of a sparse file chunk fits in size_t
+
        * src/tar.h (struct sp_array): Change numbytes from size_t
        to off_t.
        All uses changed.
        * src/xheader.c (sparse_numbytes_decoder, sparse_map_decoder):
        Likewise.
 
+2010-08-25  Paul Eggert  <eggert@cs.ucla.edu>
+
        tar: use ctime, not mtime, when checking placeholders
+
        * src/extract.c (struct delayed_link): Rename member mtime
        to ctime.
        All uses changed to use ctime rather than mtime.
 2010-08-24  Paul Eggert  <eggert@cs.ucla.edu>
 
        tar: add comment to link04.at test
+
        * tests/link04.at: Add explanatory comment at head.
 
+2010-08-24  Paul Eggert  <eggert@cs.ucla.edu>
+
        tar: fix 1.23 Solaris regression related to PRIV_SYS_LINKDIR
+
        The idea was suggested by Petr Sumbera in the thread starting
        here:
        http://lists.gnu.org/archive/html/bug-tar/2010-08/msg00000.html
        Invoke priv_set_restore_linkdir before execv or execlp, so that
        the subprocess has the same privileges that tar originally did.
 
+2010-08-24  Paul Eggert  <eggert@cs.ucla.edu>
+
        tar: handle files that occur multiple times but have link count 1
+
        This patch was inspired by the following patch that addressed a
        similar problem in GNU coreutils du:
        http://git.savannah.gnu.org/gitweb/?p=coreutils.git;h=efe53cc72b599979ea292754ecfe8abf7c839d22
 2010-08-23  Paul Eggert  <eggert@cs.ucla.edu>
 
        tar: use nlink_t for link counts
+
        * src/create.c (struct link): nlink is now of type nlink_t,
        not size_t.
 
+2010-08-23  Paul Eggert  <eggert@cs.ucla.edu>
+
        tar: don't export names that aren't used elsewhere
+
        * src/common.h (file_dumpable_p, gid_to_chars, major_to_chars):
        (minor_to_chars, mode_to_chars, uid_to_chars, uintmax_to_chars):
        (string_to_chars, dumpdir_creat0, dumpdir_create, dumpdir_free):
        * src/tar.c (request_stdin): Now static.
        * src/xheader.c (xheader_init): Now static.
 
+2010-08-23  Paul Eggert  <eggert@cs.ucla.edu>
+
        tar: fix misspelled identifier "set_comression_program_by_suffix"
+
        * src/suffix.c (set_compression_program_by_suffix): Renamed from
        set_comression_program_by_suffix.
        * src/buffer.c, src/common.h, src/tar.c: All uses changed.
 2010-08-20  Paul Eggert  <eggert@cs.ucla.edu>
 
        tar: change interdir_made from int to bool
+
        * src/extract.c (maybe_recoverable, create_placeholder_file):
        Change interdir_made from int * to bool *, since the flag has just
        two values 0 and 1.  All uses changed.  This does not affect tar's
        behavior.
 
+2010-08-20  Paul Eggert  <eggert@cs.ucla.edu>
+
        tar: remove trailing white space from source files
+
        * ChangeLog.1, ChangeLog.CVS, Makefile.am, NEWS, README:
        * README-hacking, directory, doc/Makefile.am, doc/dumpdir.texi:
        * doc/gendocs_template, doc/intern.texi, doc/mastermenu.el:
 2010-08-19  Paul Eggert  <eggert@cs.ucla.edu>
 
        tar: update licenses to latest versions from www.gnu.org
+
        * COPYING: Update to latest version; this is just minor
        formatting.
        * doc/fdl.texi: Update from GFDL 1.2 to 1.3.
 2010-07-18  Paul R. Eggert  <eggert@cs.ucla.edu>
 
        tar: no need to report getcwd error if never using the result
+
        * src/misc.c (struct wd): Rename 'saved' to 'err', with new
        semantics.
        (chdir_arg, chdir_do): Adjust to new semantics.  Do not report an
        * tests/testsuite.at: Include it.
        * tests/Makefile.am (TESTSUITE_AT): Add it.
 
+2010-07-18  Paul R. Eggert  <eggert@cs.ucla.edu>
+
        tar: go back to absolutifying filenames in normalize_filename
        for now
+
        * src/misc.c (normalize_filename): For now, go back to making
        filenames absolute, even though this causes 'tar' to fail when
        getcwd fails.  However, do not attempt to resolve ".." as this
 2010-07-17  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Allow for size suffixes in -L and --record-size options.
+
        * src/tar.c (TAR_SIZE_SUFFIXES): New define.
        (parse_opt): Allow for size suffixes in arguments to
        -L and --record-size options.
 2010-07-15  Paul R. Eggert  <eggert@cs.ucla.edu>
 
        tar: don't crash if getcwd fails
+
        * src/extract.c: Don't include xgetcwd.h.
        (extract_dir): stat "." rather than statting getcwd's output.
        * src/misc.c (normalize_filename_x): Rewrite so as not to resolve
 
        Keep a detailed map of archive members stored in the record
        buffer.
+
        A separate map (bufmap) provides information for creating
        multi-volume continuation headers.
 
        * tests/multiv08.at: New testcase.
        * tests/Makefile.am, tests/testsuite.at: Add multiv08.at.
 
+2010-07-11  Sergey Poznyakoff  <gray@gnu.org.ua>
+
        Version 1.23.90
+
        * NEWS, configure.ac: Version 1.23.90
        * doc/tar.texi: Document the use of lbzip2.
 
 
        Fix exclusion of long file names when extracting from pax format
        archives.
+
        * src/list.c (read_and): Call decode_header before attempting
        name_match.
        (list_archive): Remove call to decode_header.
        * tests/testsuite.at: Include exclude06.at.
        * tests/Makefile.am (TESTSUITE_AT): Add exclude06.at.
 
+2010-06-28  Sergey Poznyakoff  <gray@gnu.org.ua>
+
        Minor fix.
+
        * src/buffer.c (magic): Split the character constant to help
        cc recognize character boundaries (7 is a valid hex character).
 
 2010-06-27  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Minor fix.
+
        * src/buffer.c (magic): Fix xz magic.
 
 2010-06-16  Paul Eggert  <eggert@cs.ucla.edu>
 
        Remove some lint, found by gcc -W etc.
+
        * src/common.h (label_notfound): New decl.
        * src/buffer.c (set_volume_start_time, compress_type):
        (guess_seekable_archive, open_compressed_archive, init_buffer):
 2010-05-17  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Bugfix.
+
        * src/incremen.c (make_directory): Retain the slash if it is the
        only character in a filename.
 
 2010-04-01  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Fix the gzip.at test case.
+
        * tests/gzip.at: Suppress gzip error output, as it can differ
        depending on its version etc. Bug reported by Ludovic Courtès.
 
 2010-03-28  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        New option --full-time.
+
        * src/common.h (full_time_option): New global.
        * src/tar.c (FULL_TIME_OPTION): New constant.
        (options): New option --full-time.
 2010-03-27  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Minor fixes in the testsuite.
+
        * tests/extrac07.at: Fix a typo (invalid number
        of arguments before format list).
        * tests/link02.at: Use `ln' instead of `link'.
        * tests/link03.at: Likewise.
 
+2010-03-27  Sergey Poznyakoff  <gray@gnu.org.ua>
+
        Fix coredump.
+
        * src/names.c (collect_and_sort_names): Remove
        entry from the table before freeing it.
 
+2010-03-27  Sergey Poznyakoff  <gray@gnu.org.ua>
+
        Fix dead loop on extracting existing symlinks with the -k option.
+
        * src/extract.c (create_placeholder_file)
        (extract_link, extract_symlink)
        (extract_node, extract_fifo): Handle all possible
 2010-03-20  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Fix undesired error exit on receiving SIGPIPE.
+
        * src/tar.c: Do not ignore SIGPIPE.
        * tests/sigpipe.at: New testcase.
        * tests/Makefile.am, tests/testsuite.at: Add sigpipe.at
 2010-03-17  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Fix --remove-files.
+
        Tar --remove-files relied on canonicalize_file_name,
        which replaces symlinks in file name components with
        the directories they point to. Due to this, tar
 2010-03-12  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Bugfixes.
+
        * src/buffer.c (check_label_pattern): Initialize result.
        * tests/remfiles01.at: Skip if run with root privileges.
 
 2010-03-11  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Fix `--test-label' and `--label -r' behavior.
+
        * doc/tar.texi (Including a Label in the Archive): Revise
        the section.
        * NEWS: Update
        * tests/Makefile.am: Add new testcases.
        * tests/testsuite.at: Likewise.
 
+2010-03-11  Sergey Poznyakoff  <gray@gnu.org.ua>
+
        Doc fixes.
+
        * doc/tar.texi: Consistently use lowercase `see' within sentences.
        More fixes spotted by Denis Excoffier.
        * THANKS: Update.
 
+2010-03-11  Sergey Poznyakoff  <gray@gnu.org.ua>
+
        Shut up a gcc warning message.
+
        * src/tar.c (tar_help_filter): Use a separate const
        variable to hold returns from gettext. Reported by
        Peter Breitenlohner.
 
+2010-03-11  Sergey Poznyakoff  <gray@gnu.org.ua>
+
        Bugfix.
+
        * src/names.c (collect_and_sort_names): Initialize prev_name.
        Reported by Dmitry V. Levin.
 
 2010-03-10  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Version 1.23
+
        * configure.ac, NEWS: Update version number.
 
+2010-03-10  Sergey Poznyakoff  <gray@gnu.org.ua>
+
        Doc changes.
+
        * NEWS: Update.
        * THANKS: Update.
        * doc/snapshot.texi, doc/snapshot.texi,
 2010-03-08  Kamil Dudka  <kdudka@redhat.com>
 
        Fix possible overflow in code_timespec (tiny change)
+
        * src/misc.c (code_timespec): ignore invalid values of ns
 
 2010-03-08  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Minor fix in the testsuite.
+
        * tests/extrac05.at: Skip test if creating
        sparse file fails.
 
+2010-03-08  Sergey Poznyakoff  <gray@gnu.org.ua>
+
        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.
 2010-03-02  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Minor change.
+
        * doc/tar.texi: Improve some wording.
 
 2010-03-02  Antonio Diaz Diaz  <ant_diaz@teleline.es>
 
        Add Lzip support
+
        * configure.ac: Add TAR_COMPR_PROGRAM(lzip)
        * doc/tar.texi: Reflect lzip support.
        * src/buffer.c (compress_type) <ct_lzip>: New constant.
 2010-03-02  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Minor fix.
+
        * tests/exclude05.at: Rewrite awk invocation to avoid
        overflowing awk's file table on Solaris.
 
 2010-03-02  Eric Blake <ebb9@byu.net>
 
        Fix large file support.
+
        * scripts/xsparse.c (read_map): Use fseeko.
        * src/incremen.c (write_directory_file): Likewise.
 
 2010-03-02  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Bugfix
+
        * src/buffer.c (seek_archive): Rewrite size computation
        to prevent it from reaching negative values. Based on
        report by Denis Excoffier <Denis.Excoffier@free.fr>.
 2010-02-25  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Supply more information to the --to-command script.
+
        * src/system.c (stat_to_env): Pass information about the current
        volume in variables TAR_ARCHIVE, TAR_VOLUME, TAR_BLOCKING_FACTOR,
        TAR_FORMAT.
 2010-02-17  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Minor change.
+
        * src/names.c (regex_usage_warning): Fix warning message.
 
 2010-02-05  Sergey Poznyakoff  <gray@gnu.org.ua>
 2010-02-05  Ondřej Vašík  <ovasik@redhat.com>
 
        Bugfix (tiny change)
+
        * src/xheader.c (xheader_read): Remove unnecessary call
        to xheader_init.
 
 2010-01-26  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Enable silent build mode.
+
        * configure.ac: Require automake 1.11, autoconf 2.63. Enable
        silent rules.
        * NEWS: Update.
 2010-01-25  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Read POSIX multivolume archives split at the header boundary.
+
        * src/common.h (read_header_mode): New enum.
        (read_header): Change type of the 3rd argument.
        * src/list.c (read_header): Change type of the 3rd argument.
 2010-01-24  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Minor change.
+
        * NEWS: Update.
        * doc/tar.texi: Update.
        * src/create.c (finish_header): Minor change.
 2010-01-24  Rob Vermaas  <rob.vermaas@gmail.com>
 
        Bugfix (tiny change).
+
        * src/tar.c (format_default_settings)[REMOTE_SHELL]: Fix
        misplaced comma.
 
 2010-01-24  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Minor fix.
+
        * src/incremen.c (read_incr_db_01)
        (read_directory_file): Initialize bufsize to 0.
        Suggested by noordsij@cs.helsinki.fi.
 
+2010-01-24  Sergey Poznyakoff  <gray@gnu.org.ua>
+
        Improve handling of --test-label.
+
        * src/list.c (print_volume_label): New function.
        (print_header): Call print_volume_label.
        (test_archive_label): New function.
        (parse_opt): Set subcommand if --test-label is given.
        (main): Handle TEST_LABEL_SUBCOMMAND.
 
+2010-01-24  Sergey Poznyakoff  <gray@gnu.org.ua>
+
        Fix listing of volume labels (in particular in PAX archives).
+
        * src/buffer.c (match_volume_label): Call set_volume_label.
        (check_label_pattern): Get label string
        as argument.
 2010-01-22  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Fix prefix length calculation in ustar mode.
+
        * src/create.c (split_long_name): Fix prefix length
        calculation.
        (write_ustar_long_name): Improve ustar mode compatibility
 2009-10-14  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Rewrite update algorithm.
+
        * src/common.h (namebuf_t): New typedef.
        (namebuf_create, namebuf_free)
        (namebuf_name): New prototypes.
        * tests/testsuite.at: Likewise.
        * tests/update.at (AT_KEYWORDS): Add update00.
 
+2009-10-14  Sergey Poznyakoff  <gray@gnu.org.ua>
+
        Minor changes.
+
        * src/tar.c (main): Ignore SIGPIPE.
        * src/system.c (sys_child_open_for_compress)
        (sys_child_open_for_uncompress): Reset SIGPIPE
        * tests/remfiles01.at: Avoid race conditions.
        * tests/remfiles02.at: Likewise.
 
+2009-10-14  Sergey Poznyakoff  <gray@gnu.org.ua>
+
        Bugfix.
+
        * src/buffer.c (_open_archive): Call guess_seekable_archive
        only if the call to open_compressed_archive succeeded.
 
 2009-10-10  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Improve previous changes.
+
        * acinclude.m4: Fix typos.
        * gnulib.modules: Add xvasprintf.
        * src/common.h: Include xvasprintf.h.
        (parse_opt): Use *_PROGRAM defines instead of hardcoded
        program names.
 
+2009-10-10  Sergey Poznyakoff  <gray@gnu.org.ua>
+
        Allow installers to specify alternative program names for
        compression programs.
+
        This adds --with-gzip, --with-bzip2 etc. switches to the
        configure, so that
        one can do, e.g. ./configure --with-bzip2=lbzip2 and have
 2009-10-09  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Minor fix.
+
        * src/buffer.c (magic): Fix `xz' entry: add the name of the
        program.
        * src/suffix.c (compression_suffixes, nsuffixes): Mark as static.
 
        Provide a way to explicitly set mtime for extended header
        ustar blocks.
+
        * src/tar.c (struct textual_date): ts is a copy of the structure,
        not a pointer to it. Date is a copy as well, hence the `const' is
        taken away.
        * NEWS: Update
        * doc/tar.texi: Document the changes.
 
+2009-10-07  Sergey Poznyakoff  <gray@gnu.org.ua>
+
        Use file's mtime as mtime for its extended header.
+
        This makes two pax archives binary equivalent if they
        have the same contents and care is taken to make extended
        headers otherwise reproducible, e.g. by using:
        Use current time stamp as mtime for global headers.
        (xheader_write): Take time_t as 3rd param.
 
+2009-10-07  Sergey Poznyakoff  <gray@gnu.org.ua>
+
        Fix bugs in handling the --remove-files option.
+
        Make sure the files are deleted only if they were succesfully
        stored
        to the archive.
 2009-10-04  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Fix bug in OLDGNU format creation.
+
        See tests/append02.at for a detailed description
 
        * src/common.h (MODE_FROM_HEADER): Take additional argument.
 2009-09-16  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Restore extra help output.
+
        * src/tar.c (tar_list_quoting_styles): Change first argument to
        struct obstack.
        (format_default_settings): New function.
 2009-09-08  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Improve command line option handling.
+
        * gnulib.modules: Add argp-version-etc and progname,
        use getopt-gnu instead of getopt.
        * src/tar.c (HANG_OPTION, USAGE_OPTION)
        (decode_options): Call argp_version_setup.
        Do not use ARGP_NO_HELP flag in the call to argp_parse.
 
+2009-09-08  Sergey Poznyakoff  <gray@gnu.org.ua>
+
        Avoid overwriting exit_status with a value indicating less
        important condition.
+
        * src/tar.c (set_exit_status): New function.
        * src/common.h (set_exit_status): New prototype.
        * src/compare.c: Use set_exit_status instead of
        * src/incremen.c (scan_directory): Use file_removed_diag
        instead of stat_diag.
 
+2009-09-08  Sergey Poznyakoff  <gray@gnu.org.ua>
+
        Automatic detection of seekable archives.
+
        * src/buffer.c (guess_seekable_archive): New function.
        (_open_archive): Call guess_seekable_archive for archives
        open for reading.
 2009-08-27  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Fix testcases.
+
        * tests/extrac08.at: Ensure a predictable umask value.
        * tests/xform-h.at (xform): do not depend on file name
        ordering.
 2009-08-13  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Fix interaction between --listed-incremental and -C
+
        * src/incremen.c (read_directory_file): Execute eventual -C dir
        after opening the snapshot file.
        (collect_and_sort_names): Remove call to chdir_do
 
        Update for new exclude module from gnulib. Add testcases by
        Phil Proudman.
+
        * src/names.c (is_pattern): Remove.
        (regex_usage_warning): Use fnmatch_pattern_has_wildcards
        instead of
 2009-08-09  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Minor fixes.
+
        * src/misc.c (file_removed_diag): Set exit code to
        TAREXIT_DIFFERS.
 
 
        Minor fixes
 
+2009-08-08  Sergey Poznyakoff  <gray@gnu.org.ua>
+
        Fix handling of files removed during incremental dumps.
+
        Changes to src/create.c and src/incremen.c are partially
        based on patch from Alexander Peslyak <solar at openwall.com>.
 
        * NEWS: Update.
        * doc/tar.texi: Minor fix.
 
+2009-08-08  Sergey Poznyakoff  <gray@gnu.org.ua>
+
        Optimize searches for directory structures by keeping a pointer
        to struct directory in struct name.
+
        * src/common.h (struct name): New member `directory' replaces
        dir_contents. Rearrange members.
        (rebase_directory): Change signature.
 2009-08-07  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Minor fixes.
+
        * src/common.h (rebase_directory): New prototype.
        * src/incremen.c (rebase_directory): Use replace_prefix.
        * src/names.c (collect_and_sort_names): Abort if
        hash_insert fails.
 
+2009-08-07  Sergey Poznyakoff  <gray@gnu.org.ua>
+
        Improve listed incremental dumps.
+
        The modified algorithm tries to avoid dumping the same
        directory twice and ensures the order of the directories
        in the resulting archive is the same, whatever their order
 
        Forgotten to push src/warning.c
 
+2009-08-05  Sergey Poznyakoff  <gray@gnu.org.ua>
+
        Implement the --warning option.
+
        * src/warning.c: New file.
        * src/Makefile.am: Add warning.c
        * src/common.h: Provide definitions for warning classes.
 
        Fix backup handling and restoring file modes of existing
        directories
+
        * NEWS, THANKS: Update
        * src/extract.c (extract_dir): reset status to 0 if the
        directory already exists.
 2009-07-30  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Fix hard links recognition with -c --remove-files
+
        * src/create.c (dump_hard_link): Always look up in the link table
        if remove_files_option is set. Patch suggested by Theodore Ts'o
        <tytso@mit.edu>.
        * tests/Makefile.am (TESTSUITE_AT): Add link02.at and link03.at
        * tests/testsuite.at: Include link02.at and link03.at
 
+2009-07-30  Sergey Poznyakoff  <gray@gnu.org.ua>
+
        Fix handling of hard link targets by -c --transform
+
        * src/create.c (file_count_links): Transform link target
        before the look up.
        * tests/xform-h.at: New test case.
 2009-06-23  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Minor fix.
+
        * src/extract.c (file_newer_p): Do not report error on ENOENT
 
 2009-06-19  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Fix Solaris bug where chmod fails if we don't have
        PRIV_SYS_LINKDIR
+
        * gnulib.modules: Add priv-set.
        * src/extract.c (set_mode, extract_archive): Restore
        PRIV_SYS_LINKDIR on chmod failure.
 2009-06-18  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Ensure default behavior for SIGPIPE
+
        * src/tar.c (main): Install default handler for SIGPIPE.
        Proposed by Bastian Blank.
 
 2009-06-18  Eric Blake <ebb9@byu.net>
 
        Follow autoconf recommendation for TESTSUITEFLAGS.
+
        * tests/Makefile.am (check-local, installcheck-local): Honor
        TESTSUITEFLAGS.
 
 2009-06-18  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Fix handling of sub-subprocess returns.
+
        * src/system.c (wait_for_grandchild): New function.
        (sys_child_open_for_compress)
        (sys_child_open_for_uncompress): Use wait_for_grandchild
 2009-05-25  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Report record size only if the archive refers to a device.
+
        * Makefile.am (INCLUDES): Add ../lib, for rmt-command.h
        * src/buffer.c (short_read): Report the actual record size
        only if the archive descriptor refers to a device.
 2009-05-14  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Do not issue errors on existing files when given the -k option
+
        * Makefile.am (dist-hook): Fix rule.
        * src/extract.c (maybe_recoverable): Return three-state value.
        (extract_dir): Skip extraction if maybe_recoverable indicates so.
 2009-05-12  Eric Blake <ebb9@byu.net>
 
        Avoid undefined behavior
+
        * src/xheader.c (xheader_set_keyword_equal): Pass correct type to
        ctype macros.
        * src/transform.c (run_case_conv): Likewise.
 2009-03-12  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Bugfixes.
+
        * bootstrap (symlink_to_dir): Fix symlink calculation.
        * doc/tar.texi: Minor fixes by Victor Villa and Stepan Kasal.
 
 
        Migrate to Git
 
+Currently the ChangeLog is generated automatically from the Git
+revision history, but from 1997 to 2009 the ChangeLog file was
+maintained by hand, under CVS.  This file records the older log.
+
+Copyright 1997-2001, 2003-2009, 2013 Free Software Foundation, Inc.
+
+This file is part of GNU tar.
+
+GNU tar is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3 of the License, or
+(at your option) any later version.
+
+GNU tar is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
 2009-03-05  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        * src/incremen.c: --no-recursive works with --incremental.
        See ChangeLog.1 for earlier changes.
 
        -----
-
-       Copyright (C) 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007
-       Free Software Foundation, Inc.
-
-       This file is part of GNU tar.
-
-       GNU tar is free software; you can redistribute it and/or modify
-       it under the terms of the GNU General Public License as published by
-       the Free Software Foundation; either version 3, or (at your option)
-       any later version.
-
-       GNU tar is distributed in the hope that it will be useful,
-       but WITHOUT ANY WARRANTY; without even the implied warranty of
-       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-       GNU General Public License for more details.
-
-       You should have received a copy of the GNU General Public License
-       along with GNU tar; see the file COPYING.  If not, write to
-       the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-       Boston, MA 02110-1301, USA.
 \f
 Local Variables:
 mode: change-log