chaz/tar
6 years agoOptions to control option handling in file lists. master
Sergey Poznyakoff [Mon, 3 Aug 2015 13:11:08 +0000 (16:11 +0300)] 
Options to control option handling in file lists.

The --verbatim-files-from option disables option handling in
file lists.  The --no-verbatim-files-from reverts its effect.

The --null option implies --verbatim-files-from.  This restores
the documented behavior, broken by 26538c9b.

* src/common.h (verbatim_files_from_option): New global.
* src/names.c (name_elt): New member: file.verbatim
(name_add_file): Take 'verbatim' state as its third parameter.
(read_next_name): Don't call handle_option if file.verbatim
is set.
* src/tar.c: New options --verbatim-files-from and
--no-verbatim-files-from.

* doc/tar.texi: Document --verbatim-files-from and
--no-verbatim-files-from options.
* NEWS: Update.
* configure.ac: Version 1.28.90

* tests/T-null2.at: New testcase.
* tests/Makefile.am: Update.
* tests/testsuite.at: Update.

6 years agoFix typos (preceeded etc.)
Anders Jonsson [Sat, 25 Jul 2015 11:25:03 +0000 (13:25 +0200)] 
Fix typos (preceeded etc.)

Copyright-paperwork-exempt: yes

6 years agotar: fix symlink race and symlink transform bug
Paul Eggert [Mon, 13 Jul 2015 16:53:00 +0000 (09:53 -0700)] 
tar: fix symlink race and symlink transform bug

Problem reported by Tobias Stoeckmann in:
http://lists.gnu.org/archive/html/bug-tar/2015-07/msg00004.html
* gnulib.modules: Add areadlinkat-with-size.
* src/create.c: Include areadlink.h.
(dump_file0): Use areadlinkat_with_size, rather than trying to do
it by hand, incorrectly.  This also avoids assumption that
the symlink contents fit on the stack.  Also, use the transformed
link name, not the original link name, when deciding whether the
name is long enough to require writing a long link.

6 years agotar: port -d to longer symlinks
Paul Eggert [Mon, 13 Jul 2015 16:46:17 +0000 (09:46 -0700)] 
tar: port -d to longer symlinks

* src/compare.c (diff_symlink):
Don't use alloca on symlink length; it might be too big for the stack.
Don't assume that readlinkat's return value fits in 'int'.
Prefer memcmp to strncmp where either will do.

6 years agotar: port to recent gnulib
Paul Eggert [Mon, 13 Jul 2015 16:32:46 +0000 (09:32 -0700)] 
tar: port to recent gnulib

* gnulib.modules: Remove 'acl' and add 'file-has-acl'.

6 years agotar: pacify GCC 5.1 -Wformat-signedness
Paul Eggert [Mon, 13 Jul 2015 16:29:51 +0000 (09:29 -0700)] 
tar: pacify GCC 5.1 -Wformat-signedness

* lib/wordsplit.c (struct wordsplit_node.flags):
Now unsigned, so that 'printf ("%x", p->flags)' doesn't provoke GCC.
* src/incremen.c (read_num, dumpdir_ok):
Don't printf an int with %x or %o.

6 years agoFix extraction from concatenated incremental archives.
Sergey Poznyakoff [Thu, 16 Apr 2015 10:02:10 +0000 (13:02 +0300)] 
Fix extraction from concatenated incremental archives.

* src/common.h (remove_delayed_set_stat): New proto.
* src/extract.c (free_delayed_set_stat)
(remove_delayed_set_stat): New function.
(apply_nonancestor_delayed_set_stat): Use free_delayed_set_stat.
* src/misc.c (safer_rmdir): Remove delayed_set_stat entry
corresponding to the removed directory.
* tests/incr10.at: New test case.
* tests/Makefile.am: Add new test.
* tests/testsuite.at: Likewise.

6 years agoFix make installcheck
Sergey Poznyakoff [Fri, 10 Apr 2015 08:18:38 +0000 (11:18 +0300)] 
Fix make installcheck

Make installcheck would fail unless make check had been run before it.
Reported by Erik Brangs <erik.brangs@gmx.de>

* tests/Makefile.am (installcheck-local): Depend on $(check_PROGRAMS)

6 years agotar: don't assume GZIP
Paul Eggert [Wed, 18 Mar 2015 05:54:28 +0000 (22:54 -0700)] 
tar: don't assume GZIP

