2021-02-13  Sergey Poznyakoff  <gray@gnu.org>

	Version 1.34

2021-02-08  Pavel Raiskup  <praiskup@redhat.com>

	xattrs: fix capabilities root test

	Related discussion in the Fedora pull-request:
	https://src.fedoraproject.org/rpms/tar/pull-request/8

	* tests/capabs_raw01.at: Newer systems (currently e.g. Fedora 34)
	print getcap output in format CAP=VAL, not CAP+VAL.

2021-02-08  Sergey Poznyakoff  <gray@gnu.org>

	Gracefully handle duplicate symlinks when extracting

	If the archive being extracted contains multiple copies
	of the same symlink, extract only the first of them and
	skip the rest.	The use case is described in

	https://lists.gnu.org/archive/html/bug-tar/2021-01/msg00026.html

	The bug was introduced by 2d3396c3ea.

	* src/extract.c (create_placeholder_file): If placeholder already
	exists and is registered in the delayed_link list, return
	immediately.

2021-02-04  Sergey Poznyakoff  <gray@gnu.org>

	Fix savannah bug #60002

	Bug was introduced by commit 34d15af1.

	* src/extract.c (prepare_to_extract): When extracting over pipe,
	process only regular files.
	* tests/extrac24.at: New test case.
	* tests/Makefile.am: Add new test case.
	* tests/testsuite.at: Likewise.

2021-01-17  Sergey Poznyakoff  <gray@gnu.org>

	Fix memory leak in read_header

	Bug reported in https://savannah.gnu.org/bugs/?59897

	* src/list.c (read_header): Don't return directly from the loop.
	Instead set the status and break.  Return the status.  Free
	next_long_name and next_long_link before returning.

2021-01-17  Sergey Poznyakoff  <gray@gnu.org>

	Fix improper argument reference.

	(bug introduced by 1ff0b63f)

	* src/tar.c (parse_default_options): Pass args as is to the
	argp_parse.

2021-01-16  Sergey Poznyakoff  <gray@gnu.org>

	Fix regression itroduced by 66162927.

	* src/misc.c (chdir_arg): Initialize the abspath field to NULL.
	(tar_getcdpath): Actually initialize the abspath field here.

2021-01-14  Sergey Poznyakoff  <gray@gnu.org>

	Fixes in the delete_archive_members function

	* src/delete.c (delete_archive_members): Clean-up the code. Avoid
	entering the loop from the middle.  Free the memory allocated for
	current_stat_info.

2021-01-08  Sergey Poznyakoff  <gray@gnu.org>

	Use stdopen from gnulib

	* gnulib.modules: Request stdopen
	* lib/Makefile.am: Remove stdopen.c and stdopen.h
	* lib/stdopen.c: Remove.
	* lib/stdopen.h: Remove.
	* src/tar.c: stdopen returns 0 on success.

2021-01-08  Sergey Poznyakoff  <gray@gnu.org>

	Actually prefer /dev/full over /dev/null as a replacement
	for stdin

	* lib/stdopen.c (stdopen): Fix improper condition.
	Avoid leaking extra file descriptor.
	* src/tar.c (main): Set name of the stdout for diagnostics.
	Bail out if stdopen fails.

2021-01-07  Sergey Poznyakoff  <gray@gnu.org>

	Version 1.33

	* NEWS: Update.
	* configure.ac: Raise version number. Require automake 1.15 and
	autoconf 2.64.
	* gnulib: pull v0.1-4333-g30820c2
	* src/names.c: Use hash_remove instead of the deprecated
	hash_delete.

2021-01-06  Sergey Poznyakoff  <gray@gnu.org>

	Update copyright years

2020-07-13  Sergey Poznyakoff  <gray@gnu.org>

	Fix typo in the manpage

	* doc/tar.1: Fix description of the --newer option

2020-07-10  Pavel Raiskup  <praiskup@redhat.com>

	Bugfix --sparse --diff mode

	Originally reported in:
	https://bugzilla.redhat.com/show_bug.cgi?id=1853469

	* src/sparse.c (check_data_region): Only compare the part
	of buffer
	really fed by safe_read(), not whole rdsize.

