-GNU tar NEWS - User visible changes. 2013-10-05
+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.29 - Sergey Poznyakoff, 2016-05-16
+
+* New options: --verbatim-files-from, --no-verbatim-files-from
+
+The --verbatim-files-from option instructs tar to treat each line read
+from a file list as a file name, even if it starts with a dash.
+
+File lists are supplied with the --files-from (-T) option. By
+default, each line read from a file list is first stripped off the
+leading and trailing whitespace and, if the result begins with a dash,
+it is treated as tar command line option.
+
+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 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
+names (or IDs) should be mapped when adding files to archive.
+
+For both options, FILE is a plain text file with user or group
+mappings. Empty lines are ignored. Comments are introduced with
+# sign (unless quoted) and extend to the end of the corresponding
+line. Each non-empty line defines translation for a single UID (GID).
+It must consist of two fields, delimited by any amount of whitespace:
+
+ OLDNAME NEWNAME[:NEWID]
+
+OLDNAME is either a valid user (group) name or a ID prefixed with +. Unless
+NEWID is supplied, NEWNAME must also be either a valid name or a
++ID. Otherwise, both NEWNAME and NEWID need not be listed in the
+system user database.
+
+* New option --clamp-mtime
+
+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.
+
+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
+
+* New checkpoint action: totals
+
+The --checkpoint-action=totals option instructs tar to output the
+total number of bytes transferred at each checkpoint.
+
+* Extended checkpoint format specification.
+
+New conversion specifiers are implemented. Some of them take
+optional arguments, supplied in curly braces between the percent
+sign and the specifier letter.
+
+ %d - Number of seconds since tar started.
+ %{r,w,d}T - I/O totals; optional arguments supply prefixes
+ to be used before number of bytes read, written and
+ 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
+ current screen width, if {N} is not given.
+ %c - A shortcut for "%{%Y-%m-%d %H:%M:%S}t: %ds, %{read,wrote}T%*\r"
+
+* New option --one-top-level
+
+The option --one-top-level tells tar to extract all files into a
+subdirectory named by the base name of the archive (minus standard
+compression suffixes recognizable by --auto-compress). When used with
+an argument, as in --one-top-level=DIR, the files are extracted into the
+supplied DIRectory. This ensures that no archive members are
+extracted outside of the specified directory, even if the archive is
+crafted so as to put them elsewhere.
+
+* New option --sort
+
+The --sort=ORDER option instructs tar to sort directory entries
+according to ORDER. It takes effect when creating archives.
+Available ORDERs are: none (the default), name and inode. The
+latter may be absent, if the underlying system does not provide
+the necessary information.
+
+Using --sort=name ensures the member ordering in the created archive
+is uniform and reproducible. Using --sort=inode reduces the number
+of disk seeks made when creating the archive and thus can considerably
+speed up archivation.
+
+* New exclusion options
+
+ --exclude-ignore=FILE Before dumping a directory check if it
+ contains FILE, and if so read exclude
+ patterns for this directory from FILE.
+ --exclude-ignore-recursive=FILE
+ Same as above, but the exclusion patterns
+ read from FILE remain in effect for any
+ subdirectory, recursively.
+ --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.
+
+* Manpages
+
+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
+
+* Bug fixes
+
+* Fix unquoting of file names obtained via the -T option.
+
+* Fix GNU long link header timestamp (backward compatibility).
+
+* Fix extracting sparse members from star archives.
\f
version 1.27 - Sergey Poznyakoff, 2013-10-05
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.
are set to mtimes of the corresponding archive members. This
can be overridden by the
- --pax-opion='exthdr.mtime=STRING'
+ --pax-option='exthdr.mtime=STRING'
command line option. The STRING is either number of seconds since
the Epoch or a "Time reference" (see below).
This can be overridden by the
- --pax-opion='globexthdr.mtime=STRING'
+ --pax-option='globexthdr.mtime=STRING'
command line option. The STRING is either number of seconds since
the Epoch or a "Time reference" (see below).
\f
-Copyright 1994-2001, 2003-2010, 2013 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"