* Makefile.am (dist-hook): Port to gzip implementations that
warn about nontrivial settings in the GZIP environment var.

6 years agotar: don't suggest GZIP
Paul Eggert [Tue, 17 Mar 2015 17:46:20 +0000 (10:46 -0700)] 
tar: don't suggest GZIP

* doc/tar.texi (gzip): Don't suggest using the GZIP environment
variable, as it will be deprecated in the next gzip release.

6 years agoImprove compression format recognition
Sergey Poznyakoff [Thu, 19 Feb 2015 15:00:58 +0000 (17:00 +0200)] 
Improve compression format recognition

Some comressed archives can pass the checksum test, which makes tar
treat them as uncompressed archives.

* src/buffer.c (check_compressed_archive): Test the checksum only
if the block we read looks like a valid tar header (i.e. has
a magic string).

6 years agotar: port xattr-at.c to Solaris 10
Paul Eggert [Tue, 6 Jan 2015 04:24:18 +0000 (20:24 -0800)] 
tar: port xattr-at.c to Solaris 10

* lib/xattr-at.c (setxattrat, lsetxattrat, getxattrat, lgetxattrat)
(listxattrat, llistxattrat): Compile only if HAVE_XATTRS, so that
the code doesn't call functions that are not declared.

6 years agotar: port wordsplit attribute to Sun C
Paul Eggert [Tue, 6 Jan 2015 04:07:34 +0000 (20:07 -0800)] 
tar: port wordsplit attribute to Sun C

Reported by Ted Carr in:
http://lists.gnu.org/archive/html/bug-tar/2015-01/msg00002.html
* lib/wordsplit.h (__WORDSPLIT_ATTRIBUTE_FORMAT):
New macro, taken from Gnulib.
(struct wordsplit): Use it.
* lib/wordsplit.c (_wsplt_error): Use it.

6 years agoSilent a cc warning
Sergey Poznyakoff [Wed, 17 Dec 2014 06:37:14 +0000 (08:37 +0200)] 
Silent a cc warning

* src/xheader.c (xheader_string_end): Make sure pointer
arithmetics applies on char*.

6 years agotar: port ISFOUND, WASFOUND to C89
Paul Eggert [Fri, 12 Dec 2014 03:01:57 +0000 (19:01 -0800)] 
tar: port ISFOUND, WASFOUND to C89

Problem reported by Romano Maspero in:
http://lists.gnu.org/archive/html/bug-tar/2014-12/msg00010.html
* src/common.h (ISFOUND, WASFOUND): Port to C89.

6 years agoFix tar -c -l file file
Sergey Poznyakoff [Wed, 10 Dec 2014 02:34:02 +0000 (04:34 +0200)] 
Fix tar -c -l file file

When the same file is added several times to the archive, count
correctly the number of hard links.  See also 37ddfb0b.

* src/create.c (dump_hard_link): Don't decrease nlink if it is 0.
* tests/link04.at: Test -cl options.

6 years agoHonor the pax-option overrides when creating archive.
Sergey Poznyakoff [Fri, 7 Nov 2014 11:03:18 +0000 (13:03 +0200)] 
Honor the pax-option overrides when creating archive.

Changes proposed by Denis Excoffier.

* NEWS: Fix typos.
* doc/tar.texi: Fix typos.  Improve recipe for creation of binary
equivalent archives.
* src/create.c (write_extended): Use the value of the
--mtime option (if specified) as the default for exthdr.mtime.
* src/xheader.c (xheader_store): Create the header if at least
one override is supplied in --pax-option.

6 years agoAdd testcase for the previous commit.
Sergey Poznyakoff [Fri, 7 Nov 2014 09:47:44 +0000 (11:47 +0200)] 
Add testcase for the previous commit.

* tests/sparse05.at: New file.
* tests/Makefile.am: Add sparse05.at
* tests/testsuite.at: Include sparse05.at

6 years agoFix bug in sparse file listing
Pavel Raiskup [Tue, 29 Jan 2013 09:39:30 +0000 (10:39 +0100)] 
Fix bug in sparse file listing

List posix archives containing sparse files >8GB correctly and do not fail.
This fixes also bug in format of listing for sparse files >8GB - now the
real size is printed instead of the effective one (this is not strictly
posix format related).

* src/list.c: Remove redundant assignment.
* src/tar.h: Add new 'real_size' and 'real_size_set' fields in
  tar_stat_info struct.
