+2014-07-27 Sergey Poznyakoff <gray@gnu.org>
+
+ Version 1.28
+
+2014-07-27 Nathan Stratton Treadway <nathanst@ontko.com>
+
+ Minor change in docstrings. nor ch#
+
+ Restructure the remfiles testsuite.
+
+2014-07-22 Sergey Poznyakoff <gray@gnu.org>
+
+ Don't build ttyemu and run tty I/O test if grantpt is not
+ available.
+
+ * configure.ac (TAR_COND_GRANTPT): Define conditional depending
+ on whether grantpt is available.
+ * gnulib.modules: Remove grantpt. It relies upon a helper binary
+ pt_chown which it installs and which is useless in the testsuite.
+ * tests/Makefile.am [TAR_COND_GRANTPT]: Build ttyemu
+ * tests/iotty.at: Skip test if ttyemu is not build.
+ * tests/ttyemu.c (noecho): Fix error message
+ (main): Use TIOCSCTTY if it is defined.
+
+2014-07-22 Benno Schulenberg <bensberg@justemail.net>
+
+ Fix a typo and some wordings in the documentation.
+
+ * doc/tar.texi: Fix some missing articles, and make it clearer
+ that "any" does not mean "anything" but "either of the two".
+
+2014-07-22 Nathan Stratton Treadway <nathanst@ontko.com>
+
+ Fix the testsuite
+
+ * tests/incr07.at: Don't assume case-sensitive filesystem.
+
+2014-07-11 Paul Eggert <eggert@cs.ucla.edu>
+
+ tar: minor fixups related to recent checkpoint.c change
+
+ * src/checkpoint.c (getwidth, format_checkpoint_string):
+ Use long and strtol, not int, to avoid overflow issues.
+ (getwidth): Don't assume termios.h defines TIOCGWINSZ,
+ as it doesn't on some older hosts.
+
+2014-07-11 Sergey Poznyakoff <gray@gnu.org>
+
+ Bugfixes
+
+ * gnulib.modules: Add faccessat
+ * src/checkpoint.c: Include termios.h
+
+2014-06-29 Nathan Stratton Treadway <nathanst@ontko.com>
+
+ tar: document xgetcwd test case better
+
+ * src/misc.c (normalize_filename): Add commentary for clarity.
+ * tests/extrac09.at: Retitle test case and add comments for
+ clarity.
+
+2014-06-24 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ Fix typos in ChangeLog
+
+ * ChangeLog.CVS: Fix typos.
+ * ChangeLog.amend: New file.
+ * Makefile.am: Define changelog_amend_file.
+
+2014-04-30 Paul Eggert <eggert@cs.ucla.edu>
+
+ tar: do not dereference NULL pointer with '--remove-files .'
+
+ Problem reported by Thorsten Hirsch in:
+ http://lists.gnu.org/archive/html/bug-tar/2014-04/msg00011.html
+ * src/unlink.c (flush_deferred_unlinks):
+ Do not attempt to find the parent of "." when "." is
+ at the top level.
+ * tests/remfiles10.at: New file.
+ * tests/Makefile.am (TESTSUITE_AT):
+ * tests/testsuite.at: Add it.
+
+2014-03-27 Sergey Poznyakoff <gray@gnu.org>
+
+ Refuse to write archive contents to a tty.
+
+ * NEWS: Update.
+ * src/buffer.c (_open_archive): Refuse to write to a tty.
+ * tests/iotty.at: Test output to a tty.
+
+2014-03-26 Vitezslav Cizek <vcizek@suse.cz>
+
+ fix an eternal loop in handle_option
+
+ * src/names.c (handle_option): increment loop counter
+
+2014-03-20 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ Fail if archive comes from a terminal.
+
+ Based on patch from Pavel Raiskup <praiskup@redhat.com>.
+
+ * gnulib.modules: Add new modules.
+ * src/buffer.c (_open_archive): Refuse to read archive from a tty.
+ * tests/Makefile.am (TESTSUITE_AT): Add iotty.at
+ (check_PROGRAMS): New program ttyemu
+ * tests/testsuite.at: Include iotty.at
+ * tests/iotty.at: New file.
+ * tests/ttyemu.c: New file.
+
+2014-03-13 Paul Eggert <eggert@cs.ucla.edu>
+
+ tar: port to Solaris 9
+
+ Problem reported by Jesse C in:
+ http://lists.gnu.org/archive/html/bug-tar/2014-03/msg00034.html
+ * gnulib.modules: Add strtoimax and strtoumax, since tar invokes
+ these functions directly and they don't exist on Solaris 9.
+
+2014-02-25 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ Test the --[no-]recursive options (see commit 2bd9c153_.
+
+ * tests/recurs02.at: New test case.
+ * tests/Makefile.am: Add new file.
+ * tests/testsuite.at: Add new file.
+
+2014-02-22 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ Support exclusion patterns from various VCS ignore lists.
+
+ * src/Makefile.am (tar_SOURCES): Add exclist.c
+ * src/common.h (EXCL_DEFAULT, EXCL_RECURSIVE)
+ (EXCL_NON_RECURSIVE): New flags.
+ (excfile_add, info_attach_exclist)
+ (info_cleanup_exclist,info_free_exclist)
+ (exclude_vcs_ignores): New prototypes.
+ * src/create.c (dump_dir0): Call info_attach_exclist.
+ * src/exclist.c: New file.
+ * src/incremen.c (scan_directory): Call info_attach_exclist.
+ * src/names.c (excluded_name): Moved to exclist.c. Change
+ signature.
+ All uses updated.
+ * src/tar.c: New options: --exclude-ignore,
+ --exclude-ignore-recursive
+ and --exclude-vcs-ignores.
+ (tar_stat_destroy): Free exclist.
+ * src/tar.h (tar_stat_info): New member exclude_list.
+
+ * NEWS: Document new exclusion options.
+ * doc/tar.texi: Likewise.
+ * doc/tar.1: Likewise.
+
+2014-02-14 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ Fix in testsuite
+
+ * acls03.at: Fix improper invocation of setfacl.
+
+2014-02-14 Pavel Raiskup <praiskup@redhat.com>
+
+ testsuite: add test for buggy default ACLs
+
+ * tests/Makefile.am: Mention acls03.at.
+ * tests/testsuite.at: Likewise.
+ * tests/acls03.at: New testcase.
+
+2014-02-14 Pavel Raiskup <praiskup@redhat.com>
+
+ acls: bugfix for default ACLs extraction
+
+ When --acls option is on (regardless of tarball contents or
+ tarball format), we should explicitly set OR delete default ACLs
+ for extracted directories. Prior to this update, we always
+ created arbitrary default ACLs based standard file permissions.
+
+ * configure.ac (with_posix_acls): Check also for acl_free and
+ acl_delete_def_file to mark IEEE 1003.1e ACLs as supported.
+ * src/xattrs.c (acl_delete_def_file_at): New function.
+ (xattrs__acls_set): Do not treat acls_option at all; Delete
+ default ACLs if appropriate.
+
+ References:
+ http://www.mail-archive.com/bug-tar@gnu.org/msg04355.html
+ Thanks: Juan J. MartÃnez and Mark Steinborn
+
+2014-02-14 Pavel Raiskup <praiskup@redhat.com>
+
+ tar: imply --xattrs when --xattrs-{inc,exc}lude used
+
+ Options --xattrs-include=MASK and --xattrs-exclude=MASK now turn
+ on the --xattrs option.
+
+ Fix also bug in printing in xattrs.c - don't print when option is
+ negative.
+
+ * src/tar.c (set_xattr_option): New static function.
+ (parse_opt): Call new function when --xatrrs, --xattrs-include or
+ --xattrs-exclude option is used.
+ * src/xattrs.c (xattrs_print, xattrs_print_char): Expect positive
+ values in options.
+
+2014-02-14 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ THANKS: Add Anthony G. Basile.
+
+2014-02-14 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ Use correct headers/libraries when providing xattr support
+
+ See https://savannah.gnu.org/patch/index.php?8252. Patch provided
+ by Anthony G. Basile.
+
+ * acinclude.m4 (TAR_HEADERS_ATTR_XATTR_H): Look for <sys/xattr.h>
+ first and then for <attr/xattr.h>. Link against libattr.so if
+ needed.
+ * lib/xattr-at.h: Include sys/xattr.h or attr/xattr.h, depending
+ on which one is detected.
+ * src/Makefile.am [TAR_LIB_ATTR] (tar_LDADD): Link against -lattr.
+
+2014-02-14 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ Minor change
+
+ * src/tar.c (decode_options): Silently ignore --one-top-level
+ if used with a non-reading command.
+
+2014-02-14 Sergey Poznyakoff <gray@gnu.org>
+
+ New option --sort=ORDER
+
+ This option makes tar sort the entries of directories that will be
+ added to an archive according to ORDER (none, name, or order).
+
+ Based on proposition by Dick Streefland
+ (https://savannah.gnu.org/patch/?7892).
+
+ * src/common.h (savedir_sort_order): New global.
+ * src/create.c: Pass savedir_sort_order to streamsavedir.
+ * src/misc.c: Likewise.
+ * src/tar.c: New option --sort.
+
+ * NEWS: Update.
+ * doc/tar.texi: Document the --sort option.
+ * doc/tar.1: Likewise.
+
+2014-02-13 Sergey Poznyakoff <gray@gnu.org>
+
+ Fix the testsuite
+
+ * tests/opcomp01.at: Update expected error messages.
+ * tests/opcomp03.at: Likewise.
+
+2014-02-13 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ Fix --one-top-level used together with --list.
+
+ * src/extract.c: Move one_top_level stuff to tar.c
+ (decode_options).
+ * src/tar.c (option_conflict_error): New function.
+ (decode_options): Use option_conflict_error to complain about
+ conflicting options in a uniform manner.
+ Process one_top_level options here.
+ (request_stdin): Fix error message.
+ * tests/onetop04.at: New testcase: check --one-top-level with
+ --list.
+ * tests/Makefile.am: Add new testcase.
+ * tests/testsuite.at: Add new testcase.
+
+2014-02-13 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ Fix NEWS
+
+ * NEWS: Remove duplicate description of the --one-top-level
+ option.
+
+2014-02-12 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ configure.ac: look for host-prefixed ar
+
+ See https://savannah.gnu.org/patch/?8183
+
+2014-02-10 Sergey Poznyakoff <gray@gnu.org>
+
+ Bugfix
+
+ * src/suffix.c (find_compression_suffix): Fix eventual coredump.
+
+2014-02-10 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ Fix docs.
+
+2014-02-10 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ Update docs.
+
+ * NEWS: Document --one-top-level
+ * THANKS: Mention Connor Behan
+
+2014-01-30 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ Update copyright years.
+
+2014-01-28 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ Improve one-top-level functionality
+
+ Make sure the changes become visible with
+ --show-transformed-names.
+
+ * src/common.h (strip_compression_suffix): New function.
+ (one_top_level): Rename to one_top_level_dir. All uses changed.
+ * src/extract.c (extr_init): Use strip_compression_suffix.
+ Bail out if unable to determine top-level directory.
+ (maybe_prepend_name): Remove. All uses removed.
+ * src/tar.c (options): --one-top-level takes optional argument.
+ (parse_opt): Handle it.
+ * src/list.c (enforce_one_top_level): New function.
+ (transform_stat_info): Call enforce_one_top_level if required.
+ * src/suffix.c (compression_suffixes): List "tar" (no
+ compression);
+ terminate with NULL entry.
+ (find_compression_suffix): New static.
+ (strip_compression_suffix): New function.
+
+ * doc/tar.1: Update.
+ * doc/tar.texi: Update.
+
+ * tests/onetop01.at: New testcase.
+ * tests/onetop02.at: New testcase.
+ * tests/onetop03.at: New testcase.
+ * tests/Makefile.am: Add new testcases.
+ * tests/testsuite.at: Likewise.
+
+2014-01-27 Connor Behan <connor.behan@gmail.com>
+
+ Detect tarbombs while extracting
+
+ * src/common.h (one_top_level_option): New global.
+ (one_top_level): New global.
+ * src/extract.c (extr_init): If one_top_level_option is set,
+ determine
+ the name one_top_level that might have to be prepended.
+ (extract_archive): If one_top_level_option is set, prepend
+ one_top_level
+ to all names that don't already start with it.
+ * src/tar.c (ONE_TOP_LEVEL_OPTION): New contant.
+ (options): New option --one-top-level.
+ (parse_opt): Handle this option.
+ (decode_options): Make it conflict with --absolute-names.
+
+2014-01-27 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ Don't install rmt.8 if rmt is not built.
+
+ * doc/Makefile.am [PU_RMT_COND]: Define RMT_8
+ (dist_man_MANS): use RMT_8 instead of the hardcoded rmt.8
+
+2014-01-27 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ Provide tar(1) and rmt(8) manpages.
+
+ * NEWS: Update.
+ * doc/Makefile.am: Add manpages.
+ * doc/tar.1: New file.
+
+ * src/tar.c (tar_help_filter): Handle LZOP_OPTION.
+
+2014-01-23 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ Make sure transformed file names retain trailing slash in listing.
+
+ * src/list.c (simple_print_header): Print trailing slash
+ if using the transformed name.
+ Use had_trailing_slash instead of analyzing last byte if temp_name
+
+2014-01-22 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ checkpoint actions: further improvements.
+
+ * NEWS: Update.
+ * doc/tar.texi: Update.
+ * src/buffer.c (print_stats): Avoid use of additional string
+ buffer.
+ Allow for text to be NULL.
+ Call gettext if it is not.
+ (format_total_stats): Don't use gettext when calling print_stats.
+ * src/checkpoint.c (def_format): Change default format.
+ (format_checkpoint_string): Implement optional arguments for
+ T conversion.
+ (finish_checkpoint_actions): Rename to checkpoint_flush_actions,
+ make extern. All uses changed.
+ * src/common.h (checkpoint_flush_actions): New proto.
+ * src/tar.c (main): Set error_hook
+
+2014-01-22 Sergey Poznyakoff <gray@gnu.org>
+
+ Improve checkpoint interface.
+
+ * src/buffer.c (format_total_stats): The format arg is const
+ All uses updated.
+ (default_total_format): const
+ * src/checkpoint.c (tty, tty_cleanup): New static.
+ (format_checkpoint_string): New "canned" format %c
+ (checkpoint_finish): New function.
+ * src/common.h (checkpoint_finish): New proto.
+ * src/tar.c (main): Call checkpoint_finish.`
+
+2014-01-21 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ Implement statistics display in checkpoint actions.
+
+ * NEWS: Update.
+ * configure.ac: Version 1.27.90
+ * gnulib.modules: Add fprintftime.
+ * doc/tar.texi: Document the "totals" action and new format
+ specifiers
+ for echo and ttyout checkpoint actions.
+ * src/buffer.c (compute_duration): Return computed value.
+ (print_stats): Don't print trailing newline. Return number of
+ characters output.
+ (format_total_stats): New function.
+ (print_total_stats): Rewrite via format_total_stats.
+ * src/checkpoint.c (checkpoint_opcode) <cop_totals>: New opcode.
+ (checkpoint_compile_action): Handle cop_totals.
+ (expand_checkpoint_string): Remove.
+ (format_checkpoint_string): New function to be used instead of
+ expand_checkpoint_string. All callers updated.
+ * src/common.h (TF_READ,TF_WRITE)
+ (TF_DELETED): New constants.
+ (format_total_stats,print_total_stats): New protos.
+
+2014-01-10 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ Remove shar archives from distribution.
+
+ These are going to phase out in automake 2.0
+
+2014-01-10 Sergey Poznyakoff <gray@gnu.org>
+
+ Fix the use of --no-recursion and --recursion options.
+
+ Each option remains in effect until cancelled by the next
+ ocurrence
+ of its counterpart, as stated in the documentation.
+
+ * src/names.c (name_next_elt): Restore recursion_option from the
+ value of matching_flags.
+
+2014-01-09 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ Minor bugfixes
+
+ * src/compare.c (diff_dumpdir): Close descriptor if fstat failed.
+ (diff_multivol): Make sure the descriptor is closed and eventual
+ errors reported if lseek fails.
+ Both reported by Jiri Kukacka.
+
+2014-01-07 Paul Eggert <eggert@cs.ucla.edu>
+
+ tar: work aruond IBM XL C bug
+
+ * src/incremen.c (show_snapshot_field_ranges)
+ (write_directory_file_entry): Use simpler array size expression,
+ one that evaluates to the same value. This works around
+ a compiler
+ bug with IBM XL C. Problem reported by Yannick Bergeron in
+ <http://lists.gnu.org/archive/html/bug-tar/2014-01/msg00009.html>.
+
+2014-01-03 Paul Eggert <eggert@cs.ucla.edu>
+
+ tar: update ancient configure cruft
+
+ * configure.ac: Use AC_PROG_CC_STDC, not just AC_PROG_CC.
+ Remove obsolete macros AC_ISC_POSIX, AC_HEADER_SYS_WAIT,
+ AC_HEADER_DIRENT, AC_HEADER_STAT, AC_HEADER_STDC, AC_TYPE_SIGNAL,
+ AC_TYPE_SIZE_T.
+ * lib/prepargs.c (IN_CTYPE_DOMAIN): Remove. All uses removed.
+ * src/list.c (from_header): Use isspace, not ISSPACE.
+ * src/system.c (pipe_handler, sys_exec_info_script):
+ * src/tar.c (sigstat):
+ Use void, not RETSIGTYPE.
+
+2013-11-17 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ Version 1.27.1
+
+2013-11-17 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ Fix star compatibility (sparse headers)
+
+ * src/sparse.c (star_get_sparse_info): Update file->dumped_size
+
+2013-11-17 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ Fix GNU long link header.
+
+ * src/create.c (write_gnu_long_link): Set timestamp to
+ 0 for backward compatibility. Bug reported by David Barri.
+ * THANKS: Update.
+
+2013-11-17 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ Fix unquoting of input file names.
+
+ * src/names.c (read_next_name): Unquote file names coming from the
+ -T argument. Bug reported by Nicolas Dudebout.
+ * THANKS: Update.
+
+2013-10-24 Paul Eggert <eggert@cs.ucla.edu>
+
+ build: fix bug where 'configure --with-posix-acls' disables ACLs
+
+ Reported by Lars Wendler in
+ <http://lists.gnu.org/archive/html/bug-tar/2013-10/msg00022.html>.
+ * configure.ac (with_posix_acls): Fix typo.
+
+2013-10-23 Paul Eggert <eggert@cs.ucla.edu>
+
+ Fix core dump on Solaris 10 when "." isn't readable.
+
+ Reported by Peter Kruse in
+ <http://lists.gnu.org/archive/html/bug-tar/2013-10/msg00017.html>.
+ This doesn't fix all the Solaris 10 test failures, just the
+ core dump.
+ * src/common.h, src/misc.c (tar_getcdpath): Now static.
+ * src/misc.c (normalize_filename): Report a fatal error
+ if cdpath is null, since we don't know the absolute name
+ of the working directory in that case. FIXME: there should
+ be no need to know absolute file names.
+ (chdir_arg): Simplify wd allocation.
+ Don't assume that xgetcwd returns non-null.
+
+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
+ files.
+ * src/create.c (dump_file0): Likewise. Also, do not restore atime
+ when fd is zero, because that indicates a file we haven't opened.
+
+2011-02-23 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/tar.texi: Adjust example commands and output for accuracy.
+
+ The original problem was reported by Michael Witten in
+ <http://lists.gnu.org/archive/html/bug-tar/2011-02/msg00033.html>.
+
+2011-02-16 Paul Eggert <eggert@cs.ucla.edu>
+
+ tar: if (p) free (p); -> free (p);
+
+ There is no longer (since SunOS 4) any need to guard against
+ free (NULL), so replace each "if (p) free (p);" with "free (p);".
+ From Jim Meyering in
+ <http://lists.gnu.org/archive/html/bug-tar/2011-01/msg00026.html>.
+ * src/incremen.c (scan_directory, read_directory_file): As above.
+ (try_purge_directory): Likewise.
+ * src/list.c (read_header): Likewise.
+ * src/misc.c (assign_string): Likewise.
+
+2010-12-14 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ Correctly store long sparse file names in PAX archives.
+
+ * src/sparse.c (pax_dump_header_1): Make sure the created header
+ name is
+ shorter than NAME_FIELD_SIZE bytes.
+ * tests/sparse04.at: New testcase.
+ * tests/Makefile.am (TESTSUITE_AT): Add sparse04.at.
+ * tests/testsuite.at: Include sparse04.at.
+ * NEWS: Update.
+
+2010-12-07 Paul Eggert <eggert@cs.ucla.edu>
+
+ tests: make the truncate test smaller and less buggy (tiny change)
+
+ Reported by Solar Designer in
+ <http://lists.gnu.org/archive/html/bug-tar/2010-12/msg00003.html>.
+ * tests/truncate.at: Use a smaller test case, and make its
+ race condition less likely.
+
+2010-11-27 Paul Eggert <eggert@cs.ucla.edu>
+
+ tests: skip SIGPIPE-dependent tests in environments ignoring
+ SIGPIPE
+
+ Problem reported by Sven Joachim in
+ <http://lists.gnu.org/archive/html/bug-tar/2010-11/msg00043.html>.
+ * tests/remfiles01.at: Use AT_SIGPIPE_PREREQ.
+ * tests/sigpipe.at: Likewise.
+ * tests/testsuite.at (AT_SIGPIPE_PREREQ): New macro.
+
+2010-11-25 Paul Eggert <eggert@cs.ucla.edu>
+
+ tar: work around NetBSD and Tru64 symlink incompatibility
+ with POSIX
+
+ Problem reported by Bruno Haible in
+ <http://lists.gnu.org/archive/html/bug-gnulib/2010-11/msg00306.html>.
+ * src/extract.c (maybe_recoverable): Also treat EFTYPE (if
+ defined)
+ and ENOTSUP like ELOOP.
+
+2010-11-24 Paul Eggert <eggert@cs.ucla.edu>
+
+ tar: adjust to paxutils change: paxexit.c -> paxexit-status.c
+
+ * lib/Makefile.am (libtar_a_SOURCES): paxexit.c renamed to
+ paxexit-status.c.
+
+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/create.c (dump_file0): Replace "is_individual_file (p)"
+ with "top_level".
+ * src/incremen.c (procdir): Replace "!is_individual_file
+ (name_buffer)" with "st->parent". Fix bug with --one-file-system
+ and --listed-incremental.
+ * src/names.c (individual_file_table, register_individual_file):
+ (is_individual_file): Remove. All uses removed.
+
+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
+ backslashes inside ``; it shouldn't matter for modern shells but
+ it might matter for older ones.
+ * scripts/restore.in: Likewise.
+ * scripts/backup.in: Adjust implementation of -t/--time to match
+ the new implementation of -l/--level.
+
+2010-11-15 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ Issue a warning if the archive being compared contais transformed
+ file names.
+
+ * src/common.h (transform_program_p): New proto.
+ * src/transform.c (transform_program_p): New function.
+ * src/compare.c (verify_volume): Warn if the archive contains
+ transformed file names.
+
+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-06-28 commit. Also, don't try to invoke diff_archive on a
+ zero block.
+ * tests/Makefile.am (TESTSUITE_AT): Add verify.at.
+ * tests/testsuite.at: Include verify.at.
+ * tests/verify.at: New file.
+
+2010-11-08 Paul Eggert <eggert@cs.ucla.edu>
+
+ Merge branch 'master' of ssh://git.sv.gnu.org/srv/git/tar
+
+2010-11-08 Jim Meyering <meyering@redhat.com>
+
+ tests: avoid spurious failure when VERSION_CONTROL envvar is set
+
+ * tests/backup01.at: Unset VERSION_CONTROL. Otherwise,
+ when set to e.g., 'always', it would cause this test to fail.
+