]> Dogcows Code - chaz/tar/blobdiff - NEWS
tar: live within system-supplied limits on file descriptors
[chaz/tar] / NEWS
diff --git a/NEWS b/NEWS
index 091df94291932cb14f761cea4723a43279d84026..667fad83f76031f007b069c2ee733ffae33d92f2 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,8 +1,74 @@
-GNU tar NEWS - User visible changes. 2010-01-24
+GNU tar NEWS - User visible changes. 2010-09-12
 Please send GNU tar bug reports to <bug-tar@gnu.org>
 
 \f
-version 1.22.90 (Git)
+version 1.23.90 - (Git)
+
+* The --full-time option.
+
+New command line option `--full-time' instructs tar to output file
+time stamps to the full resolution.
+
+* 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 before, but it gracefully adjusts to system limits on
+the number of file descriptors.  The new checks are implemented via
+the openat, dirfd, fdopendir, fstatat, and readlinkat 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.
+
+** Spurious error diagnostics on broken pipe.
+
+When receiving SIGPIPE, tar would exit with error status and
+"write error" diagnostics. In particular, this occurred if
+invoked as in the example below:
+
+   tar tf archive.tar | head -n 1
+
+** --remove-files
+
+Tar --remove-files failed to remove a directory which contained
+symlinks to another files within that directory.
+
+** --test-label behavior
+
+In case of a mismatch, `tar --test-label LABEL' exits with code 1,
+not 2 as it did in previous versions.
+
+The `--verbose' option used with `--test-label' provides additional
+diagnostics.
+
+Several volume labels may be specified in a command line, e.g.:
+
+   tar --test-label -f archive 'My volume' 'New volume' 'Test volume'
+
+In this case, tar exits with code 0 if any one of the arguments
+matches the actual volume label.
+
+** --label used with --update
+
+The `--label' option can be used with `--update' to prevent accidental
+update of an archive:
+
+  tar -rf archive --label 'My volume' .
+
+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.
+
+\f
+version 1.23 - Sergey Poznyakoff, 2010-03-10
 
 * Record size autodetection
 
@@ -43,73 +109,85 @@ the snapshot file if it exists.
 
 If a file or directory is removed while incremental dump is
 in progress, tar exact actions depend on whether this file
-was explicitly listed in the command line, or was gathered
+was explicitly listed in the command line, or was found
 during file system scan.
 
 If the file was explicitly listed in the command line, tar
 issues error message and exits with the code 2, meaning
 fatal error.
 
-Otherwise, if the file was gathered during the file system
-scan, tar issues a warning, saying "File removed before we read it",
-and sets the exit code to 1, which means "some files differ".
+Otherwise, if the file was found during the file system scan,
+tar issues a warning, saying "File removed before we read it",
+and sets exit code to 1, which means "some files differ".
 If the --warning=no-file-removed option is given, no warning
-is issued and the exit code remains 0.
+is issued and exit code remains 0.
 
 * Modification times of PAX extended headers.
 
-Modification times in the ustar header blocks for the 
-extended headers are set to the mtimes of the corresponding archive
-members.  This can be overridden by the
+Modification times in ustar header blocks of extended headers
+are set to mtimes of the corresponding archive members.  This
+can be overridden by the
 
   --pax-opion='exthdr.mtime=STRING'
 
-command line option.  The STRING is either the number of seconds since
+command line option.  The STRING is either number of seconds since
 the Epoch or a `Time reference' (see below).
 
-Modification times in the ustar header blocks for the global
-extended headers are set to the time when tar was invoked.
+Modification times in ustar header blocks of global extended
+headers are set to the time when tar was invoked.
 
 This can be overridden by the
 
   --pax-opion='globexthdr.mtime=STRING'
 
-command line option.  The STRING is either the number of seconds since
+command line option.  The STRING is either number of seconds since
 the Epoch or a `Time reference' (see below).
 
 * 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
-case, the value is replaced with the modification time of that file.
+case, it is replaced with the modification time of that file.
+
+* Environment of --to-command script.
+
+The environment passed to the --to-command script is extended with
+the following variables:
+
+   TAR_VERSION          GNU tar version number
+   TAR_ARCHIVE          The name of the archive
+   TAR_VOLUME           Ordinal number of the volume
+   TAR_FORMAT           Format of the archive
+   TAR_BLOCKING_FACTOR  Current blocking factor
 
 * Bugfixes
 ** Fix handling of hard link targets by -c --transform.
 ** Fix hard links recognition with -c --remove-files.
 ** Fix restoring files from backup (debian bug #508199).
 ** Correctly restore modes and permissions on existing directories.
-** The --remove-files option removes the files only if they were
+** The --remove-files option removes files only if they were
 succesfully stored in the archive.
 ** Fix storing and listing of the volume labels in POSIX format.
 ** Improve algorithm for splitting long file names (ustar
 format).
+** Fix possible memory overflow in the rmt client code (CVE-2010-0624).
 
 \f
 version 1.22 - Sergey Poznyakoff, 2009-03-05
 
 * 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.
@@ -162,7 +240,7 @@ control type of archive members affected by them.  The flags are:
  - s
    Apply transformation to symbolic link targets.
 
- - h  
+ - h
    Apply transformation to hard link targets.
 
 Corresponding upper-case letters negate the meaning, so that
@@ -184,10 +262,10 @@ can be changed using `flags=' statement before the expressions, e.g.:
 
 ** The --null option disabled handling of tar options in list files.  This
 is fixed.
-** Fixed record size autodetection.  If detected record size differs from
-the expected value (either default, or set on the command line), tar
-always prints a warning if verbosity level is set to 1 or greater,
-i.e. if either -t or -v option is given.
+** Fixed record size autodetection.  If the detected record size differs from
+the expected value (either default one, or the one set from the
+command line), tar always prints a warning if verbosity level is set
+to 1 or greater, i.e. if either -t or -v option is given.
 
 \f
 
@@ -241,7 +319,7 @@ during both creation and extraction.  Tar 1.19 used them only
 during extraction.
 
 For a detailed description, see chapter 6.7 "Modifying File and Member
-Names". 
+Names".
 
 * Info (end-of-volume) scripts
 
@@ -268,8 +346,8 @@ control systems, e.g. "CVS/", ".svn/", etc.
 
 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
@@ -280,14 +358,14 @@ Previous versions always stored absolute file names in rename
 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.
 
 When supplied an archive smaller than 512 bytes in reading mode (-x,
 -t), the previous version of tar silently ignored it, exiting with
-code 0. It is fixed. Tar now issues the following diagnostic message:
+code 0.  It is fixed.  Tar now issues the following diagnostic message:
 'This does not look like a tar archive', and exits with code 2.
 
 * Fix double-dot recognition in archive member names in case of duplicate '/.'.
@@ -1187,7 +1265,7 @@ Versions 1.07 back to 1.00 by Jay Fenlason.
 \f
 
 Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2003,
-2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
 
 This file is part of GNU tar.
 
This page took 0.025909 seconds and 4 git commands to generate.