Merge branch 'dfsg-orig' into dfsg-debian
authorBdale Garbee <bdale@gag.com>
Mon, 1 Nov 2010 23:29:19 +0000 (17:29 -0600)
committerBdale Garbee <bdale@gag.com>
Mon, 1 Nov 2010 23:29:19 +0000 (17:29 -0600)
Conflicts:
build-aux/config.guess
build-aux/config.sub
rmt/rmt.c
src/extract.c
tests/testsuite

1  2 
debian/changelog
rmt/rmt.c
src/list.c

diff --combined debian/changelog
index 83c927804a1ae5a008ec1cca421530d3c35410ce,0000000000000000000000000000000000000000..5e57a88960f66d23c933099b9fd7c9ca3d4f5cf7
mode 100644,000000..100644
--- /dev/null
@@@ -1,717 -1,0 +1,723 @@@
++tar (1.24-1) unstable; urgency=low
++
++  * new upstream version
++
++ -- Bdale Garbee <bdale@gag.com>  Mon, 01 Nov 2010 17:26:56 -0600
++
 +tar (1.23-4) unstable; urgency=low
 +
 +  * revert patch to src/create.c introduced in 2004 to fix a dpkg bug long
 +    since resolved, closes: #598345
 +
 + -- Bdale Garbee <bdale@gag.com>  Wed, 29 Sep 2010 06:01:21 +0900
 +
 +tar (1.23-3) unstable; urgency=medium
 +
 +  * add xz-utils back to the Suggests list since it may not be 'required'
 +    forever
 +  * current debhelper includes trigger support, closes: #561598
 +  * patch from upstream to fix ability of rmt to accept mixed file mode
 +    representations, closes: #587702, #597672
 +
 + -- Bdale Garbee <bdale@gag.com>  Wed, 22 Sep 2010 00:33:16 -0600
 +
 +tar (1.23-2.1) unstable; urgency=low
 +
 +  * Non-maintainer upload.
 +  * src/extract.c: Apply upstream git commit b60e56fd which fixes a dead loop
 +    on extracting existing symlinks with the -k option, closes: #577978,
 +    #576876.
 +
 + -- Michael Banck <mbanck@debian.org>  Sun, 18 Jul 2010 17:14:48 +0200
 +
 +tar (1.23-2) unstable; urgency=low
 +
 +  * use xz when lzma is called for, and stop suggesting both lzma since it's
 +    no longer used, and xz-utils since it's now priority required,
 +    closes: #582706, #523494
 +
 + -- Bdale Garbee <bdale@gag.com>  Mon, 14 Jun 2010 11:05:57 -0600
 +
 +tar (1.23-1) unstable; urgency=low
 +
 +  * new upstream version, fixes security issue in rmt (CVE-2010-0624)
 +  * add suggests for lzma and xz-utils, closes: #523499
 +
 + -- Bdale Garbee <bdale@gag.com>  Wed, 10 Mar 2010 09:51:37 -0700
 +
 +tar (1.22-2) unstable; urgency=low
 +
 +  * Add Carl Worth as an uploader.
 +  * Fix to allow parallel build (-j2), closes: #535319
 +  * Don't close file stream before EOF, closes: #525818
 +  * Preserve hard links with --remove-files, closes: #188663
 +    Thanks to Ted T'so for the idea and Sergey Poznyakoff for
 +    cleaning up my original implementation.
 +  * Respect DEB_BUILD_OPTIONS=nocheck to conform with Policy 3.8.2
 +
 + -- Carl Worth <cworth@cworth.org>  Tue, 04 Aug 2009 12:07:06 -0700
 +
 +tar (1.22-1.1) unstable; urgency=low
 +
 +  * Non-maintainer upload.
 +  * Set SIGPIPE to default action, patch from upstream. (closes: #532570)
 +
 + -- Bastian Blank <waldi@debian.org>  Tue, 30 Jun 2009 22:23:48 +0200
 +
 +tar (1.22-1) unstable; urgency=low
 +
 +  * new upstream version
 +  * version the Replaces entry for cpio, closes: #483355
 +  * move config.* update to configure target, yields a smaller diff that 
 +    doesn't clash with git-buildpackage... already had autotools-dev build dep!
 +  * script debian/tarman contributed by Marcus Watts now used to create tar.1
 +    by processing usage text in source code!  Partial fix for #473328.
 +    closes: #515578, #429776, #411707, 
 +
 + -- Bdale Garbee <bdale@gag.com>  Fri, 03 Apr 2009 01:33:52 -0600
 +
 +tar (1.20-1) unstable; urgency=low
 +
 +  * new upstream version
 +
 + -- Bdale Garbee <bdale@gag.com>  Wed, 16 Apr 2008 19:24:39 -0600
 +
 +tar (1.19-3) unstable; urgency=low
 +
 +  * upstream patch to remove error message when updating a non-existing archive
 +  * patch from Phil Hands for man page prevents URL splitting, closes: #463215
 +
 + -- Bdale Garbee <bdale@gag.com>  Tue, 18 Mar 2008 14:25:33 -0600
 +
 +tar (1.19-2) unstable; urgency=low
 +
 +  * patch from Ubuntu to fix FTBFS with gcc-4.3, closes: #452096, #441606
 +  * more descriptive short description in control, closes: #406301
 +
 + -- Bdale Garbee <bdale@gag.com>  Fri, 22 Feb 2008 18:17:50 -0700
 +
 +tar (1.19-1) unstable; urgency=low
 +
 +  * new upstream version
 +  * no need to deliver license text, as GPL-3 is in common-licenses now
 +
 + -- Bdale Garbee <bdale@gag.com>  Sun, 21 Oct 2007 11:47:17 -0600
 +
 +tar (1.18-3) unstable; urgency=high
 +
 +  * fix build with gcc-4.3, closes: #441606
 +
 + -- Bdale Garbee <bdale@gag.com>  Thu, 13 Sep 2007 00:37:36 +0200
 +
 +tar (1.18-2) unstable; urgency=high
 +
 +  * patch from Neil Moore improving the man page, closes: #439916
 +  * patch from Justin Pryzby improving the man page, closes: #433553
 +  * patch from upstream to fix directory traversal concern on extraction
 +    documented in (CVE-2007-4131), closes: #439335
 +  * urgency to high since preceding bug has having security implications
 +
 + -- Bdale Garbee <bdale@gag.com>  Wed, 05 Sep 2007 10:20:45 +0100
 +
 +tar (1.18-1) unstable; urgency=low
 +
 +  * new upstream version, closes: #429417, #426808
 +  * include COPYING file containing GPLv3 until base-file is updated
 +  * fix filename of NEWS.Debian so that it actually gets delivered
 +  * patch from Wim De Smet to document --strip in the man page, closes: #417810
 +  * patch from upstream CVS to fix --verify on large files, closes: #422718
 +  * add suggest of ncompress mirroring suggest of bzip2 to enable optional
 +    functionality, closes: #122451
 +
 + -- Bdale Garbee <bdale@gag.com>  Thu, 09 Aug 2007 20:52:32 -0600
 +
 +tar (1.16.1-1) unstable; urgency=low
 +
 +  * new upstream version, closes: #402179
 +  * updated Russian translation from Yuriy Talakan, closes: #411613
 +
 + -- Bdale Garbee <bdale@gag.com>  Mon,  2 Apr 2007 22:10:24 -0600
 +
 +tar (1.16-2) unstable; urgency=high
 +
 +  * patch from Kees Cook via upstream to disable handling of GNUTYPE_NAMES 
 +    by default and add a new command-line switch --allow-name-mangling to 
 +    re-enable it, as a fix for directory traversal bug (CVE-2006-6097), 
 +    closes: #399845
 +
 + -- Bdale Garbee <bdale@gag.com>  Fri,  1 Dec 2006 09:19:02 -0700
 +
 +tar (1.16-1) unstable; urgency=medium
 +
 +  * new upstream version, closes: #376816, #363943, #377124, #377330
 +  * fix for buffer overflow in test suite, closes: #377557
 +  * force a clean in the tests directory before running the test suite, seems
 +    to work around test suite repeatability problems, closes: #377330, #379393
 +  * accept patch from Raphael Bossek to zero nanoseconds, closes: #329843
 +  * update man page to reflect change in -l definition and other misc changes
 +    to options since man page was last updated, 
 +    closes: #384508, #391718, 361932, #315506
 +  * stop delivering upstream README, closes: #323232
 +
 + -- Bdale Garbee <bdale@gag.com>  Tue, 24 Oct 2006 17:41:51 -0600
 +
 +tar (1.15.91-2) unstable; urgency=low
 +
 +  * add a NEWS.Debian file that communicates the change in wildcard processing
 +  * re-institute the patch for filenames that are exactly 100 characters in 
 +    length originally reported in #230910, closes: #376909
 +
 + -- Bdale Garbee <bdale@gag.com>  Thu,  6 Jul 2006 19:30:46 -0600
 +
 +tar (1.15.91-1) unstable; urgency=low
 +
 +  * new upstream version, retrieved from alpha.gnu.org
 +  * update date in tar.1, closes: #367290
 +  * support rollbacks in maintainer scripts, drop removal of info since this
 +    package no longer delivers an info doc, closes: #374461
 +
 + -- Bdale Garbee <bdale@gag.com>  Thu, 22 Jun 2006 16:05:21 -0600
 +
 +tar (1.15.1dfsg-3) unstable; urgency=low
 +
 +  * revert to upstream auto* products and take a different approach to eliding
 +    doc/ contents, since I'm clearly just not smart enough to use auto* tools
 +    without breaking more than I fix, closes: #362249
 +
 + -- Bdale Garbee <bdale@gag.com>  Sat, 15 Apr 2006 00:18:42 -0600
 +
 +tar (1.15.1dfsg-2) unstable; urgency=low
 +
 +  * run aclocal and automake to get last reference to doc subdir out of
 +    Makefile.in, closes: #361931
 +
 + -- Bdale Garbee <bdale@gag.com>  Thu, 13 Apr 2006 07:33:20 +0900
 +
 +tar (1.15.1dfsg-1) unstable; urgency=low
 +
 +  * remove the documentation source from this package, since it is licensed 
 +    under the GFDL with invariant cover texts that upstream is unwilling or
 +    unable to to remove, closes: #357259
 +  * remove install-info call from postinst, since it is no longer relevant
 +  * include URL for the online version of the tar documentation in the man page
 +  * run make with same env vars set as configure to avoid situation where
 +    make re-running configure causes rsh to not be found, etc, closes: #356657
 +  * another patch from Goswin to fix test failures on amd64, closes: #354847
 +
 + -- Bdale Garbee <bdale@gag.com>  Tue, 11 Apr 2006 17:18:12 +0900
 +
 +tar (1.15.1-6) unstable; urgency=low
 +
 +  * patch from upstream to fix incorrect listing of a non-existing section as
 +    invariant in the GFDL license header, closes: #357259
 +
 + -- Bdale Garbee <bdale@gag.com>  Fri, 17 Mar 2006 19:09:14 +0100
 +
 +tar (1.15.1-5) unstable; urgency=low
 +
 +  * patch from Goswin von Brederlow to sort tar output in test suite to 
 +    compensate for different file order when ext3 option dir_index is enabled
 +    on build system, first seen on amd64 autobuilder, closes: #354847
 +
 + -- Bdale Garbee <bdale@gag.com>  Fri, 17 Mar 2006 16:02:13 +0100
 +
 +tar (1.15.1-4) unstable; urgency=low
 +
 +  * change section from base to utils to resolve override disparity
 +  * add build dependency on autoconf, closes: #354194
 +
 + -- Bdale Garbee <bdale@gag.com>  Fri, 24 Feb 2006 20:09:21 -0700
 +
 +tar (1.15.1-3) unstable; urgency=high
 +
 +  * patch for src/xheader.c suggested by Martin Pitt, to fix exploitable
 +    buffer overflow [CVE-2006-0300], closes: #354091, #314805
 +  * change default path for rmt in lib/localedir.h to be correct for Debian
 +    systems, closes: #319635
 +  * updated Italian translation from Marco d'Itri, closes: #286978
 +  * patch from Loic Minier fixing wrong matching of file names when special
 +    characters are present, closes: #272888
 +  * patch suggested by Stephen Frost to convert fatal error to warning when
 +    an archive spanning multiple volumes contains a filename longer than
 +    100 characters, closes: #330187
 +  * patch from Peter Samuelson to fix hard link handling in the presence
 +    of the --strip-components option, closes: #343062
 +  * update debhelper compat level to 5
 +
 + -- Bdale Garbee <bdale@gag.com>  Thu, 23 Feb 2006 13:02:09 -0600
 +
 +tar (1.15.1-2) unstable; urgency=low
 +
 +  * patch from LaMont to fix gcc-4.0 error in the test suite, 
 +    closes: #308815, #310830
 +  * patch for de.po from Jens Seidel, closes: #313900
 +  * fix amanda upstream URL in the info pages, closes: #310158
 +  * patch from NIIBE Yutaka to support cross builds, closes: #283723
 +
 + -- Bdale Garbee <bdale@gag.com>  Tue, 14 Jun 2005 23:42:40 -0600
 +
 +tar (1.15.1-1) unstable; urgency=low
 +
 +  * new upstream version, closes: #292255, #287251, #255067
 +  * fetch tests/append.at from CVS since it was omitted from the 1.15.1 
 +    tarball, and update the regression test invocation in debian/rules
 +  * tweaks to man page, closes: #265615
 +  * add --libexecdir definition to configure call, closes: #307070, #291068
 +  * stop trying to link /sbin/rmt, closes: #287217, #156550
 +  * add --owner to man page, closes: #204848
 +  * only mention --totals once in man page, closes: #288002
 +
 + -- Bdale Garbee <bdale@gag.com>  Sun,  8 May 2005 22:41:15 -0600
 +
 +tar (1.14-2) unstable; urgency=low
 +
 +  * patch from Paul Eggert that does a better job of eliminating the 
 +    dependency on (buggy) valloc, closes: #234422, #248897
 +  * patch for typo in upstream po/de.po, closes: #154511
 +  * switch from dh_installmanpages to dh_installman
 +
 + -- Bdale Garbee <bdale@gag.com>  Tue,  3 Aug 2004 08:22:17 -0600
 +
 +tar (1.14-1) unstable; urgency=low
 +
 +  * new upstream version, closes: #252491, #242231
 +  * eliminate autoconf and automake build dependencies
 +  * fix a bash-ism in the prerm for POSIX shell users
 +  * change valloc to malloc when allocating record_start, closes: #234422
 +
 + -- Bdale Garbee <bdale@gag.com>  Mon,  2 Aug 2004 08:02:18 -0700
 +
 +tar (1.13.93-4) unstable; urgency=high
 +
 +  * patch to stop issuing lone zero block warnings, closes: #235820
 +  * patch to clean up hyphenation in man page, closes: #185670
 +  * clean up manpage discussion of exclude and exclude-from, closes: #146196
 +  * turn on regression tests in the build process
 +
 + -- Bdale Garbee <bdale@gag.com>  Sat, 24 Apr 2004 15:38:32 -0600
 +
 +tar (1.13.93-3) unstable; urgency=high
 +
 +  * patch from upstream converts lone zero block errors to warnings, 
 +    closes: #235821
 +
 + -- Bdale Garbee <bdale@gag.com>  Fri, 12 Mar 2004 17:02:47 -0700
 +
 +tar (1.13.93-2) unstable; urgency=high
 +
 +  * recover portion of patch from Ingo Saitz included in 1.13.92-4 that got
 +    lost when merging 1.13.93 upstream (argh!), closes: 230910
 +
 + -- Bdale Garbee <bdale@gag.com>  Wed,  3 Mar 2004 13:22:49 -0700
 +
 +tar (1.13.93-1) unstable; urgency=low
 +
 +  * new upstream version
 +
 + -- Bdale Garbee <bdale@gag.com>  Sat, 28 Feb 2004 20:10:13 -0700
 +
 +tar (1.13.92-5) unstable; urgency=low
 +
 +  * patch from Paul Eggert to revert bogus behavior where POSIXLY_CORRECT 
 +    set in the environment forced 'pax' format archives, closes: #230872
 +  * add a lintian override for rmt's man page, since delivering it as an
 +    alternative makes the filename no longer match the script and symlink
 +    delivered for the binary
 +
 + -- Bdale Garbee <bdale@gag.com>  Sun, 15 Feb 2004 16:03:20 -0700
 +
 +tar (1.13.92-4) unstable; urgency=low
 +
 +  * patch from Ingo Saitz to avoid creating archives with shortnames of 100
 +    characters, since it can cause dpkg problems, closes: #230910
 +  * fix typo in info page, closes: #222569
 +
 + -- Bdale Garbee <bdale@gag.com>  Thu, 12 Feb 2004 01:17:10 -0700
 +
 +tar (1.13.92-3) unstable; urgency=low
 +
 +  * freshen build dependencies to use automaken
 +  * lose /usr/share/info/dir*gz, closes: #230418
 +  * reinstate content for mime-support, closes: #111893
 +  * implement alternatives for rmt, the version provided with dump will get
 +    higher priority than the one in tar since it's better - see #183901
 +
 + -- Bdale Garbee <bdale@gag.com>  Sat, 31 Jan 2004 16:55:29 -0700
 +
 +tar (1.13.92-2) unstable; urgency=low
 +
 +  * patches from CVS to stop stripping './' prefix from filenames, and to fix
 +    --no-recursion, closes: #230431, #230434
 +
 + -- Bdale Garbee <bdale@gag.com>  Sat, 31 Jan 2004 01:11:04 -0700
 +
 +tar (1.13.92-1) unstable; urgency=low
 +
 +  * new upstream version, closes: #229827
 +
 + -- Bdale Garbee <bdale@gag.com>  Fri, 30 Jan 2004 02:02:08 -0700
 +
 +tar (1.13.25-6) unstable; urgency=low
 +
 +  * accept patch from Goswin Brederlow to hard-code RSH definition in rules 
 +    file, eliminating rsh-client from build deps, closes: #185594, #200042
 +  * patch from Marc SCHAEFER <schaefer@alphanet.ch> to fix symlink extraction
 +    as empty files, closes: #149532
 +
 + -- Bdale Garbee <bdale@gag.com>  Sun, 14 Sep 2003 10:55:42 -0600
 +
 +tar (1.13.25-5) unstable; urgency=low
 +
 +  * include fresher config.sub/guess, update in debian/rules, closes: #165778
 +
 + -- Bdale Garbee <bdale@gag.com>  Tue, 22 Oct 2002 16:09:43 -0600
 +
 +tar (1.13.25-4) unstable; urgency=high
 +
 +  * apply patch for path vulnerabilities documented in CVE CAN-2002-0399,
 +    make urgency high since this is a security issue, closes: #163152
 +  * include improved tar.1 man page from Andrew Moise <moise@nauticom.net>
 +
 + -- Bdale Garbee <bdale@gag.com>  Wed, 16 Oct 2002 11:16:44 -0600
 +
 +tar (1.13.25-3) unstable; urgency=low
 +
 +  * apply patch to the Debian-originated tar manpage from Pedro Zorzenon Neto
 +    <pzn@terra.com.br> to clarify the value of using --bzip2 in scripts instead
 +    of -j to ensure compatibility with both old and new versions of tar.
 +    closes: #142242, #83233
 +  * fix capitalization concern in the control file, closes: #125629
 +
 + -- Bdale Garbee <bdale@gag.com>  Wed, 10 Apr 2002 14:14:40 -0600
 +
 +tar (1.13.25-2) unstable; urgency=medium
 +
 +  * add a README.Debian that clarifies the situation with respect to 'compress'
 +    in Debian and the impact on the -Z and related options, closes: #122336
 +  * patch from Mark Eichin to fix archive corruption in special cases, which
 +    has been accepted upstream for next release.  closes: #126274
 +
 + -- Bdale Garbee <bdale@gag.com>  Fri,  1 Feb 2002 08:49:26 -0700
 +
 +tar (1.13.25-1) unstable; urgency=medium
 +
 +  * new upstream version (bug fixes), closes: #113531
 +  * start having tar provide rmt, which means conflicting with and replacing
 +    cpio versions prior to the cutover, closes: #94257, #90794
 +  * make medium urgency, since we really want this and the associated cpio
 +    upload to both be in woody!
 +
 + -- Bdale Garbee <bdale@gag.com>  Fri, 23 Nov 2001 09:20:40 -0700
 +
 +tar (1.13.22-1) unstable; urgency=medium
 +
 +  * new upstream version, released specifically to help close bugs in woody
 +    upstream (Paul Eggert) says:
 +      regarding 1.13.22
 +        This fixes Debian bug 92106, in addition to the bug fixes I already
 +        reported to you for GNU tar 1.13.20 and 1.13.21.  It also fixes a
 +        core-dump bug for tar 1.13.19 and later, reported to bug-tar.
 +      regarding 1.13.21
 +        This fixes Debian bug 95984, in addition to the bug fixes I already
 +        reported to you for 1.13.20.  It also upgrades tar to use gettext
 +        0.10.39.
 +      regarding 1.13.20
 +        I haven't had time to fix all or even most of the bugs, but I suggest
 +        closing out or modifying the following bug reports:
 +        13312 I changed tar to avoid the problem (I hope; I can't test it).
 +        52092 Fixed.
 +        58890 Fixed, I think -- at least, I can't reproduce it now.
 +        65719 Not a bug? last message in that bug report says it works for him.
 +        77664 Not a bug.  In that context FOO:BAR means 'file BAR on host FOO'.
 +        78179 Sorry, I don't follow this report.  Tar does strip leading '/'s 
 +              for me.
 +        83458 Fixed.
 +        83735 Fixed.
 +        85400 Fixed for the info page only.  The man page is not part of 
 +              tar-1.13.20.
 +        90794 This partly seems to be a Debian packaging problem; see 94257.
 +        94287 Fixed.
 +        95344 Fixed.
 +        95984 Not fixed in 1.13.20, but will be fixed in next version.
 +        99655 Fixed.
 +        100883 This bug report applies to the Debian distribution only.
 +        100885 Not a bug; see its last message.
 +        105744 Not a bug; see its last message.
 +    closes: #92106, #95984, #13312, #52092, #58890, #65719, #77664, #78179
 +    closes: #83458, #83735, #94287, #95344, #99655, #100885, #105744
 +  * add documentation for --rsh-command to the Debian-provided man page,
 +    closes: #85400
 +  * fix Debian-provided man page's reference to --exclude, closes: #100883
 +
 + -- Bdale Garbee <bdale@gag.com>  Fri, 31 Aug 2001 01:13:49 -0600
 +
 +tar (1.13.19-1) unstable; urgency=low
 +
 +  * new upstream version, -I no longer a valid option, closes: #81556
 +  * freshen debian/copyright
 +
 + -- Bdale Garbee <bdale@gag.com>  Tue, 23 Jan 2001 09:42:13 -0700
 +
 +tar (1.13.18-2) unstable; urgency=low
 +
 +  * update (Debian-only, not part of upstream release) man page for tar to
 +    reflect change from -I to -j for bzip2 support, closes: #80331
 +
 + -- Bdale Garbee <bdale@gag.com>  Fri, 22 Dec 2000 14:18:51 -0700
 +
 +tar (1.13.18-1) unstable; urgency=low
 +
 +  * new upstream version, closes: #57436, #51889
 +  * add suggestion for bzip2, closes: #64279
 +  * this package is pristine upstream source plus the debian/ directory, so
 +    there should be no issues compiling on any platform, closes: #58171
 +
 + -- Bdale Garbee <bdale@gag.com>  Wed, 20 Dec 2000 13:09:44 -0700
 +
 +tar (1.13.17-2) frozen unstable; urgency=low
 +
 +  * reconfigure, recompile to fix compile from source problem, closes: #60824
 +
 + -- Bdale Garbee <bdale@gag.com>  Thu, 23 Mar 2000 09:27:16 -0700
 +
 +tar (1.13.17-1) unstable; urgency=low
 +
 +  * new upstream source from alpha.gnu.org recommended by uptream maintainer
 +    Paul Eggert.  
 +  * this version should handle multibyte encoded filenames, closes: #25140
 +  * upstream says the problem reported with -g is unreproducible in this
 +    version, closes: #23511
 +  * this version excludes sockets when building archives, closes: #51064
 +
 + -- Bdale Garbee <bdale@gag.com>  Fri,  7 Jan 2000 22:57:34 -0700
 +
 +tar (1.13.15-1) unstable; urgency=low
 +
 +  * new upstream source from alpha.gnu.org recommended by uptream maintainer
 +    Paul Eggert.
 +  * update to current policy
 +  * can't reproduce problem with remote host access reported in 1.13.11-2,
 +    assuming it's fixed, closes: #45647
 +  * upstream has not picked up our tar.1 manpage, so we'll try to keep it
 +    up to date, closes: #50856
 +
 + -- Bdale Garbee <bdale@gag.com>  Fri,  3 Dec 1999 13:29:41 -0700
 +
 +tar (1.13.14-5) unstable; urgency=low
 +
 +  * minor tweaks to clean up our diff, pointed out by the upstream maintainer
 +
 + -- Bdale Garbee <bdale@gag.com>  Tue, 23 Nov 1999 09:23:56 -0700
 +
 +tar (1.13.14-4) unstable; urgency=low
 +
 +  * update upstream maintainer and copyright references, etc
 +
 + -- Bdale Garbee <bdale@gag.com>  Sun, 21 Nov 1999 09:56:26 -0700
 +
 +tar (1.13.14-3) unstable; urgency=low
 +
 +  * fix default device in man page, closes: 50856
 +
 + -- Bdale Garbee <bdale@gag.com>  Sun, 21 Nov 1999 09:45:32 -0700
 +
 +tar (1.13.14-2) unstable; urgency=low
 +
 +  * fold in Torsten's work that closes: #50553
 +  * upstream folks indicate that $TAPE does not override -f in 1.13.14,
 +    closes: #47664
 +  * 1.13.14 has an updated man page that closes: #48603
 +  * the -X stuff has supposedly been fixed since 1.13.12, closes: #43826
 +  * rename upstream ChangeLog to changelog in the Debian package to satisfy
 +    lintian/policy
 +
 + -- Bdale Garbee <bdale@gag.com>  Sat, 20 Nov 1999 22:07:46 -0700
 +
 +tar (1.13.14-1.1) unstable; urgency=low
 +
 +  * Non maintainer upload.
 +  * Moved the AC_LINK_FILES in configure.in inside the if (closes: #50553)
 +
 + -- Torsten Landschoff <torsten@debian.org>  Sun, 21 Nov 1999 04:25:10 +0100
 +
 +tar (1.13.14-1) unstable; urgency=low
 +
 +  * new upstream source from alpha.gnu.org recommended by uptream maintainer
 +    Paul Eggert.
 +
 + -- Bdale Garbee <bdale@gag.com>  Thu, 11 Nov 1999 01:56:54 -0700
 +
 +tar (1.13.11-2) unstable; urgency=low
 +
 +  * fix error in man page, closes: #44610
 +  * patch from upstream that closes: #44827
 +
 + -- Bdale Garbee <bdale@gag.com>  Tue, 14 Sep 1999 20:58:23 -0600
 +
 +tar (1.13.11-1) unstable; urgency=low
 +
 +  * new upstream source from alpha.gnu.org recommended by uptream maintainer
 +    Paul Eggert.
 +  * move to FHS compliance with new debhelper
 +
 + -- Bdale Garbee <bdale@gag.com>  Mon,  6 Sep 1999 16:49:51 -0600
 +
 +tar (1.13.6-1) unstable; urgency=medium
 +
 +  * new upstream source from alpha.gnu.org recommended by uptream maintainer
 +    Paul Eggert.
 +  * bzip2 support is back, now with option '-y' instead of '-I'... rejoice!
 +    Closes: #42428, #42562, #42572, #42661, #42772
 +  * Paul claims that the -X option is fixed again, Closes: #42552
 +  * add mime-support goo, Closes: #26706
 +  * close bug reports I forgot to close last time, Closes: #33134, #37659
 +
 + -- Bdale Garbee <bdale@gag.com>  Wed, 11 Aug 1999 09:20:48 -0600
 +
 +tar (1.13-3) unstable; urgency=low
 +
 +  * include more docs in /usr/doc/tar, closes 33134
 +  * minor tweak to tar.1, closes 37659
 +
 + -- Bdale Garbee <bdale@gag.com>  Mon,  2 Aug 1999 00:48:44 -0600
 +
 +tar (1.13-2) unstable; urgency=low
 +
 +  * back out hacks we had made to 1.12 that seem to be causing problems in
 +    1.13, getting essentially to pristine 1.13 source plus debian control files
 +
 + -- Bdale Garbee <bdale@gag.com>  Mon,  2 Aug 1999 00:26:49 -0600
 +
 +tar (1.13-1) unstable; urgency=low
 +
 +  * new upstream source
 +
 + -- Bdale Garbee <bdale@gag.com>  Sun,  1 Aug 1999 23:33:29 -0600
 +
 +tar (1.12-9) unstable; urgency=low
 +
 +  * fix some issues with the contest of the po directory in my CVS repository
 +
 + -- Bdale Garbee <bdale@gag.com>  Sun,  1 Aug 1999 18:02:35 -0600
 +
 +tar (1.12-8) unstable; urgency=low
 +
 +  * update to handle changes in automake
 +
 + -- Bdale Garbee <bdale@gag.com>  Wed,  9 Jun 1999 20:15:15 -0600
 +
 +tar (1.12-7) frozen unstable; urgency=low
 +
 +  * merge new version of Italian translation, closes 30284
 +  * merge README.debian with copyright, closes 22370
 +
 + -- Bdale Garbee <bdale@gag.com>  Wed,  6 Jan 1999 23:56:47 -0700
 +
 +tar (1.12-6) frozen unstable; urgency=low
 +
 +  * update manpage to document -I, closes 21224
 +
 + -- Bdale Garbee <bdale@gag.com>  Fri, 17 Apr 1998 23:37:02 -0600
 +
 +tar (1.12-5) frozen unstable; urgency=low
 +
 +  * fix for erroneous time reports from --totals from Rob Browning, 
 +    closes 18345
 +  * add --numeric-owner to man page, closes 20801
 +  * add some examples to the man page, closes 20290
 +
 + -- Bdale Garbee <bdale@gag.com>  Fri, 10 Apr 1998 00:30:17 -0600
 +
 +tar (1.12-4) unstable; urgency=low
 +
 +  * move from debmake to debhelper
 +  * address lintian error reports
 +  * apply patch from amanda distribution to fix read errors on sparse files.
 +    This should close 16694.
 +  * updated dds2tar patch to restore proper operation of 'v' option.  This was
 +    causing corrupted archives when stdout was used.  Closes 17857, 17916.
 +
 + -- Bdale Garbee <bdale@gag.com>  Mon,  9 Feb 1998 23:52:05 -0700
 +
 +tar (1.12-3) unstable; urgency=low
 +
 +  * apply patch to support dds2tar-2.4.15, closes bug 10774
 +  * apply patch to support use of bzip2, closes bugs 16280, 17221
 +
 + -- Bdale Garbee <bdale@gag.com>  Wed,  4 Feb 1998 04:05:43 -0700
 +
 +tar (1.12-2) unstable; urgency=low
 +
 +  * libc6
 +  * Folded in some of Michael Dorman's changes for alpha, which are really
 +    libc6 changes.  Closes bug 8823.
 +
 + -- Bdale Garbee <bdale@gag.com>  Fri,  5 Sep 1997 00:13:00 -0600
 +
 +tar (1.12-1) unstable; urgency=low
 +
 +  * New upstream version.
 +
 + -- Bdale Garbee <bdale@gag.com>  Fri, 25 Apr 1997 21:15:44 -0600
 +
 +tar (1.11.8-11) stable frozen unstable; urgency=low
 +
 +  * back out the change made for 1.11.8-8, since it isn't really effective,
 +    and caused several folks grief.  Closes bug 8040.
 +
 + -- Bdale Garbee <bdale@gag.com>  Tue, 18 Mar 1997 01:38:10 -0700
 +
 +tar (1.11.8-10) stable frozen unstable; urgency=low
 +
 +  * rework debian/rules for CFLAGS as per policy.  Closes bug 8065.
 +
 + -- Bdale Garbee <bdale@gag.com>  Fri, 14 Mar 1997 21:22:50 -0700
 +
 +tar (1.11.8-9) unstable; urgency=medium
 +
 +  * debmake shoved a man page for a porting utility (ansi2knr) that
 +    is in the tar source tree into the package.  Fixes bug 7408.
 +
 + -- Bdale Garbee <bdale@gag.com>  Thu, 27 Feb 1997 01:30:56 -0700
 +
 +tar (1.11.8-8) unstable; urgency=medium
 +
 +  * patch from the net for a quasi-security issue.  changes the behavior
 +    during extracts, so that tar won't create inappropriate setuid files
 +    from nonexistent users.
 +
 + -- Bdale Garbee <bdale@gag.com>  Thu, 6 Feb 1997 23:06:17 -0700
 +
 +tar (1.11.8-7) unstable; urgency=medium
 +
 +  * updated to current package standards
 +  * patch from the net that fixes sporadic multi-vol seg faults
 +
 + -- Bdale Garbee <bdale@gag.com>  Sun, 17 Nov 1996 19:37:43 -0700
 +
 +Fri May 24 08:05:55 MDT 1996  Bdale Garbee    <bdale@gag.com>
 +
 +  * fold in changes from 1.11.9 configure.in so that we properly
 +    recognize that it's ok to build 'rmt'
 +  * administrivia
 +
 +Sun Apr 14 21:50:21 MDT 1996  Bdale Garbee    <bdale@gag.com>
 +
 +  * add architecture and section fields to the control file
 +  * add a man page to squelch the frequent bug reports
 +
 +Wed Dec 27 00:29:37 MST 1995  Bdale Garbee    <bdale@gag.com>
 +
 +  * fixed a null pointer dereference when the username on a remote
 +    tape reference was omitted... this closes several essentially 
 +    duplicate bug reports about segmentation violation core dumps.
 +
 +Sun Dec  3 01:13:19 MST 1995  Bdale Garbee    <bdale@gag.com>
 +
 +  * ELF build
 +  * add libc5 dependency
 +  * new maintainer
 +
 +Local variables:
 +mode: debian-changelog
 +End:
diff --combined rmt/rmt.c
index 4932ae8c73498e543cb437a63f793503dd25b04a,fff83b87a57402e048b0cded6732de0d9f84fbd3..bdcaff26741a84ac2d160cdbb63a4cde50e1ae5c
+++ b/rmt/rmt.c
@@@ -61,7 -61,7 +61,7 @@@ FILE *dbgout
        }                                       \
      }                                         \
    while (0)
-       
  
  \f
  static void
@@@ -74,13 -74,13 +74,13 @@@ trimnl (char *str
        str[len-1] = 0;
      }
  }