* src/xheader.c: Correctly handle (especially sparse) file sizes directly in
  xheader_decode().

6 years agoFix a typo
Sergey Poznyakoff [Wed, 15 Oct 2014 11:20:07 +0000 (14:20 +0300)] 
Fix a typo

6 years agoFix README
Sergey Poznyakoff [Wed, 1 Oct 2014 20:19:02 +0000 (23:19 +0300)] 
Fix README

Remove the reference to PORTS

6 years agoBugfixes.
Sergey Poznyakoff [Wed, 24 Sep 2014 21:22:16 +0000 (00:22 +0300)] 
Bugfixes.

* doc/tar.1: Fix typo in font spec.
* src/tar.c (sort_mode_arg, sort_mode_flag): Protect "inode"
(SAVEDIR_SORT_INODE) with D_INO_IN_DIRENT

6 years agoBugfix: entries read from the -T file did not get proper matching_flag.
Sergey Poznyakoff [Thu, 18 Sep 2014 15:06:40 +0000 (18:06 +0300)] 
Bugfix: entries read from the -T file did not get proper matching_flag.

* src/common.h (name_add_file): Change signature.
* src/names.c (name_elt_alloc_matflags): New function.
(name_add_name): Use name_elt_alloc_matflags.
(name_add_file): Take matching flags as third argument.
(read_next_name): Remove trailing slashes.
* src/tar.c (parse_opt): Pass matching_flags to name_add_file.

* tests/T-dir00.at: New file.
* tests/T-dir01.at: New file.
* tests/Makefile.am: Add new testcases.
* tests/testsuite.at: Likewise.

6 years agoImprove documentation.
Sergey Poznyakoff [Sat, 16 Aug 2014 06:42:25 +0000 (09:42 +0300)] 
Improve documentation.

* doc/tar.1: Document --skip-old-files and --warning=existing-file
* doc/tar.texi: Document --warning=existing-file

7 years agoVersion 1.28
Sergey Poznyakoff [Sun, 27 Jul 2014 20:45:19 +0000 (23:45 +0300)] 
Version 1.28

7 years agoMinor change in docstrings.
Nathan Stratton Treadway [Sun, 27 Jul 2014 20:31:26 +0000 (23:31 +0300)] 
Minor change in docstrings.
nor ch#

7 years agoRestructure the remfiles testsuite.
Nathan Stratton Treadway [Sun, 27 Jul 2014 20:27:28 +0000 (23:27 +0300)] 
Restructure the remfiles testsuite.

7 years agoDon't build ttyemu and run tty I/O test if grantpt is not available.
Sergey Poznyakoff [Tue, 22 Jul 2014 01:24:35 +0000 (04:24 +0300)] 
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.

7 years agoFix a typo and some wordings in the documentation.
Benno Schulenberg [Thu, 5 Jun 2014 16:26:46 +0000 (18:26 +0200)] 
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".

7 years agoFix the testsuite
Nathan Stratton Treadway [Tue, 22 Jul 2014 00:34:20 +0000 (03:34 +0300)] 
Fix the testsuite

* tests/incr07.at: Don't assume case-sensitive filesystem.

7 years agotar: minor fixups related to recent checkpoint.c change
Paul Eggert [Fri, 11 Jul 2014 05:34:25 +0000 (22:34 -0700)] 
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.

7 years agoBugfixes
Sergey Poznyakoff [Fri, 11 Jul 2014 05:09:30 +0000 (08:09 +0300)] 
Bugfixes

* gnulib.modules: Add faccessat
* src/checkpoint.c: Include termios.h

7 years agotar: document xgetcwd test case better
Nathan Stratton Treadway [Sun, 29 Jun 2014 06:57:37 +0000 (23:57 -0700)] 
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.

7 years agoFix typos in ChangeLog
Sergey Poznyakoff [Tue, 24 Jun 2014 08:53:35 +0000 (11:53 +0300)] 
Fix typos in ChangeLog

* ChangeLog.CVS: Fix typos.
* ChangeLog.amend: New file.
* Makefile.am: Define changelog_amend_file.

7 years agotar: do not dereference NULL pointer with '--remove-files .'
Paul Eggert [Tue, 29 Apr 2014 21:22:07 +0000 (14:22 -0700)] 
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.

7 years agoRefuse to write archive contents to a tty.
Sergey Poznyakoff [Thu, 27 Mar 2014 05:06:02 +0000 (07:06 +0200)] 
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.

