-GNU tar NEWS - User visible changes. 2010-03-28
+GNU tar NEWS - User visible changes. 2010-09-23
Please send GNU tar bug reports to <bug-tar@gnu.org>
\f
* Bugfixes.
+** More reliable directory traversal when creating archives
+
+Tar now checks for inconsistencies caused when a file system is
+modified while tar is creating an archive. In the new approach, tar
+maintains a cache of file descriptors to directories, so it uses more
+file descriptors than before, but it adjusts to system limits on
+the number of file descriptors. Tar also takes more care when
+a file system is modified while tar is extracting from an archive.
+
+The new checks are implemented via the openat and related calls
+standardized by POSIX.1-2008. On an older system where these calls do
+not exist or do not return useful results, tar emulates the calls at
+some cost in efficiency and reliability.
+
+** Symbolic link attributes
+
+When extracting symbolic links, tar now restores attributes such as
+last-modified time and link permissions, if the operating system
+supports this. For example, recent versions of the Linux kernel
+support setting times on symlinks, and some BSD kernels also support
+symlink permissions.
+
+** --dereference consistency
+
+The --dereference (-h) option now applies to files that are copied
+into or out of archives, independently of other options. For example,
+if F is a symbolic link and archive.tar contains a regular-file member
+also named F, "tar --overwrite -x -f archive.tar F" now overwrites F
+itself, rather than the file that F points to. (To overwrite the file
+that F points to, add the --dereference (-h) option.) Formerly,
+--dereference was intended to apply only when using the -c option, but
+the implementation was not consistent.
+
+Also, the --dereference option no longer affects accesses to other
+files, such as archives and time stamp files. Symbolic links to these
+files are always followed. Previously, the links were usually but not
+always followed.
+
** Spurious error diagnostics on broken pipe.
When receiving SIGPIPE, tar would exit with error status and
tar -rf archive --label 'My volume' .
-This did not work in previous versions, in spite of what the docs said.
+This did not work in previous versions, in spite of what the docs said.
+
+** --record-size and --tape-length (-L) options
+
+Usual size suffixes are allowed for these options. For example,
+-L10k stands for a 10 kilobyte tape length.
** Fix dead loop on extracting existing symlinks with the -k option.
* Time references in --pax-option argument.
Any value from the --pax-option argument that is enclosed in a pair
-of curly braces represents a time reference. The string between the
+of curly braces represents a time reference. The string between the
braces is understood either as a textual time representation, as described in
chapter 7, "Date input formats", of the Tar manual, or as a name of
an existing file, starting with `/' or `.'. In the latter
* Support for xz compression
-Tar uses xz for compression if one of the following conditions is met:
+Tar uses xz for compression if one of the following conditions is met:
1. The option --xz or -J (see below) is used.
2. The xz binary is set as compressor using --use-compress-program option.
3. The file name of the archive being created ends in `.xz' and
auto-compress option (-a) is used.
-Xz is used for decompression if one of the following conditions is met:
+Xz is used for decompression if one of the following conditions is met:
1. The option --xz or -J is used.
2. The xz binary is set as compressor using --use-compress-program option.
- s
Apply transformation to symbolic link targets.
- - h
+ - h
Apply transformation to hard link targets.
Corresponding upper-case letters negate the meaning, so that
during extraction.
For a detailed description, see chapter 6.7 "Modifying File and Member
-Names".
+Names".
* Info (end-of-volume) scripts
The following options now work with incremental archives as well:
- --exclude-caches
- --exclude-caches-all
+ --exclude-caches
+ --exclude-caches-all
--exclude-tag
--exclude-tag-all
--exclude-tag-under
records, even if -P was not used. This is fixed: rename records
contain file names processed in accordance with the command line
settings.
-
+
* Fix --version output.
* Recognition of broken archives.