2020-06-24  Sergey Poznyakoff  <gray@gnu.org>

	Accept only position-sensitive (file-selection) options in file
	list files.

	Using such options as -f, -z, etc. is senseless in the file
	list file
	and bypasses the option consistency checks in decode_options.
	Therefore,
	only options related to file selection (a.k.a position-sensitive
	options)
	are allowed in files.

	* doc/tar.texi: Document changes.
	* src/common.h (tar_args): Move from tar.c
	(TAR_ARGS_INITIALIZER): New macro.
	* src/names.c: Declare option group identifiers as an enum.
	(names_parse_opt): Special handling for ARGP_KEY_ERROR.
	(names_argp): Remove static qualifier.
	(names_argp_children): Remove.
	* src/tar.c: Declare option group identifiers as an enum.
	(parse_opt): Special handling for ARGP_KEY_INIT.
	(argp_children): New static variable.
	(args): Remove static variable.
	(more_options): Allow only options from names_argp.
	(parse_default_options): Take a pointer to struct tar_args
	as argument.
	Replace the loc member during the call to argp_parse and
	restore it
	afterwards.
	(decode_options): Use automatic variable for args.

2020-06-22  Sergey Poznyakoff  <gray@gnu.org>

	Fix the logic of prepare_to_extract.

	* src/extract.c (prepare_to_extract): Return true to proceed with
	the extraction, and false to skip the current member.
	If extracting
	over a pipe, skip unlinking logic.
	(extract_archive): Update accordingly.

2020-06-15  Sergey Poznyakoff  <gray@gnu.org>

	Make sure link counting works for file names supplied with -T

	* src/common.h (name_count): Remove extern.
	(files_count): New enum.
	(filename_args): New extern.
	* src/names.c (name_count): Remove.
	(files_count): New variable.
	(name_add_name,name_add_file): Update filename_args.
	* src/create.c (create_archive): Set trivial_link_count
	depending on
	the filename_args.

2020-06-10  Alfred M. Szmidt  <ams@gnu.org>

	Remove freemanuals.texi

	* doc/Makefile.am (tar_TEXINFOS): Remove freemanuals.texi.
	* doc/freemanuals.texi: Delete file.
	* doc/tar.texi (Free Software Needs Free Documentation): Remove
	appendix.

2020-06-03  Sergey Poznyakoff  <gray@gnu.org>

	Fix typo in docs

2020-06-03  Sergey Poznyakoff  <gray@gnu.org>

	Bugfix

	* src/sparse.c (sparse_diff_file): Fix return value.

2020-05-19  Paul Eggert  <eggert@cs.ucla.edu>

	tar: avoid read overrun

	Problem reported by Timotej Kapus in:
	https://lists.gnu.org/r/bug-tar/2020-05/msg00001.html
	* src/transform.c (parse_transform_expr):
	Diagnose ‘--transform='s'’ instead of continuing past '\0'.

2020-02-15  Sergey Poznyakoff  <gray@gnu.org>

	Fix handling of linked rename chains in incremental backups

	* src/incremen.c: Change the meaning of the DIRF_RENAMED flag.
	Now it
	marks a directory which is the last one in a chain of renames.
	Regular renamed directories are recognized by their orig member
	being
	non-NULL.  Directories marked with DIRF_RENAMED start encoding
	of renames.
	(procdir): Clear DIRF_RENAMED flag on directories which are
	origins for
	renames.
	(makedumpdir): Use the orig member to check if the directory is a
	result of a rename.
	(store_rename): Move the check for DIR_IS_RENAMED to the
	caller. Don't
	clear the DIRF_RENAMED, it is not needed any more.

	* tests/rename06.at: New test.
	* tests/Makefile.am: Add rename06.at
	* tests/testsuite.at: Likewise.

2020-02-08  Sergey Poznyakoff  <gray@gnu.org>

	Update copyright years

2020-02-08  Sergey Poznyakoff  <gray@gnu.org>

	Fix the --no-overwrite-dir option

	Given this option, tar failed to preserve permissions of empty
	directories
	and to create files under directories owned by the current user
	that did
	not have the S_IWUSR bit set.

	* src/extract.c (fd_chmod): Rename to fd_i_chmod.
	(fd_chmod): New function.
	(safe_dir_mode): New function.
	(extract_dir): Special handling for existing directories in
	--no-overwrite-dir mode.
	* tests/extrac23.at: New file.
	* tests/Makefile.am: Add new test case.
	* tests/testsuite.at: Likewise.

2019-12-03  Sergey Poznyakoff  <gray@gnu.org>

	Wildcards in exclude-vcs-ignore mode should not match slash

	* src/exclist.c (info_attach_exclist): Use the FNM_FILE_NAME flag.