-   
  
  \f
  char *input_buf_ptr = NULL;
  size_t input_buf_size = 0;
  
- char *
static char *
  rmt_read (void)
  {
    ssize_t rc = getline (&input_buf_ptr, &input_buf_size, stdin);
@@@ -94,7 -94,7 +94,7 @@@
    return NULL;
  }
  
- void
static void
  rmt_write (const char *fmt, ...)
  {
    va_list ap;
    VDEBUG (10, "S: ", fmt, ap);
  }
  
- void
static void
  rmt_reply (uintmax_t code)
  {
    char buf[UINTMAX_STRSIZE_BOUND];
    rmt_write ("A%s\n", umaxtostr (code, buf));
  }
  
- void
static void
  rmt_error_message (int code, const char *msg)
  {
    DEBUG1 (10, "S: E%d\n", code);
    fflush (stdout);
  }
  
- void
static void
  rmt_error (int code)
  {
    rmt_error_message (code, strerror (code));
@@@ -154,7 -154,7 +154,7 @@@ struct rmt_k
  
  #define RMT_KW(s,v) { #s, sizeof (#s) - 1, v }
  
- int
static int
  xlat_kw (const char *s, const char *pfx,
         struct rmt_kw const *kw, int *valp, const char **endp)
  {
          slen -= pfxlen;
        }
      }
