-GNU tar NEWS - User visible changes. 2015-11-02
+GNU tar NEWS - User visible changes. 2022-07-24
Please send GNU tar bug reports to <bug-tar@gnu.org>
+\f
+version 1.34.90 (git)
+
+* Fail when building GNU tar, if the platform supports 64-bit time_t
+ but the build uses only 32-bit time_t.
+
+* Leave the devmajor and devminor fields empty (rather than zero) for
+ non-special files, as this is more compatible with traditional tar.
+
+* New build scripts ./autopull.sh and ./autogen.sh, to separate
+ fetching from autogenerating source files. See README-hacking.
+
+* Bug fixes
+
+** Warn "file changed as we read it" less often.
+ Formerly, tar warned if the file's size or ctime changed.
+ However, this generated a false positive if tar read a file
+ while another process hard-linked to it, changing its ctime.
+ Now, tar warns if the file's size, mtime, user ID, group ID,
+ or mode changes. Although neither heuristic is perfect,
+ the new one should work better in practice.
+
+** Fix --ignore-failed-read to ignore file-changed read errors
+ as far as exit status is concerned. You can now suppress file-changed
+ issues entirely with --ignore-failed-read --warning=no-file-changed.
+
+** Fix --remove-files to not remove a file that changed while we read it.
+
+** Fix --atime-preserve=replace to not fail if there was no need to replace,
+ either because we did not read the file, or the atime did not change.
+
+** Fix race when creating a parent directory while another process is
+ also doing so.
+
+** Fix handling of prefix keywords not followed by "." in pax headers.
+
+** Fix handling of out-of-range sparse entries in pax headers.
+
+** Fix handling of --transform='s/s/@/2'.
+
+** Fix treatment of options ending in / in files-from list.
+
+** Fix crash on 'tar --checkpoint-action exec=\"'.
+
+** Fix low-memory crash when reading incremental dumps.
+
+\f
+version 1.34 - Sergey Poznyakoff, 2021-02-13
+
+* Fix extraction over pipe (savannah bug #60002)
+
+* Fix memory leak in read_header (savannah bug #59897)
+
+* Fix extraction when . and .. are unreadable
+
+See https://lists.gnu.org/archive/html/bug-tar/2021-01/msg00012.html
+
+* Gracefully handle duplicate symlinks when extracting
+
+See https://lists.gnu.org/archive/html/bug-tar/2021-01/msg00026.html
+
+* Re-initialize supplementary groups when switching to user privileges
+\f
+version 1.33 - Sergey Poznyakoff, 2021-01-07
+
+* 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.
+
+* --delay-directory-restore works for archives with reversed member ordering
+
+* Fix extraction of a symbolic link hardlinked to another symbolic link
+
+* Wildcards in exclude-vcs-ignore mode don't match slash
+
+* Fix the --no-overwrite-dir option
+
+Given this option, previous versions of 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.
+
+* Fix handling of chained renames in incremental backups
+
+* Link counting works for file names supplied with -T
+
+* Accept only position-sensitive (file-selection) options in file list files.
+
+Using such options as -f, -z, etc. is senseless in a file list file and
+bypasses option consistency checks in decode_options. Therefore,
+only options related to file selection (a.k.a position-sensitive options)
+are allowed in file list files.
+
+\f
+version 1.32 - Sergey Poznyakoff, 2019-02-23
+
+* Fix the use of --checkpoint without explicit --checkpoint-action
+
+* Fix extraction with the -U option
+
+See http://lists.gnu.org/archive/html/bug-tar/2019-01/msg00015.html,
+for details
+
+* Fix iconv usage on BSD-based systems
+
+* Fix possible NULL dereference (savannah bug #55369)
+
+* Improve the testsuite
+
+\f
+version 1.31 - Sergey Poznyakoff, 2019-01-02
+
+* Fix heap-buffer-overrun with --one-top-level.
+Bug introduced with the addition of that option in 1.28.
+
+* Support for zstd compression
+
+New option '--zstd' instructs tar to use zstd as compression program.
+When listing, extractng and comparing, zstd compressed archives are
+recognized automatically.
+When '-a' option is in effect, zstd compression is selected if the
+destination archive name ends in '.zst' or '.tzst'.
+
+* The -K option interacts properly with member names given in the command line
+
+Names of members to extract can be specified along with the "-K NAME"
+option. In this case, tar will extract NAME and those of named members
+that appear in the archive after it, which is consistent with the
+semantics of the option.
+
+Previous versions of tar extracted NAME, those of named members that
+appeared before it, and everything after it.
+
+* Fix CVE-2018-20482
+
+When creating archives with the --sparse option, previous versions of
+tar would loop endlessly if a sparse file had been truncated while
+being archived.
+
+\f
+version 1.30 - Sergey Poznyakoff, 2017-12-17
+
+* Member names containing '..' components are now skipped when extracting.
+
+This fixes tar's behavior to match its documentation, and is a bit
+safer when extracting untrusted archives over old files (an unsafe
+practice that the tar manual has long recommended against).
+
+* Report erroneous use of position-sensitive options.
+
+During archive creation or update, tar keeps track of positional
+options (see the manual, subsection 3.4.4 "Position-Sensitive
+Options"), and reports those that had no effect. For example, when
+invoked as
+
+ tar -cf a.tar . --exclude '*.o'
+
+tar will create the archive, but will exit with status 2, having
+issued the following error message
+
+ tar: The following options were used after non-optional
+ arguments in archive create or update mode. These options are
+ positional and affect only arguments that follow them. Please,
+ rearrange them properly.
+ tar: --exclude '*.o' has no effect
+ tar: Exiting with failure status due to previous errors
+
+* --numeric-owner now affects private headers too.
+
+This helps the output of 'tar' to be more deterministic.
+
+* Fixed the --delay-directory-restore option
+
+In some cases tar would restore the directory permissions too early,
+causing subsequent link extractions in that directory to fail.
+
+* The --warnings=failed-read option
+
+This new warning control option suppresses warning messages about
+unreadable files and directories. It has effect only if used together
+with the --ignore-failed-read option.
+
+* The --warnings=none option now suppresses all warnings
+
+This includes warnings about unreadable files produced when
+--ignore-failed-read is in effect. To output these, use
+--warnings=none --warnings=no-failed-read.
+
+* Fix reporting of hardlink mismatches during compare
+
+Tar reported incorrect target file name in the 'Not linked to'
+diagnostic message.
\f
-version 1.28.90 (Git)
+version 1.29 - Sergey Poznyakoff, 2016-05-16
* New options: --verbatim-files-from, --no-verbatim-files-from
Use the --verbatim-files-from option to disable this special handling.
This facilitates the use of tar with file lists created automatically
-(e.g. by file(1) command).
+(e.g. by find(1) command).
This option affects all --files-from options that occur after it in
the command line. Its effect is reverted by the
--no-verbatim-files-from option.
+* --null option reads file names verbatim
+
+The --null option implies --verbatim-files-from. I.e. each line
+read from null-delimited file lists is treated as a file name.
+
+This restores the documented behavior, which was broken in version
+1.27.
+
* New options: --owner-map=FILE and --group-map=FILE
These two options provide fine-grained control over what user/group
+ID. Otherwise, both NEWNAME and NEWID need not be listed in the
system user database.
-* --null option reads file names verbatim
+* New option --clamp-mtime
-The --null option implies --verbatim-files-from. I.e. each line
-read from null-delimited file lists is treated as a file name.
+The new --clamp-mtime option changes the behavior of --mtime to only
+use the time specified if the file mtime is newer than the given time.
+The --clamp-mtime option can only be used together with --mtime.
-This restores the documented behavior, which was broken in version
-1.27.
+Typical use case is to make builds reproducible: to loose less
+information, it's better to keep the original date of an archive,
+except for files modified during the build process. In that case, using
+reference (and thus reproducible) timestamps for the latter is good
+enough.
+
+See <https://wiki.debian.org/ReproducibleBuilds> for more information.
+
+* Deprecated --preserve option removed
+
+* Sparse file detection
+
+Tar now uses SEEK_DATA/SEEK_HOLE on systems that support it. This
+allows for considerable speed-up in sparse-file detection.
+
+New option --hole-detection is provided, that allows the user to
+select the algorithm used for hole detection. Available arguments
+are:
+
+ --hole-detection=seek
+ Use lseek(2) SEEK_DATA and SEEK_HOLE "whence" parameters.
+
+ --hole-detection=raw
+ Scan entire file before storing it to determine where holes
+ are located.
+
+The default is to use "seek" whenever possible, and fall back to
+"raw" otherwise.
\f
version 1.28, 2014-07-28
deleted, correspondingly.
%{FMT}t - Current local time using FMT as strftime(3) format.
If {FMT} is omitted, use %c.
- %{N}* - Pad output with spaces to the Nth column, or to the
+ %{N}* - Pad output with spaces to the Nth column, or to the
current screen width, if {N} is not given.
%c - A shortcut for "%{%Y-%m-%d %H:%M:%S}t: %ds, %{read,wrote}T%*\r"
--exclude-vcs-ignores Read exclude tags from VCS ignore files,
where such files exist. Supported VCS's
are: CVS, Git, Bazaar, Mercurial.
-
+
* Tar refuses to read input from and write output to a tty device.
This release includes official tar(1) and rmt(8) manpages.
Distribution maintainers are kindly asked to use these instead of the
home-made pages they have been providing so far.
-
+
\f
version 1.27.1 - Sergey Poznyakoff, 2013-11-17
symbolic link, it first unlinks the entry, and then extracts the directory.
This option disables this behavior and instructs tar to follow
-symlinks to directories when extracting from the archive.
+symlinks to directories when extracting from the archive.
It is mainly intended to provide compatibility with the Slackware
installation scripts.
\f
-Copyright 1994-2001, 2003-2010, 2013-2015 Free Software Foundation, Inc.
+Copyright 1994-2022 Free Software Foundation, Inc.
This file is part of GNU tar.
Local variables:
mode: outline
paragraph-separate: "[ \f]*$"
-eval: (add-hook 'write-file-hooks 'time-stamp)
+eval: (add-hook 'write-file-functions #'time-stamp nil t)
time-stamp-start: "changes. "
time-stamp-format: "%:y-%02m-%02d"
time-stamp-end: "\n"