2019-11-27  Sergey Poznyakoff  <gray@gnu.org>

	Version 1.32.90

2019-11-25  Sergey Poznyakoff  <gray@gnu.org>

	Testsuite fixes

	* tests/sparse06.at: Skip the test if genfile is unable to create
	sparse files.
	* tests/sptrcreat.at: Likewise.
	* tests/sptrdiff00.at: Likewise.
	* tests/sptrdiff01.at: Likewise.

2019-11-14  Sergey Poznyakoff  <gray@gnu.org>

	Another testsuite fix.

	* tests/extrac11.at: Skip test if ulimit fails.

2019-11-13  Sergey Poznyakoff  <gray@gnu.org>

	Testsuite fix.

	* tests/remfiles10.at: Don't expect EINVAL when trying to remove
	CWD.

2019-08-25  Sergey Poznyakoff  <gray@gnu.org>

	Consistently use x2realloc for buffer reallocation

	* src/create.c (create_archive): Use x2realloc
	* src/names.c (copy_name)
	(add_hierarchy_to_namelist): Use x2realloc

2019-08-18  Sergey Poznyakoff  <gray@gnu.org>

	Fix extraction of symbolic links hardlinked to another symbolic
	links

	* src/extract.c (create_placeholder_file): Take additional
	argument:
	the delayed_link entry after which to the newly created one.
	(extract_link): Create a placeholder file if the target link name
	exists in the delayed_link list.

2019-04-11  Sergey Poznyakoff  <gray@gnu.org>

	Fix --delay-directory-restore on archives with reversed member
	ordering.

	* src/extract.c (find_direct_ancestor): Remove useless test.
	(delay_set_stat): If the file name being added is already in
	the list, update stored data instead of creating a new entry.
	This works for archives with reversed order of members.
	* tests/extrac22.at: New testcase.
	* tests/Makefile.am: Add new testcase.
	* tests/testsuite.at: Include new testcase.

2019-03-28  Sergey Poznyakoff  <gray@gnu.org>

	Minor change * scripts/backup.in: Fix typo

	Typesetting fixes in the manpage

2019-03-28  Zachary Vance  <za3k@za3k.com>

	POSIX extended format headers do not include PID by default

	The intent is to make binary-equivalent PAX archives easy
	to create.  If
	POSIXLY_CORRECT is set, the POSIX standard default is used,
	which embeds
	the pid.

	* src/common.h (posixly_correct): New global.
	* src/tar.c (decode_options): Detect the POSIXLY_CORRECT
	environment
	variable.
	* src/buffer.c (add_chunk_header): Change filenames of multipart
	files to
	omit the pid.
	* src/xheader.c (HEADER_TEMPLATE): New macro.
	(xheader_xhdr_name, xheader_ghdr_name): Use HEADER_TEMPLATE
	to select
	the template for the POSIX extended header name.
	* doc/tar.texi: Document the change.

2019-03-03  Sergey Poznyakoff  <gray@gnu.org>

	Check return value from xgetcwd

	* src/misc.c (chdir_arg,tar_getcdpath): Check for non-NULL
	return from xgetcwd. The function returns NULL for any
	error originating from getcwd.

2019-02-23  Sergey Poznyakoff  <gray@gnu.org>

	Version 1.32

2019-02-04  Sergey Poznyakoff  <gray@gnu.org>

	Minor fixes in docs.

	* doc/tar.1: Remove description of the --preserve option
	Document verbosity levels.
	* doc/tar.texi: Fix description of the -o option.

2019-01-15  Daniel Le  <greenrecyclebin@gmail.com>

	Fix typos in the documentation

	Short option "t" was mistranslated to "--test" instead of "--list"
	in commit
	67cad0792b4e6cf22c6cb1b167b149cd176d49f9.

2019-01-15  Sergey Poznyakoff  <gray@gnu.org>

	Fix build on AIX

	* src/unlink.c (flush_deferred_unlinks): Avoid possible duplicate
	case
	(if ENOTEMPTY==EEXIST)

2019-01-15  Sergey Poznyakoff  <gray@gnu.org>

	Version 1.31.90

2019-01-14  Sergey Poznyakoff  <gray@gnu.org>

	Ensure gnu format when running checkpoint tests