7 years agofix an eternal loop in handle_option
Vitezslav Cizek [Wed, 26 Mar 2014 21:01:22 +0000 (23:01 +0200)] 
fix an eternal loop in handle_option

* src/names.c (handle_option): increment loop counter

7 years agoFail if archive comes from a terminal.
Sergey Poznyakoff [Thu, 20 Mar 2014 14:28:25 +0000 (16:28 +0200)] 
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.

7 years agotar: port to Solaris 9
Paul Eggert [Thu, 13 Mar 2014 04:01:32 +0000 (21:01 -0700)] 
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.

7 years agoTest the --[no-]recursive options (see commit 2bd9c153_.
Sergey Poznyakoff [Tue, 25 Feb 2014 08:37:09 +0000 (10:37 +0200)] 
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.

7 years agoSupport exclusion patterns from various VCS ignore lists.
Sergey Poznyakoff [Fri, 21 Feb 2014 15:57:26 +0000 (17:57 +0200)] 
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.

7 years agoFix in testsuite
Sergey Poznyakoff [Fri, 14 Feb 2014 11:03:58 +0000 (13:03 +0200)] 
Fix in testsuite

* acls03.at: Fix improper invocation of setfacl.

7 years agotestsuite: add test for buggy default ACLs
Pavel Raiskup [Mon, 3 Feb 2014 13:00:56 +0000 (14:00 +0100)] 
testsuite: add test for buggy default ACLs

* tests/Makefile.am: Mention acls03.at.
* tests/testsuite.at: Likewise.
* tests/acls03.at: New testcase.

7 years agoacls: bugfix for default ACLs extraction
Pavel Raiskup [Mon, 3 Feb 2014 09:32:24 +0000 (10:32 +0100)] 
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

7 years agotar: imply --xattrs when --xattrs-{inc,exc}lude used
Pavel Raiskup [Thu, 23 May 2013 09:36:23 +0000 (11:36 +0200)] 
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.

7 years agoTHANKS: Add Anthony G. Basile.
Sergey Poznyakoff [Fri, 14 Feb 2014 09:02:40 +0000 (11:02 +0200)] 
THANKS: Add Anthony G. Basile.

7 years agoUse correct headers/libraries when providing xattr support
Sergey Poznyakoff [Fri, 14 Feb 2014 08:55:26 +0000 (10:55 +0200)] 
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.

7 years agoMinor change
Sergey Poznyakoff [Fri, 14 Feb 2014 08:44:19 +0000 (10:44 +0200)] 
Minor change

* src/tar.c (decode_options): Silently ignore --one-top-level
if used with a non-reading command.

7 years agoNew option --sort=ORDER
Sergey Poznyakoff [Thu, 13 Feb 2014 22:11:57 +0000 (00:11 +0200)] 
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.

7 years agoFix the testsuite
Sergey Poznyakoff [Thu, 13 Feb 2014 21:58:35 +0000 (23:58 +0200)] 
Fix the testsuite

* tests/opcomp01.at: Update expected error messages.
* tests/opcomp03.at: Likewise.

7 years agoFix --one-top-level used together with --list.
Sergey Poznyakoff [Thu, 13 Feb 2014 17:11:36 +0000 (19:11 +0200)] 
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.

7 years agoFix NEWS
Sergey Poznyakoff [Thu, 13 Feb 2014 08:29:19 +0000 (10:29 +0200)] 
Fix NEWS

* NEWS: Remove duplicate description of the --one-top-level option.

7 years agoconfigure.ac: look for host-prefixed ar
Sergey Poznyakoff [Wed, 12 Feb 2014 13:07:13 +0000 (15:07 +0200)] 
configure.ac: look for host-prefixed ar

See https://savannah.gnu.org/patch/?8183

7 years agoBugfix
Sergey Poznyakoff [Mon, 10 Feb 2014 17:51:55 +0000 (19:51 +0200)] 
Bugfix

* src/suffix.c (find_compression_suffix): Fix eventual coredump.

7 years agoFix docs.
Sergey Poznyakoff [Mon, 10 Feb 2014 16:46:24 +0000 (18:46 +0200)] 
Fix docs.

7 years agoUpdate docs.
Sergey Poznyakoff [Mon, 10 Feb 2014 16:23:31 +0000 (18:23 +0200)] 
Update docs.

* NEWS: Document --one-top-level
* THANKS: Mention Connor Behan

7 years agoUpdate copyright years.
Sergey Poznyakoff [Thu, 30 Jan 2014 11:54:15 +0000 (13:54 +0200)] 
Update copyright years.

7 years agoImprove one-top-level functionality
Sergey Poznyakoff [Tue, 28 Jan 2014 09:04:20 +0000 (11:04 +0200)] 
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.

7 years agoDetect tarbombs while extracting
Connor Behan [Mon, 27 Jan 2014 12:42:09 +0000 (14:42 +0200)] 
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.

7 years agoDon't install rmt.8 if rmt is not built.
Sergey Poznyakoff [Mon, 27 Jan 2014 12:32:46 +0000 (14:32 +0200)] 
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

7 years agoProvide tar(1) and rmt(8) manpages.
Sergey Poznyakoff [Mon, 27 Jan 2014 11:20:11 +0000 (13:20 +0200)] 
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.

7 years agoMake sure transformed file names retain trailing slash in listing.
Sergey Poznyakoff [Thu, 23 Jan 2014 16:04:36 +0000 (18:04 +0200)] 
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

7 years agocheckpoint actions: further improvements.
Sergey Poznyakoff [Wed, 22 Jan 2014 15:19:55 +0000 (17:19 +0200)] 
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

7 years agoImprove checkpoint interface.
Sergey Poznyakoff [Wed, 22 Jan 2014 05:28:02 +0000 (07:28 +0200)] 
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.`

7 years agoImplement statistics display in checkpoint actions.
Sergey Poznyakoff [Tue, 21 Jan 2014 11:05:16 +0000 (13:05 +0200)] 
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.

7 years agoRemove shar archives from distribution.
Sergey Poznyakoff [Fri, 10 Jan 2014 09:37:50 +0000 (11:37 +0200)] 
Remove shar archives from distribution.

These are going to phase out in automake 2.0

7 years agoFix the use of --no-recursion and --recursion options.
Sergey Poznyakoff [Thu, 9 Jan 2014 22:13:15 +0000 (00:13 +0200)] 
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.

7 years agoMinor bugfixes
Sergey Poznyakoff [Thu, 9 Jan 2014 15:22:08 +0000 (17:22 +0200)] 
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.

7 years agotar: work aruond IBM XL C bug
Paul Eggert [Tue, 7 Jan 2014 19:15:56 +0000 (11:15 -0800)] 
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>.

7 years agotar: update ancient configure cruft
Paul Eggert [Fri, 3 Jan 2014 19:48:40 +0000 (11:48 -0800)] 
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.

7 years agoVersion 1.27.1
Sergey Poznyakoff [Sun, 17 Nov 2013 16:37:50 +0000 (18:37 +0200)] 
Version 1.27.1

7 years agoFix star compatibility (sparse headers)
Sergey Poznyakoff [Sun, 17 Nov 2013 15:35:01 +0000 (17:35 +0200)] 
Fix star compatibility (sparse headers)

* src/sparse.c (star_get_sparse_info): Update file->dumped_size

7 years agoFix GNU long link header.
Sergey Poznyakoff [Sun, 17 Nov 2013 15:29:53 +0000 (17:29 +0200)] 
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.

7 years agoFix unquoting of input file names.
Sergey Poznyakoff [Sun, 17 Nov 2013 15:26:15 +0000 (17:26 +0200)] 
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.

7 years agobuild: fix bug where 'configure --with-posix-acls' disables ACLs
Paul Eggert [Thu, 24 Oct 2013 01:38:34 +0000 (18:38 -0700)] 
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.

7 years agoFix core dump on Solaris 10 when "." isn't readable.
Paul Eggert [Wed, 23 Oct 2013 02:16:26 +0000 (19:16 -0700)] 
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.

7 years agoVersion 1.27
Sergey Poznyakoff [Sat, 5 Oct 2013 21:02:17 +0000 (00:02 +0300)] 
Version 1.27

* NEWS: Update.
* configure.ac: Update.

7 years agoMinor fixes.
Sergey Poznyakoff [Sat, 5 Oct 2013 20:27:20 +0000 (23:27 +0300)] 
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.

7 years agoXfail the remfiles09b test.
Sergey Poznyakoff [Sat, 5 Oct 2013 06:29:55 +0000 (09:29 +0300)] 
Xfail the remfiles09b test.

* tests/remfiles09b.at: Turn into expected failure.

7 years agoTiny change
Nathan Stratton Treadway [Sat, 5 Oct 2013 06:28:52 +0000 (09:28 +0300)] 
Tiny change

* scripts/tar-snapshot-edit: Mention --show-snapshot-field-ranges option

7 years agoTiny change
Pavel Raiskup [Sat, 5 Oct 2013 06:26:52 +0000 (09:26 +0300)] 
Tiny change

* configure.ac (RSH): Define as AC_ARG_VAR.

7 years agoFix namespace contamination in testsuite.
Sergey Poznyakoff [Sat, 5 Oct 2013 06:10:35 +0000 (09:10 +0300)] 
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.

7 years agoProvide comprehensive testcases for various file removal modes.
Nathan Stratton Treadway [Sat, 5 Oct 2013 05:53:08 +0000 (08:53 +0300)] 
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.

7 years agoTiny changes.
Sergey Poznyakoff [Thu, 3 Oct 2013 19:41:04 +0000 (22:41 +0300)] 
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).

7 years agoRevamp tar_getcwd/normalize_filename stuff.
Sergey Poznyakoff [Tue, 1 Oct 2013 18:48:30 +0000 (21:48 +0300)] 
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.

7 years agoBugfix
Sergey Poznyakoff [Thu, 26 Sep 2013 21:59:18 +0000 (00:59 +0300)] 
Bugfix

* tests/remfiles08.at: Restore missing find

7 years agoUse relative addressing in deferred unlinks.
Sergey Poznyakoff [Thu, 26 Sep 2013 12:41:47 +0000 (15:41 +0300)] 
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.

7 years agoImprove tar-snapshot-edit
Nathan Stratton Treadway [Wed, 25 Sep 2013 15:02:05 +0000 (18:02 +0300)] 
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)

7 years agoImprove tar_getcwd
Sergey Poznyakoff [Wed, 25 Sep 2013 12:58:43 +0000 (15:58 +0300)] 
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.

7 years agoFix normalize_filename.
Sergey Poznyakoff [Tue, 24 Sep 2013 11:01:13 +0000 (14:01 +0300)] 
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.

7 years agoChanges for compatibility with Slackware installation scripts.
Sergey Poznyakoff [Mon, 23 Sep 2013 16:35:29 +0000 (19:35 +0300)] 
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.

7 years agoFix error message (complements 0ea6e686)
Sergey Poznyakoff [Sat, 21 Sep 2013 12:07:01 +0000 (15:07 +0300)] 
Fix error message (complements 0ea6e686)

* src/tar.c (set_subcommand_option): Mention --delete in the error message.

7 years agoImprove the incr07 test
Sergey Poznyakoff [Sun, 15 Sep 2013 17:38:57 +0000 (20:38 +0300)] 
Improve the incr07 test

7 years agoImplement the --show-snapshot-field-ranges option
Nathan Stratton Treadway [Sun, 15 Sep 2013 13:02:30 +0000 (16:02 +0300)] 
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.

7 years agoTake into account chdir_fd when extracting from incremental dumps.
Sergey Poznyakoff [Sun, 15 Sep 2013 07:13:45 +0000 (10:13 +0300)] 
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.

7 years agoMinor fix
Sergey Poznyakoff [Sun, 15 Sep 2013 05:56:31 +0000 (08:56 +0300)] 
Minor fix

* src/tar.c (main): Mention --delete in the error message.
* THANKS: Update

7 years ago* src/names.c (file_list_name): Properly prototype.
Paul Eggert [Fri, 13 Sep 2013 18:09:29 +0000 (11:09 -0700)] 
* src/names.c (file_list_name): Properly prototype.

7 years agotar: don't warn about zero timestamps
Paul Eggert [Fri, 13 Sep 2013 18:08:34 +0000 (11:08 -0700)] 
tar: don't warn about zero timestamps

* src/extract.c (check_time): Suppress warniing when t.tv_sec == 0.
Problem reported by Denis Excoffier.

7 years agoMinor fix in the testsuite.
Pavel Raiskup [Mon, 19 Aug 2013 11:26:18 +0000 (14:26 +0300)] 
Minor fix in the testsuite.

* tests/T-cd.at: sort the 'tar cf' output.

7 years agoImprove error diagnostics
Sergey Poznyakoff [Sat, 17 Aug 2013 10:48:24 +0000 (13:48 +0300)] 
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.

This page took 0.064398 seconds and 4 git commands to generate.