X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=NEWS;h=6226d070e1e2951bd297ce9071caf4a681f4819a;hb=9a82a0215b971725c835c640fb5f6e5b47ac214e;hp=a20523f2f2836a55b44b94c0333bfbbbc2ec318c;hpb=7efe3850f6e058d33a46ef17cdc95df0469ed887;p=chaz%2Ftar diff --git a/NEWS b/NEWS index a20523f..6226d07 100644 --- a/NEWS +++ b/NEWS @@ -1,8 +1,376 @@ -GNU tar NEWS - User visible changes. 2008-02-08 +GNU tar NEWS - User visible changes. 2011-11-26 Please send GNU tar bug reports to -version 1.19.90 (CVS) +version 1.26.90 (Git) + +* New features + +** --owner and --group names and numbers + +The --owner and --group options now accept operands of the form +NAME:NUM, so that you can specify both symbolic name and numeric ID +for owner and group. In these options, NAME no longer needs to be +present in the current host's user and group databases. + +* The --keep-old-files and --skip-old-files options. + +This release restores the traditional functionality of the +--keep-old-files. This option causes tar to avoid replacing +existing files while extracting and to treat such files as errors. +Tar will emit a prominent error message upon encountering such files +and will exit with code 2 when finished extracting the archive. + +A new option --skip-old-files is introduced, which acts exactly as +--keep-old-files, except that it does not treat existing files as +errors. Instead it just silently skips them. An additional level of +verbosity can be obtained by using the option --warning=existing-file +together with this option. + + +version 1.26 - Sergey Poznyakoff, 2011-03-12 + +* Bugfixes + +** Fix the --verify option, which broke in version 1.24. + +** Fix storing long sparse file names in PAX archives. + +** Fix correctness of --atime-preserve=replace + +tar --atime-preserve=replace no longer tries to restore atime of +zero-sized files. + +** Work around POSIX incompatibilities on FreeBSD, NetBSD and Tru64 + +** Fix bug with --one-file-system --listed-incremental + +When invoked with these two options, tar 1.25 would add only the +top-level directory to the archive, but not its contents. + + +version 1.25 - Sergey Poznyakoff, 2010-11-07 + +* Fix extraction of empty directories with the -C option in effect. +* Fix extraction of device nodes. +* Make sure name matching occurs before eventual name transformation. + +Tar 1.24 changed the ordering of name matching and name transformation +so that the former saw already transformed file names. This made it +impossible to match file names in certain cases. It is fixed now. + +* Fix the behavior of tar -x --overwrite on hosts lacking O_NOFOLLOW. + +* Improve the testsuite. + +* Alternative decompression programs. + +If extraction from a compressed archive fails because the corresponding +compression program is not installed and the following two conditions +are met, tar retries extraction using an alternative decompressor: + + 1. Another compression program supported by tar is able to handle this + compression format. + 2. The compression program was not explicitly requested in the command + line by the use of such options as -z, -j, etc. + +For example, if `compress' is not available, tar will try `gzip'. + + +version 1.24 - Sergey Poznyakoff, 2010-10-24 + +* 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. 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 +"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. + + +version 1.23 - Sergey Poznyakoff, 2010-03-10 + +* Record size autodetection + +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 +particular warning messages during `tar' run. It takes a single +argument (a `keyword'), identifying the class of warning messages +to affect. If the argument is prefixed with `no-', such warning +messages are suppressed. For example, + + tar --warning=no-alone-zero-block -x -f archive + +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 +is valid when used in conjunction with the -c and --listed-incremental +options. So far the only meaningful value for N is 0. The +`--level=0' option forces creating the level 0 dump, by truncating +the snapshot file if it exists. + +* Files removed during incremental dumps + +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 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 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 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). + + +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: + + 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: + + 1. The option --xz or -J is used. + 2. The xz binary is set as compressor using --use-compress-program option. + 3. The file is recognized as xz compressed stream data. + +* Short option -J reassigned as a short equivalent of --xz + +* New option -I + +The -I option is assigned as a short equivalent for +--use-compress-program. + +* The --no-recursive option works in incremental mode. + + +version 1.21 - Sergey Poznyakoff, 2008-12-27 + +* New short option -J + +A shortcut for --lzma. + +* New option --lzop + +* New option --no-auto-compress + +Cancels the effect of previous --auto-compress (-a) option. + +* New option --no-null + +Cancels the effect of previous --null option. + +* Compressed format recognition + +If tar is unable to determine archive compression format, it falls +back to using archive suffix to determine it. + +* VCS support. + +Using --exclude-vcs handles also files used internally by Bazaar, +Mercurial and Darcs. + +* Transformation scope flags + +Name transformation expressions understand additional flags that +control type of archive members affected by them. The flags are: + + - r + Apply transformation to regular archive members. + + - s + Apply transformation to symbolic link targets. + + - h + Apply transformation to hard link targets. + +Corresponding upper-case letters negate the meaning, so that +`H' means ``do not apply transformation to hard link targets.'' + +The scope flags are listed in the third part of an `s' expression, +e.g.: + + tar --transform 's|^|/usr/local/|S' + +Default is `rsh', which means that transformations are applied to +both regular archive members and to the targets of symbolic and hard +links. If several transform expressions are used, the default flags +can be changed using `flags=' statement before the expressions, e.g.: + + tar --transform 'flags=S;s|^|/usr/local/|S' + +* Bugfixes + +** The --null option disabled handling of tar options in list files. This +is fixed. +** 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. + + + +version 1.20 - Sergey Poznyakoff, 2008-04-14 * New option --auto-compress (-a) @@ -27,6 +395,18 @@ of `--checkpoint-action' options can be specified, the actions will be executed in order of their appearance in the command line. See chapter 3.8 "Checkpoints" for a complete description. +* New options --no-check-device, --check-device. + +The `--no-check-device' option disables comparing device numbers during +preparatory stage of an incremental dump. This allows to avoid +creating full dumps if the device numbers change (e.g. when using an +LVM snapshot). + +The `--check-device' option enables comparing device numbers. This is +the default. This option is provided to undo the effect of the previous +`--no-check-device' option, e.g. if it was set in TAR_OPTIONS +environment variable. + * The --transform option. Any number of `--transform' options can be given in the command line. @@ -40,13 +420,17 @@ 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 The value of the blocking factor is made available to info and checkpoint scripts via environment variable TAR_BLOCKING_FACTOR. +* Incremental archives + +Improved (sped up) extracting from incremental archives. + * Bugfixes. ** Fix bug introduced in version 1.19: tar refused to update non-existing archives. @@ -63,8 +447,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 @@ -75,14 +459,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 '/.'. @@ -982,7 +1366,7 @@ Versions 1.07 back to 1.00 by Jay Fenlason. 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.