2019-01-14  Sergey Poznyakoff  <gray@gnu.org>

	Fix compression tests

	Existing compression tests used tar with compiled-in
	defaults. However,
	some of the defaults are sure to create archives that are not
	byte-to-byte
	reproducible (e.g. DEFAULT_ARCHIVE_FORMAT=POSIX, because the
	name field
	in posix extended headers uses PID of the creating process
	by default).
	Moreover, some compressors (e.g. gzip) store current timestamp in
	the file header when compressing from stdin, so that using cmp
	on the
	two created archives as the tests did is error-prone. Another
	problem
	is that the tests implicitly assumed that tar uses archive
	suffix to
	recognize its format when extracting, which isn't the
	case. Finally,
	there's hardly any reason in using sed to create m4 sources, when
	everything can be achieved by m4 itself.

	* tests/Makefile.am: Remove generation of compress-*.at files.
	* tests/compress.at.in: Remove.
	* tests/compress.m4: New file.
	* tests/testsuite.at: Include compress.m4, use TAR_CHECK_COMPRESS
	to
	check compression options.

2019-01-14  Sergey Poznyakoff  <gray@gnu.org>

	Fix possible NULL dereference (savannah bug #55369)

	* src/sparse.c (pax_decode_header): Check return from
	find_next_block.

2019-01-14  Sergey Poznyakoff  <gray@gnu.org>

	Fix compilation without iconv.

2019-01-14  Sergey Poznyakoff  <gray@gnu.org>

	Fix iconv usage.

	Patch by Christian Weisgerber.

	* src/utf8.c (utf8_convert): non-zero return from iconv means
	failure.

2019-01-14  Pavel Raiskup  <praiskup@redhat.com>

	tests: fix numeric.at for BSD

	While creating file, BSD kernels inherit the group ownership from
	parent directory.
	http://lists.gnu.org/archive/html/bug-tar/2016-06/msg00000.html

	* tests/numeric.at: Attempt to 'chown' the newly created directory
	to proper group (at least on affected machines that command is
	expected to succeed).

2019-01-14  Sergey Poznyakoff  <gray@gnu.org>

	Fix typo in manpage.

2019-01-14  Sergey Poznyakoff  <gray@gnu.org>

	Fix expected output in dirrem tests.

	In both tests, the "file changed as we read it" warning might be
	produced for dir/sub, depending on the ctime resolution and
	timing.
	The problem was fixed by 64b43fdf70d82c39eb2ca900cd4f8e49,
	but regressed
	after e7cd377f7801d42aa8e07addff93d2150666c237, which removed
	1 second
	delays between each pair of checkpoints. Since the presense
	or absense
	of this warning is irrelevant for the test, it is now suppressed.

	* tests/dirrem01.at: Suppress the file-changed warning.
	* tests/dirrem02.at: Likewise.

2019-01-12  Sergey Poznyakoff  <gray@gnu.org.ua>

	Fix the use of --checkpoint without explicit --checkpoint-action

	* src/checkpoint.c (checkpoint_finish_compile): Set default
	action,
	if necessary.
	* tests/checkpoint/defaults.at: New testcase.
	* tests/checkpoint/dot-compat.at: New testcase.
	* tests/checkpoint/dot-int.at: New testcase.
	* tests/checkpoint/dot.at: New testcase.
	* tests/checkpoint/interval.at: New testcase.
	* tests/Makefile.am: Add new testcases.
	* tests/testsuite.at Include new testcases.

2019-01-10  Sergey Poznyakoff  <gray@gnu.org.ua>

	Remove erroneous abort() call

	The call was introduced by commit ccef8581. It caused tar to abort
	on perfectly normal operations, like untarring archives containing
	./ with the -U option,

	See
	http://lists.gnu.org/archive/html/bug-tar/2019-01/msg00019.html
	for details.

	* src/extract.c (maybe_recoverable): Remove misplaced call
	to abort().

2019-01-02  Sergey Poznyakoff  <gray@gnu.org>

	Version 1.31

2018-12-28  Sergey Poznyakoff  <gray@gnu.org>

	Fix the difflink test

	Hardlinking a symlink produces hardlink on BSD and symlink
	on GNU/Linux. Avoid the ambiguity.

	* tests/difflink.at: Create hard link from a regular file.

2018-12-28  Sergey Poznyakoff  <gray@gnu.org>

	Work over a bug in gnulib error()

	The error() function from glibc correctly prefixes each message it
	prints with program_name as set by set_program_name. However, its
	replacement from gnulib, which is linked in on systems where this
	function is not available, prints the name returned by
	getprogname()
	instead. Due to this messages output by tar subprocess (which
	sets its
	program name to 'tar (child)') become indiscernible from those
	printed
	by the main process. In particular, this breaks the remfiles01.at
	and
	remfiles02.at test cases.

	* configure.ac: Define ENABLE_ERROR_PRINT_PROGNAME if using
	gnulib error().
	* src/tar.c [ENABLE_ERROR_PRINT_PROGNAME] (tar_print_progname):
	New function.
	(main) [ENABLE_ERROR_PRINT_PROGNAME]: Set error_print_progname.

2018-12-28  Sergey Poznyakoff  <gray@gnu.org>

	Implement the "wait" checkpoint action.

	This action instructs tar to pause until given signal is
	delivered.
	The newer genfile tool uses this action for communication between
	genfile and tar in exec mode. This eliminates race conitions and
	speeds up the tests based on exec mode.

	* doc/tar.texi: Document changes.
	* paxutils: Upgrade.
	* src/checkpoint.c: Implement the wait action.
	* src/common.h (decode_signal): New proto.
	* src/tar.c (decode_signal): New function.
	(set_stat_signal): Rewrite.
	* tests/dirrem01.at: Adjust genfile and tar command line arguments
	to use the new feature.
	* tests/dirrem02.at: Likewise.
	* tests/filerem01.at: Likewise.
	* tests/filerem02.at: Likewise.
	* tests/grow.at: Likewise.
	* tests/sptrcreat.at: Likewise.
	* tests/sptrdiff00.at: Likewise.
	* tests/sptrdiff01.at: Likewise.
	* tests/truncate.at: Likewise.

2018-12-27  Sergey Poznyakoff  <gray@gnu.org>

	Fix CVE-2018-20482

	* NEWS: Update.
	* src/sparse.c (sparse_dump_region): Handle short read condition.
	(sparse_extract_region,check_data_region): Fix dumped_size
	calculation.
	Handle short read condition.
	(pax_decode_header): Fix dumped_size calculation.
	* tests/Makefile.am: Add new testcases.
	* tests/testsuite.at: Likewise.

	* tests/sptrcreat.at: New file.
	* tests/sptrdiff00.at: New file.
	* tests/sptrdiff01.at: New file.

2018-12-21  Sergey Poznyakoff  <gray@gnu.org>

	Disallow modifications to the global pax extended header in
	update mode.

	Updating global headers in update mode is not possible, because:

	1) If the original archive was not in PAX format, writing the
	global header would overwrite first member header (and eventually
	data blocks) in the archive.
	2) Otherwise, using the --pax-option can make the updated header
	occupy more blocks than the original one, which would lead to the
	same effect as in 1.

	This also fixes
	  http://lists.gnu.org/archive/html/bug-tar/2018-12/msg00007.html

	* src/xheader.c (xheader_forbid_global): New function.
	* src/common.h (xheader_forbid_global): New prototype.
	* src/update.c (update_archive): Use xheader_forbid_global,
	instead
	of trying to write global extended header record.