-   
    for (; kw->name; kw++)
      {
        if (slen >= kw->len
    return 1;
  }
  
- const char *
static const char *
  skip_ws (const char *s)
  {
    while (*s && c_isblank (*s))
@@@ -224,7 -224,7 +224,7 @@@ static struct rmt_kw const open_flag_kw
      { NULL }
    };
  
- int
static int
  decode_open_flag (const char *mstr, int *pmode)
  {
    int numeric_mode = 0;
        numeric_mode = strtol (mstr, (char**) &p, 10);
        mstr = skip_ws (p);
      }
-       
    if (*mstr)
      {
-        while (mstr)
+       while (mstr)
        {
-           int v;
-         
-           mstr = skip_ws (mstr);
-           if (*mstr == 0)
-             break;
-           else if (c_isdigit (*mstr))
-             v = strtol (mstr, (char**) &p, 10);
-           else if (xlat_kw (mstr, "O_", open_flag_kw, &v, &p))
-             {
-               rmt_error_message (EINVAL, "invalid open mode");
-               return 1;
-             }
-   
-           mode |= v;
-         
-           if (*p && c_isblank (*p))
-             p = skip_ws (p);
-           if (*p == 0)
-             break;
-           else if (*p == '|')
-             {
-               /* FIXMEL
-                  if (p[1] == 0)
-                  rmt_error_message (EINVAL, "invalid open mode");
-               */
-               mstr = p + 1;
-             }
-           else
-             {
-               rmt_error_message (EINVAL, "invalid open mode");
-               return 1;
-             }
-       }
+         int v;
+         
+         mstr = skip_ws (mstr);
+         if (*mstr == 0)
+           break;
+         else if (c_isdigit (*mstr))
+           v = strtol (mstr, (char**) &p, 10);
+         else if (xlat_kw (mstr, "O_", open_flag_kw, &v, &p))
+           {
+             rmt_error_message (EINVAL, "invalid open mode");
+             return 1;
+           }
+         mode |= v;
+         
+         if (*p && c_isblank (*p))
+           p = skip_ws (p);
+         if (*p == 0)
+           break;
+         else if (*p == '|')
+           {
+             /* FIXMEL
+                if (p[1] == 0)
+                rmt_error_message (EINVAL, "invalid open mode");
+             */
+             mstr = p + 1;
+           }
+         else
+           {
+             rmt_error_message (EINVAL, "invalid open mode");
+             return 1;
+           }
 -      }
      }
    else
      mode = numeric_mode;
  /* Syntax
     ------
     O<device>\n<flags>\n
-    
     Function
     --------
     Opens the <device> with given <flags>. If a device had already been opened,
     it is closed before opening the new one.
-    
     Arguments
     ---------
     <device> - name of the device to open.
     In addition, a compined form is also allowed, i.e. a decimal mode followed
     by its symbolic representation.  In this case the symbolic representation
     is given preference.
+       
     Reply
     -----
-    A0\n on success, E<errno>\n<msg>\n on error.
-       
+    A0\n on success, E0\n<msg>\n on error.
     Extensions
     ----------
-    The BSD version allows only decimal number as <flags>.
+    BSD version allows only decimal number as <flags>
  */
