]> Dogcows Code - chaz/tar/blobdiff - NEWS
tar: don't worry about fdopendir closing its argument
[chaz/tar] / NEWS
diff --git a/NEWS b/NEWS
index 93e2ac64c18897278c22a8571679c00fd2dc5b59..ae80441605b1dcd939198920c1d40ac25dcc2773 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,8 +1,74 @@
-GNU tar NEWS - User visible changes. 2009-08-08
+GNU tar NEWS - User visible changes. 2010-09-13
 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 than before, but it adjusts to system limits on
+the number of file descriptors.  The new checks are implemented via
+the openat, 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
 
@@ -10,6 +76,11 @@ When listing or extracting archives, the actual record size is
 reported only if the archive is read from a device (as opposed
 to regular files and pipes).
 
+* Seekable archives
+
+When a read-only operation (e.g. --list or --extract) is requested
+on a regular file, tar attemtps to speed up accesses by using lseek.
+
 * New command line option `--warning'
 
 The `--warning' command line option allows to suppress or enable
@@ -23,6 +94,9 @@ messages are suppressed.  For example,
 suppresses the output of `A lone zero block' diagnostics, which is
 normally issued if `archive' ends with a single block of zeros.
 
+See Tar Manual, section 3.9 "Controlling Warning Messages", for a
+detailed discussion.
+
 * New command line option `--level'
 
 The `--level=N' option sets the incremental dump level N.  It
@@ -35,38 +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 messages and exits with the code 2, meaning
+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 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 number of seconds since
+the Epoch or a `Time reference' (see below).
+
+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 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
+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, 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 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.
@@ -119,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
@@ -141,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
 
@@ -198,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
 
@@ -225,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
@@ -237,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 '/.'.
@@ -1144,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.025821 seconds and 4 git commands to generate.