2018-12-21  Sergey Poznyakoff  <gray@gnu.org>

	Bugfix

	Bug reported in
	  http://lists.gnu.org/archive/html/bug-tar/2018-12/msg00014.html

	* src/names.c (collect_and_sort_names): Fix iteration over
	namelist.

2018-12-21  Sergey Poznyakoff  <gray@gnu.org>

	Fix semantics of -K used together with explicit member names.

	This also fixes the bug reported in
	  http://lists.gnu.org/archive/html/bug-tar/2018-12/msg00012.html

	* src/common.h (starting_file_option): Describe the variable.
	* src/names.c (add_starting_file): New function.
	(name_match): Ignore everything before the member indicated by the
	--starting-file option
	* src/tar.c: Use add_starting_file to handle the -K option.

2018-12-21  Sergey Poznyakoff  <gray@gnu.org>

	Fix error handling when reading incremental snapshots

	Bug reported in
	  http://lists.gnu.org/archive/html/bug-tar/2018-12/msg00008.html

	* incremen.c (read_incr_db_01): Don't try to continue after
	errors.

2018-12-21  Sergey Poznyakoff  <gray@gnu.org>

	Reject pax options starting with equals sign

	Bug reported in
	  http://lists.gnu.org/archive/html/bug-tar/2018-12/msg00010.html

	* xheader.c (xheader_set_keyword_equal): Bail out if the keyword
	starts
	with =