-    
  static void
  open_device (char *str)
  {
    char *device = xstrdup (str);
    char *flag_str;
    int flag;
-   
    flag_str = rmt_read ();
    if (!flag_str)
      {
  /* Syntax
     ------
     C[<device>]\n
-    
     Function
     --------
     Close the currently open device.
     Arguments
     ---------
     Any arguments are silently ignored.
-    
     Reply
     -----
-    A0\n on success, E<errno>\n<msg>\n on error.
+    A0\n on success, E0\n<msg>\n on error.
  */
  static void
- close_device ()
+ close_device (void)
  {
    if (close (device_fd) < 0)
      rmt_error (errno);
  /* Syntax
     ------
     L<whence>\n<offset>\n
-    
     Function
     --------
     Perform an lseek(2) on the currently open device with the specified
     parameters.
-    
     Arguments
     ---------
     <whence>  -  Where to measure offset from. Valid values are:
     Reply
     -----
     A<offset>\n on success. The <offset> is the new offset in file.
-    E<errno>\n<msg>\n on error.   
+    E0\n<msg>\n on error.
  
     Extensions
     ----------
-    The BSD version allows only 0,1,2 as <whence>.
+    BSD version allows only 0,1,2 as <whence>.
  */
  
  static struct rmt_kw const seek_whence_kw[] =
      RMT_KW(END, SEEK_END),
      { NULL }
    };
-   
- void
static void
  lseek_device (const char *str)
  {
    char *p;
    int whence;
    off_t off;
    uintmax_t n;
-   
    if (str[0] && str[1] == 0)
      {
        switch (str[0])
        rmt_error_message (EINVAL, N_("Invalid seek offset"));
        return;
      }
-     
    if (n != off || errno == ERANGE)
      {
        rmt_error_message (EINVAL, N_("Seek offset out of range"));
  /* Syntax
     ------
     R<count>\n
-    
     Function
     --------
     Read <count> bytes of data from the current device.
-    
     Arguments
     ---------
     <count>  -  number of bytes to read.
-    
     Reply
     -----
     On success: A<rdcount>\n, followed by <rdcount> bytes of data read from
     the device.
-    On error: E<errno>\n<msg>\n
+    On error: E0\n<msg>\n
  */
  
- void
static void
  read_device (const char *str)
  {
    char *p;
    size_t size;
    uintmax_t n;
    size_t status;
-   
    n = size = strtoumax (str, &p, 10);
    if (*p)
      {
        rmt_error_message (EINVAL, N_("Invalid byte count"));
        return;
      }
-   
    if (n != size || errno == ERANGE)
      {
        rmt_error_message (EINVAL, N_("Byte count out of range"));
  /* Syntax
     ------
     W<count>\n followed by <count> bytes of input data.
-    
     Function
     --------
     Write data onto the current device.
-    
     Arguments
     ---------
     <count>  - number of bytes.
-    
     Reply
     -----
     On success: A<wrcount>\n, where <wrcount> is number of bytes actually
     written.
-    On error: E<errno>\n<msg>\n
+    On error: E0\n<msg>\n
  */
  
- void
static void
  write_device (const char *str)
  {
    char *p;
    size_t size;
    uintmax_t n;
    size_t status;
-   
    n = size = strtoumax (str, &p, 10);
    if (*p)
      {
        rmt_error_message (EINVAL, N_("Invalid byte count"));
        return;
      }
-   
    if (n != size || errno == ERANGE)
      {
        rmt_error_message (EINVAL, N_("Byte count out of range"));
  /* Syntax
     ------
     I<opcode>\n<count>\n
-    
     Function
     --------
     Perform a MTIOCOP ioctl(2) command using the specified paramedters.
-    
     Arguments
     ---------
     <opcode>   -  MTIOCOP operation code.
     <count>    -  mt_count.
-    
     Reply
     -----
     On success: A0\n
-    On error: E<errno>\n<msg>\n
+    On error: E0\n<msg>\n
  */
  
- void
static void
  iocop_device (const char *str)
  {
    char *p;
    long opcode;
    off_t count;
    uintmax_t n;
-   
    opcode = strtol (str, &p, 10);
    if (*p)
      {
        rmt_error_message (EINVAL, N_("Invalid byte count"));
        return;
      }
-     
    if (n != count || errno == ERANGE)
      {
        rmt_error_message (EINVAL, N_("Byte count out of range"));
        return;
      }
-   
  #ifdef MTIOCTOP
    {
      struct mtop mtop;
  /* Syntax
     ------
     S\n
-    
     Function
     --------
     Return the status of the open device, as obtained with a MTIOCGET
     ioctl call.
-    
     Arguments
     ---------
     None
-    
     Reply
     -----
     On success: A<count>\n followed by <count> bytes of data.
-    On error: E<errno>\n<msg>\n
+    On error: E0\n<msg>\n
  */
  
- void
static void
  status_device (const char *str)
  {
    if (*str)
    rmt_error_message (ENOSYS, N_("Operation not supported"));
  #endif
  }
-   
  
  \f
  const char *argp_program_version = "rmt (" PACKAGE_NAME ") " VERSION;
@@@ -708,13 -708,13 +707,13 @@@ parse_opt (int key, char *arg, struct a
      case 'd':
        dbglev = strtol (arg, NULL, 0);
        break;
-       
      case DEBUG_FILE_OPTION:
        dbgout = fopen (arg, "w");
        if (!dbgout)
        error (EXIT_FAILURE, errno, _("cannot open %s"), arg);
        break;
-       
      case ARGP_KEY_FINI:
        if (dbglev)
        {
        else if (dbgout)
        dbglev = 1;
        break;
-       
      default:
        return ARGP_ERR_UNKNOWN;
      }
    return 0;
  }
-       
  static struct argp argp = {
    options,
    parse_opt,
@@@ -761,7 -761,7 +760,7 @@@ main (int argc, char **argv
    char *buf;
    int idx;
    int stop = 0;
-   
    set_program_name (argv[0]);
    argp_version_setup ("rmt", rmt_authors);
  
        bindtextdomain (PACKAGE, LOCALEDIR);
        textdomain (PACKAGE);
      }
-   
    if (argp_parse (&argp, argc, argv, ARGP_IN_ORDER, &idx, NULL))
      exit (EXIT_FAILURE);
    if (idx != argc)
        error (EXIT_FAILURE, errno, _("cannot open %s"), argv[idx]);
        dbglev = 1;
      }
-   
    while (!stop && (buf = rmt_read ()) != NULL)
      {
        switch (buf[0])
          close_device ();
          stop = 1;
          break;
-         
        case 'I':
          iocop_device (buf + 1);
          break;
-         
        case 'L':
          lseek_device (buf + 1);
          break;
-         
        case 'O':
          open_device (buf + 1);
          break;
-         
        case 'R':
          read_device (buf + 1);
          break;
-         
        case 'S':
          status_device (buf + 1);
          break;
-         
        case 'W':
          write_device (buf + 1);
          break;
-         
        default:
          DEBUG1 (1, "garbage input %s\n", buf);
          rmt_error_message (EINVAL, N_("Garbage command"));
          return EXIT_FAILURE;  /* exit status used to be 3 */
-       }         
+       }
      }
    if (device_fd >= 0)
      close_device ();
diff --combined src/list.c
index 6dbc439a0c61580b74a73d11efb671467381652a,d15653d3b39530a2fd27caa8ec1fa0519d1e9d87..fabe8b382725f76c368c581ce5a74b1ad17f4d98
@@@ -35,6 -35,20 +35,20 @@@ size_t recent_long_name_blocks;     /* numb
  size_t recent_long_link_blocks;       /* likewise, for long link */
  union block *recent_global_header; /* Recent global header block */
  
+ #define GID_FROM_HEADER(where) gid_from_header (where, sizeof (where))
+ #define MAJOR_FROM_HEADER(where) major_from_header (where, sizeof (where))
+ #define MINOR_FROM_HEADER(where) minor_from_header (where, sizeof (where))
+ #define MODE_FROM_HEADER(where, hbits) \
+   mode_from_header (where, sizeof (where), hbits)
+ #define TIME_FROM_HEADER(where) time_from_header (where, sizeof (where))
+ #define UID_FROM_HEADER(where) uid_from_header (where, sizeof (where))
+ static gid_t gid_from_header (const char *buf, size_t size);
+ static major_t major_from_header (const char *buf, size_t size);
+ static minor_t minor_from_header (const char *buf, size_t size);
+ static mode_t mode_from_header (const char *buf, size_t size, unsigned *hbits);
+ static time_t time_from_header (const char *buf, size_t size);
+ static uid_t uid_from_header (const char *buf, size_t size);
  static uintmax_t from_header (const char *, size_t, const char *,
                              uintmax_t, uintmax_t, bool, bool);
  
@@@ -78,7 -92,7 +92,7 @@@ read_and (void (*do_something) (void)
        prev_status = status;
        tar_stat_destroy (&current_stat_info);
  
-       status = read_header (&current_header, &current_stat_info, 
+       status = read_header (&current_header, &current_stat_info,
                              read_header_auto);
        switch (status)
        {
  
          /* Valid header.  We should decode next field (mode) first.
             Ensure incoming names are null terminated.  */
+         decode_header (current_header, &current_stat_info,
+                        &current_format, 1);
          if (! name_match (current_stat_info.file_name)
              || (NEWER_OPTION_INITIALIZED (newer_mtime_option)
                  /* FIXME: We get mtime now, and again later; this causes
                           quotearg_colon (current_stat_info.file_name)));
                  /* Fall through.  */
                default:
-                 decode_header (current_header,
-                                &current_stat_info, &current_format, 0);
                  skip_member ();
                  continue;
                }
            {
              char buf[UINTMAX_STRSIZE_BOUND];
  
-             status = read_header (&current_header, &current_stat_info, 
+             status = read_header (&current_header, &current_stat_info,
                                    read_header_auto);
              if (status == HEADER_ZERO_BLOCK)
                break;
 +            /* 
 +             * According to POSIX tar specs, this is wrong, but on the web
 +             * there are some tar specs that can trigger this, and some tar
 +             * implementations create tars according to that spec.  For now,
 +             * let's not be pedantic about issuing the warning.
 +             */
 +#if 0        
              WARNOPT (WARN_ALONE_ZERO_BLOCK,
                       (0, 0, _("A lone zero block at %s"),
                        STRINGIFY_BIGINT (current_block_ordinal (), buf)));
 +#endif
              break;
            }
          status = prev_status;
@@@ -218,8 -223,6 +231,6 @@@ list_archive (void
    off_t block_ordinal = current_block_ordinal ();
  
    /* Print the header block.  */
-   
-   decode_header (current_header, &current_stat_info, &current_format, 0);
    if (verbose_option)
      print_header (&current_stat_info, current_header, block_ordinal);
  
@@@ -504,18 -507,18 +515,18 @@@ decode_xform (char *file_name, void *da
         links subject to filename transformation.  In the absence of another
         solution, symbolic links are exempt from component stripping and
         name suffix normalization, but subject to filename transformation
-        proper. */ 
+        proper. */
        return file_name;
-       
      case XFORM_LINK:
        file_name = safer_name_suffix (file_name, true, absolute_names_option);
        break;
-       
      case XFORM_REGFILE:
        file_name = safer_name_suffix (file_name, false, absolute_names_option);
        break;
      }
-   
    if (strip_name_components)
      {
        size_t prefix_len = stripped_prefix_len (file_name,
    return file_name;
  }
  
- bool
static bool
  transform_member_name (char **pinput, int type)
  {
    return transform_name_fp (pinput, type, decode_xform, &type);
@@@ -555,7 -558,7 +566,7 @@@ decode_header (union block *header, str
    enum archive_format format;
    unsigned hbits; /* high bits of the file mode. */
    mode_t mode = MODE_FROM_HEADER (header->header.mode, &hbits);
-   
    if (strcmp (header->header.magic, TMAGIC) == 0)
      {
        if (header->star_header.prefix[130] == 0
        stat_info->is_dumpdir = true;
      }
  
+   if (header->header.typeflag == GNUTYPE_VOLHDR)
+     /* Name transformations don't apply to volume headers. */
+     return;
+   
    transform_member_name (&stat_info->file_name, XFORM_REGFILE);
    switch (header->header.typeflag)
      {
      case SYMTYPE:
        transform_member_name (&stat_info->link_name, XFORM_SYMLINK);
        break;
-       
      case LNKTYPE:
        transform_member_name (&stat_info->link_name, XFORM_LINK);
      }
@@@ -885,7 -892,7 +900,7 @@@ from_header (char const *where0, size_
    return -1;
  }
  
- gid_t
static gid_t
  gid_from_header (const char *p, size_t s)
  {
    return from_header (p, s, "gid_t",
                      false, false);
  }
  
- major_t
static major_t
  major_from_header (const char *p, size_t s)
  {
    return from_header (p, s, "major_t",
                      (uintmax_t) TYPE_MAXIMUM (major_t), false, false);
  }
  
- minor_t
static minor_t
  minor_from_header (const char *p, size_t s)
  {
    return from_header (p, s, "minor_t",
  
  /* Convert P to the file mode, as understood by tar.
     Store unrecognized mode bits (from 10th up) in HBITS. */
- mode_t
static mode_t
  mode_from_header (const char *p, size_t s, unsigned *hbits)
  {
    unsigned u = from_header (p, s, "mode_t",
@@@ -943,14 -950,7 +958,7 @@@ off_from_header (const char *p, size_t 
                      (uintmax_t) TYPE_MAXIMUM (off_t), false, false);
  }
  
- size_t
- size_from_header (const char *p, size_t s)
- {
-   return from_header (p, s, "size_t", (uintmax_t) 0,
-                     (uintmax_t) TYPE_MAXIMUM (size_t), false, false);
- }
- time_t
+ static time_t
  time_from_header (const char *p, size_t s)
  {
    return from_header (p, s, "time_t",
                      (uintmax_t) TYPE_MAXIMUM (time_t), false, false);
  }
  
- uid_t
static uid_t
  uid_from_header (const char *p, size_t s)
  {
    return from_header (p, s, "uid_t",
@@@ -1154,7 -1154,7 +1162,7 @@@ simple_print_header (struct tar_stat_in
  
        /* Time stamp.  */
  
-       time_stamp = tartime (st->mtime, false);
+       time_stamp = tartime (st->mtime, full_time_option);
        time_stamp_len = strlen (time_stamp);
        if (datewidth < time_stamp_len)
        datewidth = time_stamp_len;
  }
  
  
- void
- print_volume_label ()
static void
+ print_volume_label (void)
  {
    struct tar_stat_info vstat;
    union block vblk;
@@@ -1364,7 -1364,7 +1372,7 @@@ skip_file (off_t size
  {
    union block *x;
  
-   /* FIXME: Make sure mv_begin is always called before it */
+   /* FIXME: Make sure mv_begin_read is always called before it */
  
    if (seekable_archive)
      {
@@@ -1399,7 -1399,7 +1407,7 @@@ skip_member (void
        char save_typeflag = current_header->header.typeflag;
        set_next_block_after (current_header);
  
-       mv_begin (&current_stat_info);
+       mv_begin_read (&current_stat_info);
  
        if (current_stat_info.is_sparse)
        sparse_skip_file (&current_stat_info);
@@@ -1420,22 -1420,23 +1428,23 @@@ test_archive_label (
    if (read_header (&current_header, &current_stat_info, read_header_auto)
        == HEADER_SUCCESS)
      {
-       char *s = NULL;
-       
        decode_header (current_header,
                     &current_stat_info, &current_format, 0);
        if (current_header->header.typeflag == GNUTYPE_VOLHDR)
        assign_string (&volume_label, current_header->header.name);
  
-       if (volume_label
-         && (name_match (volume_label)
-             || (multi_volume_option
-                 && (s = drop_volume_label_suffix (volume_label))
-                 && name_match (s))))
-       if (verbose_option)
-         print_volume_label ();
-       free (s);
+       if (volume_label)
+       {
+         if (verbose_option)
+           print_volume_label ();
+         if (!name_match (volume_label) && multi_volume_option)
+           {
+             char *s = drop_volume_label_suffix (volume_label);
+             name_match (s);
+             free (s);
+           }
+       }
      }
    close_archive ();
-   names_notfound ();
+   label_notfound ();
  }