2018-12-21  Sergey Poznyakoff  <gray@gnu.org>

	Fix buffer overflow

	Bug reported in
	  http://lists.gnu.org/archive/html/bug-tar/2018-12/msg00011.html

	* src/xheader.c (xheader_format_name): fix length calculation

2018-12-21  Sergey Poznyakoff  <gray@gnu.org>

	Fix improper memory access

	Bug reported in
	  http://lists.gnu.org/archive/html/bug-tar/2018-12/msg00009.html

	* src/transform.c (parse_transform_expr): Check if re is not empty
	before accessing its last byte.

2018-11-24  Sergey Poznyakoff  <gray@gnu.org>

	Fix parsing of ACLs

	Text returned by acl_to_text can contain comments (introduced
	by #).
	Strip comments and horizontal tabs prior to storing ACLs in PAX
	headers.

	* src/xattrs.c (xattrs_acls_cleanup): New function.
	(xattrs__acls_get_a,xattrs__acls_get_d): Use xattrs_acls_cleanup.

2018-11-24  Sergey Poznyakoff  <gray@gnu.org>

	Don't try to read past the end of header string fields

	* src/common.h (assign_string_n): New proto.
	(ASSIGN_STRING_N): New macro.
	* src/misc.c (assign_string_n): New function.
	* gnulib.modules: Add strnlen.
	* src/buffer.c: Use assign_string_n where appropriate.
	* src/list.c: Likewise.

2018-11-12  Sergey Poznyakoff  <gray@gnu.org>

	Fix verbose ACL listing

	* src/xattrs.c (acls_one_line): Advance pos.
	(xattrs_print): Insert a comma between ACL and default ACL if both
	are non-empty.

2018-10-29  Paul Eggert  <eggert@cs.ucla.edu>

	tar: fix numbered backup bug

	* src/misc.c (maybe_backup_file): Pass chdir_fd, not AT_FDCWD,
	to find_backup_file_name.  This fixes a bug whereby the wrong
	backup file name was chosen for numbered backups.

2018-10-29  Paul Eggert  <eggert@cs.ucla.edu>

	* src/tar.c (expand_pax_option): Pacify recent GCC.

2018-10-29  Paul Eggert  <eggert@cs.ucla.edu>

	build: update gnulib submodule to latest

	* src/misc.c (maybe_backup_file): Adjust to Gnulib change.

2018-08-02  Sergey Poznyakoff  <gray@gnu.org>

	Minor fixes in wordsplit.c

2018-08-02  Paul Eggert  <eggert@cs.ucla.edu>

	build: update gnulib submodule to latest

2018-07-31  Sergey Poznyakoff  <gray@gnu.org>

	Silence gcc warnings in wordsplit

2018-07-31  Sergey Poznyakoff  <gray@gnu.org>

	Fix double-free introduced by 577dc345

	* src/utf8.c (utf8_convert): Don't store freed value in *output

2018-07-31  Pavel Raiskup  <praiskup@redhat.com>

	Report race on systems without O_DIRECTORY

	* src/names.c (collect_and_sort_names): Report ENOTDIR after
	successful fstat() but !S_ISDIR.

2018-07-31  Pavel Raiskup  <praiskup@redhat.com>

	Avoid some resource leaks

	* src/incremen.c (store_rename): Free temp_name, leaked before for
	each renamed directory with --listed-incremental.
	* src/transform.c (add_literal_segment): Tighten arguments by
	const.
	(parse_transform_expr): Free 'str', leaked storage for each
	--transform option before.
	* src/utf8.c (utf8_convert): Deallocate buffer for failed iconv()
	call so callers don't have to.

2018-07-31  Sergey Poznyakoff  <gray@gnu.org>

	Sync wordsplit and paxutils with the most recent versions

2018-06-14  Paul Eggert  <eggert@cs.ucla.edu>

	* doc/tar.1: Fix font typo noted by esr.

2018-05-16  Paul Eggert  <eggert@cs.ucla.edu>

	* doc/tar.1: Don't refer to nonexistent tar(5).

2018-04-13  Jim Meyering  <meyering@fb.com>

	--one-top-level: avoid a heap-buffer-overflow

	* NEWS: Mention this.
	* src/suffix.c (strip_compression_suffix): Fix string comparison
	guard.
	Without this change, some ASAN-enabled test runs would fail
	with the
	following.  Also, strip an additional .tar suffix only if
	the just-
	stripped suffix did not match /^\.t/".

	==30815==ERROR: AddressSanitizer: heap-buffer-overflow on
	address 0x6020000002ed at pc 0x00000049d1f4 bp 0x7ffeb5906d50
	sp 0x7ffeb5906500
	READ of size 1 at 0x6020000002ed thread T0
	SCARINESS: 12 (1-byte-read-heap-buffer-overflow)
	    #0 0x49d1f3 in __interceptor_strncmp
	    /j/gcc/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:407
	    #1 0x5670f3 in strip_compression_suffix
	    /j/tar/src/suffix.c:107
	    #2 0x575788 in decode_options /j/tar/src/tar.c:2545
	    #3 0x5760c0 in main /j/tar/src/tar.c:2708
	    #4 0x7f105090df29 in __libc_start_main ../csu/libc-start.c:308
	    #5 0x408629 in _start (/j/tar/src/tar+0x408629)

	0x6020000002ed is located 3 bytes to the left of 6-byte region
	[0x6020000002f0,0x6020000002f6)
	allocated by thread T0 here:
	    #0 0x4d0710 in __interceptor_malloc
	    /j/gcc/libsanitizer/asan/asan_malloc_linux.cc:86
	    #1 0x4908ad in __interceptor_strndup
	    /j/gcc/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:326
	    #2 0x5cbcbd in xstrndup /j/tar/gnu/xstrndup.c:32
	    #3 0x5a325b in base_name /j/tar/gnu/basename.c:57
	    #4 0x575772 in decode_options /j/tar/src/tar.c:2544
	    #5 0x5760c0 in main /j/tar/src/tar.c:2708
	    #6 0x7f105090df29 in __libc_start_main ../csu/libc-start.c:308

2018-04-07  Andrew Hounsell  <andrewhounsell@gmail.com>

	Tiny fix

	* doc/snapshot.texi: Fix a typo
	* scripts/tar-snapshot-edit: Fix a typo

2018-04-07  Jim Meyering  <jim@meyering.net>

	tests: avoid test failure with non-ancient autoconf

	Running "make check" would fail with this:
	  T-nonl.at:30: error: m4_divert_push: cannot change diversion
	  to `GROW' inside m4_expand
	* tests/T-nonl.at: Use printf in place of AS_ECHO_N.
	These days, printf should work for everyone.

2018-04-07  Jim Meyering  <meyering@fb.com>

	maint: avoid -Wstringop-truncation warnings from upcoming GCC8

	* src/create.c (start_private_header, start_header): Convert
	trivial uses of strncpy to memcpy, to avoid warnings like this:
	In function 'strncpy',
	    inlined from 'start_private_header' at create.c:522:3:
	/usr/include/bits/string_fortified.h:106:10: warning: \
	  '__builtin_strncpy' output truncated before terminating nul \
	  copying 2 bytes from a string of the same length \
	  [-Wstringop-truncation]

2018-04-07  Jim Meyering  <meyering@fb.com>

	maint: avoid -Wstringop-truncation warnings upcoming GCC8

	* src/buffer.c (gnu_add_multi_volume_header): Convert a use of
	strncpy to memcpy, to avoid this warning:
	In function 'strncpy',
	    inlined from 'gnu_add_multi_volume_header' at buffer.c:1782:3,
	    ...
	/usr/include/bits/string_fortified.h:106:10: error:
	'__builtin_strncpy'\
	   specified bound 100 equals destination size \
	   [-Werror=stringop-truncation]

2018-04-07  Jim Meyering  <meyering@fb.com>

	maint: avoid warnings from upcoming GCC8

	* src/transform.c (_single_transform_name_to_obstack): Mark with
	FALLTHROUGH statement rather than /* FALL THROUGH */ comment.
	Only the former works with gcc-8.
	* src/extract.c (maybe_recoverable): Call abort to tell gcc-8 that
	this code is unreachable.

2018-04-07  Sergey Poznyakoff  <gray@gnu.org>

	Rewrite struct tm formatting

	* src/list.c (tartime): Use strftime instead of manually
	formatting
	fields of the struct tm. This should also suppress some gcc
	warnings.

2018-04-07  Jim Meyering  <jim@meyering.net>

	tests: add coverage for new --zstd and all other compression tools

	* tests/compress.at.in: New file: template from which each
	per-compression-tool test is derived.
	* tests/Makefile.am (TESTSUITE_AT): Add it.
	(EXTRA_DIST): Add compress.at.in.
	(compress-*.at): New rules to generate a file/tests for each
	compression tool.
	* tests/testsuite.at (Compression): Add each of these generated
	files in a new section.
	* tests/.gitignore: Ignore the new generated files.

2018-03-18  Aaron Schrab  <aaron@schrab.com>

	Fix typo

2018-03-18  Sergey Poznyakoff  <gray@gnu.org>

	Version 1.30.90

	* NEWS: Update.
	* configure.ac: Update.
	* THANKS: Add Adam Borowski.

2018-03-18  Adam Borowski  <kilobyte@angband.pl>

	Add support for zstd compression

	* configure.ac (zstd): Register compression program.
	* doc/tar.1: Mention --zstd.
	* doc/tar.texi: Document zstd support.
	* src/buffer.c: Register zstd compression.
	* src/suffix.c: Add suffixes zst and tzst.
	* src/tar.c: New compression option --zstd.

2018-03-18  Pavel Raiskup  <praiskup@redhat.com>

	tests: fix race in dirrem01 and dirrem02

	Previously the '--checkpoint-action=echo' was triggered after
	'--checkpoint-action=sleep=1' - so the order of events *usually*
	was (for --format='gnu'):

	  ...
	  1. checkpoint handler before write of 'dir/sub' member
	  2. one-second delay
	  3. stderr write: 'tar: Write checkpoint 3'
	  4. write the member 'dir/sub' into the archive
	  5. check that the member's ctime has not been changed
	  6. genfile's detecting 'Write checkpoint', doing unlink
	  ...

	But sometimes, the genfile was fast enough to win the race and
	unlinked the directory before the member was written into the
	archive (IOW, the order was 1-2-3-6-4-5).  This led to the
	occasional warning 'tar: dir/sub: file changed as we read it'.

	Swap the order of 'sleep=1' and 'echo' actions so the genfile
	utility has (hopefully) enough time to do the unlink before
	writing the file into the archive (enforce 1-2-3-6-4-5 order).

	* tests/dirrem01.at: Swap 'sleep=1' and 'echo' actions.
	* tests/dirrem02.at: Likewise.

2018-03-13  Sergey Poznyakoff  <gray@gnu.org>

	Fix typos in the docs

2018-03-13  Sergey Poznyakoff  <gray@gnu.org.ua>

	Provide a way to skip tests that create very large files

	Define environment variable TARTEST_SKIP_LARGE_FILES=1 in order
	to skip tests that require lots of disk space.

	* tests/testsuite.at (AT_SKIP_LARGE_FILES): New macro.
	* tests/sparse03.at: Mark test with AT_SKIP_LARGE_FILES.
	* tests/sparse05.at: Likewise.
	* tests/star/pax-big-10g.at: Likewise.
	* tests/star/ustar-big-2g.at: Likewise.
	* tests/star/ustar-big-8g.at: Likewise.

2018-03-13  Sergey Poznyakoff  <gray@gnu.org.ua>

	Testsuite bugfix

	* tests/difflink.at: Define order of files within tested archive.

2018-03-13  Sergey Poznyakoff  <gray@gnu.org>

	testsuite: account for absolute file names starting with double
	slash

	* tests/incr08.at: Absolute file names can start with //
	* tests/xform03.at: Likewise.

2017-12-17  Sergey Poznyakoff  <gray@gnu.org>

	Version 1.30

	* configure.ac: Set version 1.30
	* NEWS: Update.

2017-11-20  Paul Eggert  <eggert@cs.ucla.edu>

	Fix "concatenating" typo.

	Problem reported by Rodrigo Queiro in:
	https://lists.gnu.org/r/bug-tar/2017-11/msg00021.html
	* doc/intern.texi (Extensions): Fix typo.

2017-11-18  Paul Eggert  <eggert@cs.ucla.edu>

	Port to gcc -Wimplicit-fallthrough=5

	* src/common.h (FALLTHROUGH): New macro, for use with gcc
	-Wimplicit-fallthrough=5, which is now the default when used with
	Gnulib after commit 2017-05-16T16:23:52!eggert@cs.ucla.edu
