summaryrefslogtreecommitdiff
path: root/archivers/gtar-base
diff options
context:
space:
mode:
authorbouyer <bouyer@pkgsrc.org>2002-11-20 16:57:54 +0000
committerbouyer <bouyer@pkgsrc.org>2002-11-20 16:57:54 +0000
commit47542eb1734a08daa2f22dcba9a040e99e94a5e9 (patch)
treefb50b610a8bc23fdedd07f517a3295c17b40fdb7 /archivers/gtar-base
parent7f9686ba08c4f473ba26228bde60af72b943c4d6 (diff)
downloadpkgsrc-47542eb1734a08daa2f22dcba9a040e99e94a5e9.tar.gz
Update gtar packages to 1.13.25, with security fixes from redhat.
Summary of changes (see NEWS and Changelog from the distribution for details): - don't allow absolute paths, and path containing ../ * New option --overwrite-dir * New option --recursion (the default) that is the inverse of --no-recursion. * New options --anchored, --ignore-case, --wildcards, --wildcards-match-slash, and their negations (e.g., --no-anchored). Along with --recursion and --no-recursion, these options control how exclude patterns are interpreted. * The default interpretation of exclude patterns is now --no-anchored --no-ignore-case --recursion --wildcards --wildcards-match-slash. * The --no-recursion option now affects extraction too. * New options --no-same-owner, --no-same-permissions. * New option -y or --bzip2 for bzip2 compression, by popular request.
Diffstat (limited to 'archivers/gtar-base')
-rw-r--r--archivers/gtar-base/Makefile15
-rw-r--r--archivers/gtar-base/PLIST11
-rw-r--r--archivers/gtar-base/PLIST.NetBSD13
-rw-r--r--archivers/gtar-base/distinfo19
-rw-r--r--archivers/gtar-base/files/gtar.1676
-rw-r--r--archivers/gtar-base/patches/patch-aa19
-rw-r--r--archivers/gtar-base/patches/patch-ab136
-rw-r--r--archivers/gtar-base/patches/patch-ac30
-rw-r--r--archivers/gtar-base/patches/patch-ad33
-rw-r--r--archivers/gtar-base/patches/patch-ae28
-rw-r--r--archivers/gtar-base/patches/patch-af35
-rw-r--r--archivers/gtar-base/patches/patch-ag76
12 files changed, 477 insertions, 614 deletions
diff --git a/archivers/gtar-base/Makefile b/archivers/gtar-base/Makefile
index 27216b157f0..f0e35e61826 100644
--- a/archivers/gtar-base/Makefile
+++ b/archivers/gtar-base/Makefile
@@ -1,12 +1,13 @@
-# $NetBSD: Makefile,v 1.20 2002/08/25 21:49:06 jlam Exp $
+# $NetBSD: Makefile,v 1.21 2002/11/20 16:57:54 bouyer Exp $
#
-DISTNAME= tar-1.12
-PKGNAME= gtar-base-1.12
+DISTNAME= tar-1.13.25
+PKGNAME= gtar-base-1.13.25
SVR4_PKGNAME= gtarb
CATEGORIES= archivers
-MASTER_SITES= ${MASTER_SITE_GNU:=tar/}
-EXTRACT_SUFX= .shar.gz
+MASTER_SITES= ftp://alpha.gnu.org/gnu/tar/ \
+ ftp://ftp.sunsite.org.uk/Mirrors/alpha.gnu.org/gnu/tar/ \
+ ftp://ftp.funet.fi/pub/mirrors/alpha.gnu.org/gnu/tar/
MAINTAINER= packages@netbsd.org
HOMEPAGE= http://www.gnu.org/software/tar/tar.html
@@ -19,9 +20,7 @@ CONFIGURE_ENV+= PKGLOCALEDIR=${PKGLOCALEDIR}
.include "../../mk/bsd.prefs.mk"
-.if ${OPSYS} == "NetBSD"
-PLIST_SRC= ${.CURDIR}/PLIST.NetBSD
-.elif ${OPSYS} == "Darwin"
+.if ${OPSYS} == "Darwin"
PLIST_SRC= ${.CURDIR}/PLIST.Darwin
EXTRACT_SUFX= .tar.gz
.endif
diff --git a/archivers/gtar-base/PLIST b/archivers/gtar-base/PLIST
index 440c864adb5..f975826f104 100644
--- a/archivers/gtar-base/PLIST
+++ b/archivers/gtar-base/PLIST
@@ -1,13 +1,22 @@
-@comment $NetBSD: PLIST,v 1.2 2002/08/25 21:49:06 jlam Exp $
+@comment $NetBSD: PLIST,v 1.3 2002/11/20 16:57:54 bouyer Exp $
bin/gtar
man/man1/gtar.1
+${PKGLOCALEDIR}/locale/cs/LC_MESSAGES/tar.mo
+${PKGLOCALEDIR}/locale/da/LC_MESSAGES/tar.mo
${PKGLOCALEDIR}/locale/de/LC_MESSAGES/tar.mo
+${PKGLOCALEDIR}/locale/es/LC_MESSAGES/tar.mo
+${PKGLOCALEDIR}/locale/et/LC_MESSAGES/tar.mo
${PKGLOCALEDIR}/locale/fr/LC_MESSAGES/tar.mo
+${PKGLOCALEDIR}/locale/id/LC_MESSAGES/tar.mo
${PKGLOCALEDIR}/locale/it/LC_MESSAGES/tar.mo
+${PKGLOCALEDIR}/locale/ja/LC_MESSAGES/tar.mo
${PKGLOCALEDIR}/locale/ko/LC_MESSAGES/tar.mo
${PKGLOCALEDIR}/locale/nl/LC_MESSAGES/tar.mo
${PKGLOCALEDIR}/locale/no/LC_MESSAGES/tar.mo
${PKGLOCALEDIR}/locale/pl/LC_MESSAGES/tar.mo
${PKGLOCALEDIR}/locale/pt/LC_MESSAGES/tar.mo
+${PKGLOCALEDIR}/locale/pt_BR/LC_MESSAGES/tar.mo
+${PKGLOCALEDIR}/locale/ru/LC_MESSAGES/tar.mo
${PKGLOCALEDIR}/locale/sl/LC_MESSAGES/tar.mo
${PKGLOCALEDIR}/locale/sv/LC_MESSAGES/tar.mo
+${PKGLOCALEDIR}/locale/tr/LC_MESSAGES/tar.mo
diff --git a/archivers/gtar-base/PLIST.NetBSD b/archivers/gtar-base/PLIST.NetBSD
deleted file mode 100644
index cdfcc64e48a..00000000000
--- a/archivers/gtar-base/PLIST.NetBSD
+++ /dev/null
@@ -1,13 +0,0 @@
-@comment $NetBSD: PLIST.NetBSD,v 1.2 2002/08/25 21:49:07 jlam Exp $
-bin/gtar
-man/man1/gtar.1
-${PKGLOCALEDIR}/locale/de/LC_MESSAGES/tar.cat
-${PKGLOCALEDIR}/locale/fr/LC_MESSAGES/tar.cat
-${PKGLOCALEDIR}/locale/it/LC_MESSAGES/tar.cat
-${PKGLOCALEDIR}/locale/ko/LC_MESSAGES/tar.cat
-${PKGLOCALEDIR}/locale/nl/LC_MESSAGES/tar.cat
-${PKGLOCALEDIR}/locale/no/LC_MESSAGES/tar.cat
-${PKGLOCALEDIR}/locale/pl/LC_MESSAGES/tar.cat
-${PKGLOCALEDIR}/locale/pt/LC_MESSAGES/tar.cat
-${PKGLOCALEDIR}/locale/sl/LC_MESSAGES/tar.cat
-${PKGLOCALEDIR}/locale/sv/LC_MESSAGES/tar.cat
diff --git a/archivers/gtar-base/distinfo b/archivers/gtar-base/distinfo
index bda4d8fde09..e73a75738d3 100644
--- a/archivers/gtar-base/distinfo
+++ b/archivers/gtar-base/distinfo
@@ -1,11 +1,10 @@
-$NetBSD: distinfo,v 1.4 2002/08/25 21:49:07 jlam Exp $
+$NetBSD: distinfo,v 1.5 2002/11/20 16:57:54 bouyer Exp $
-SHA1 (tar-1.12.tar.gz) = a426b8551a4b61289a1bb6d677ada162f8bbc51a
-Size (tar-1.12.tar.gz) = 867759 bytes
-SHA1 (tar-1.12.shar.gz) = 4cab31f6be9c6803679213a46bb3432670a151fc
-Size (tar-1.12.shar.gz) = 1258219 bytes
-SHA1 (patch-aa) = c0254788ea22dfdd746fb9c2bead8f93370e493e
-SHA1 (patch-ab) = 7f58c1c752b7f5c020087dd4a2471887b5888c44
-SHA1 (patch-ac) = 7b91433854e291cd963839cafe41441b5e09b6da
-SHA1 (patch-ad) = f3190475eb03e6b1dfe0dd7841ec77c2143d58c0
-SHA1 (patch-ae) = 21862d6e4dfc81904ef2ae6276bce6c8131b5841
+SHA1 (tar-1.13.25.tar.gz) = d27fda27af621a1182bff289d4bfc7b37019effe
+Size (tar-1.13.25.tar.gz) = 1312227 bytes
+SHA1 (patch-aa) = 607455dae33416396ed9589e74179a097f89adbf
+SHA1 (patch-ab) = 676a9ad625166d052ba8430c4ee19651c25c6451
+SHA1 (patch-ad) = 430fca61e5d39ed596cbc66f5cf03b3ed5363921
+SHA1 (patch-ae) = c91b7225146d6dd18031a5ebaa69993904c5c078
+SHA1 (patch-af) = 2a5eff3022bcc279131dcd1144fe9c8a7acebecb
+SHA1 (patch-ag) = fdb46bf9c32ae6df32c6569f12e9232217f53506
diff --git a/archivers/gtar-base/files/gtar.1 b/archivers/gtar-base/files/gtar.1
index 6b1e4a24584..72c1c291fa0 100644
--- a/archivers/gtar-base/files/gtar.1
+++ b/archivers/gtar-base/files/gtar.1
@@ -1,412 +1,266 @@
-.\" Copyright (c) 1991, 1992, 1993 Free Software Foundation -*- nroff -*-
-.\" See section COPYING for conditions for redistribution
.\"
-.\" Written by John F. Woods <jfw@jfwhome.funhouse.com>
-.\"
-.\" $NetBSD: gtar.1,v 1.2 2001/12/03 19:03:19 wiz Exp $
-.\" from NetBSD: tar.1,v 1.8 1997/06/06 07:59:54 jeremy Exp
-.\"
-.Dd August 6, 1994
-.Os
-.Dt GTAR 1
-.Sh NAME
-.Nm gtar
-.Nd GNU tape archiver; manipulate "tar" archive files
-.Sh SYNOPSIS
-.Nm
-.Op Cm Bq -
-.Op Cm bundled-options
-.Op Ar [gnu-style-flags]
-.Op Ar tarfile
-.Op Ar blocksize
-.Op Ar exclude-file
-.Op Ar filenames
-.Op Fl C Ar directory-name
-.Sh DESCRIPTION
-.Nm
-is short for
-.Dq tape archiver ,
-so named for historical reasons; the
-.Nm
-program creates, adds files to, or extracts files from an archive file
-in
-.Dq tar
-format, called a
-.Ar tarfile .
-A tarfile is often a magnetic tape, but can be a floppy diskette or any
-regular disk file.
-.Pp
-The first argument word of the
-.Nm
-command line is usually a command word of bundled function and modifier
-letters, optionally preceeded by a dash;
-it must contain exactly one function letter from the set
-.Cm A ,
-.Cm c ,
-.Cm d ,
-.Cm r ,
-.Cm t ,
-.Cm u ,
-.Cm x ,
-for append, create, difference, replace, table of contents, update, and
-extract (further described below). The command word can also contain other
-function modifiers described below, some of which will take arguments from
-the command line in the order they are specified in the command word (review
-the EXAMPLES section). Functions and function modifiers can also be specified
-with the GNU argument convention (preceeded by two dashes, one function or
-modifier per word. Command-line arguments that specify files to
-add to, extract from, or list from an archive may be given as shell
-pattern matching strings.
-.Sh FUNCTIONS
-Exactly one of the following functions must be specified.
-.Pp
-.Bl -tag -width "--concatenate" -compact
-.It Fl A
-.It Fl -catenate
-.It Fl "-concatenate"
-Append the contents of named file, which must itself be a tar archive,
-to the end of the archive (erasing the old end-of-archive block).
-This has the effect of adding the files contained in the named file to
-the first archive, rather than adding the second archive as an element
-of the first.
-.Em Note :
-This option requires a rewritable tarfile,
-and therefore does not work on quarter-inch cartridge tapes.
-.It Fl c
-.It Fl -create
-Create a new archive (or truncates an old one) and writes the named files
-to it.
-.It Fl d
-.It Fl -diff
-.It Fl -compare
-Find differences between files in the archive and corresponding files in
-the file system.
-.It Fl -delete
-Delete named files from the archive (Does not work on quarter-inch tapes).
-.It Fl r
-.It Fl -append
-Append files to the end of an archive (Does not work on quarter-inch tapes).
-.It Fl t
-.It Fl -list
-List the contents of an archive; if filename arguments are given, only those
-files are listed, otherwise the entire table of contents is listed.
-.It Fl u
-.It Fl -update
-Append the named files if the on-disk version has a modification date
-more recent than their copy in the archive (if any). Does not work on
-quarter-inch tapes.
-.It Fl x
-.It Fl -extract
-.It Fl -get
-Extract files from an archive. The owner, modification time, and file
-permissions are restored, if possible. If no
-.Ar file
-arguments are given, extract all the files in the archive. If a
-.Ar filename
-argument matches the name of a directory on the tape, that directory and
-its contents are extracted (as well as all directories under that directory).
-If the archive contains multiple entries corresponding to the same file
-(see the
-.Fl -append
-command above), the last one extracted will overwrite all earlier versions.
-.El
-.Sh OPTIONS
-The other options to
-.Nm
-may be combined arbitrarily; single-letter options may be bundled in with
-the command word. Verbose options which take arguments will be
-followed by the argument; single-letter options will consume
-successive command line arguments (see the
-.Sx EXAMPLES
-below).
-.Pp
-.Bl -tag -width "--preserve-permissions" -compact
-.It Fl -help
-Prints a message listing and briefly describing all the command
-options to tar.
-.It Fl -atime-preserve
-Restore the access times on files which are written to tape (note that
-this will change the inode-change time!).
-.It Fl b
-.It Fl -block-size Ar number
-Sets the block size for reading or writing to N 512-byte blocks.
-.It Fl B
-.It Fl -read-full-blocks
-Re-assemble short reads into full blocks (for reading 4.2BSD pipes).
-.It Fl C Ar directory
-.It Fl -directory Ar directory
-Change to
-.Ar directory
-for extraction.
-.It Fl -checkpoint
-Print directory names while reading the archive.
-.It Fl f Ar [hostname:]file
-.It Fl -file Ar [hostname:]file
-Read or write the specified
-.Ar file
-.Po default is Pa /dev/rst0 Pc .
-If a
-.Ar hostname
-is specified,
-.Nm
-will use
-.Xr rmt 8
-to read or write the specified
-.Ar file
-on a remote machine. If the given
-.Ar file
-is
-.Ql - ,
-then
-.Nm
-uses stdin or stdout.
-.It Fl F Ar file
-.It Fl -info-script Ar file
-.It Fl -new-volume-script Ar file
-Run a script at the end of each archive volume (implies
-.Fl M ) .
-.It Fl -fast-read
-Stop after all non-wildcard extraction targets have been found
-in the archive.
-.It Fl G
-.It Fl -incremental
-Create/list/extract old GNU-format incremental backup.
-.It Fl g Ar file
-.It Fl -listed-incremental Ar file
-Create/list/extract new GNU-format incremental backup.
-.It Fl h
-.It Fl -dereference
-Don't write symlinks as symlinks; write the data of the files they name.
-.It Fl i
-.It Fl -ignore-zeros
-Ignore blocks of zeroes in archive (usually means End-Of-File).
-.It Fl -ignore-failed-read
-Don't exit with non-zero status on unreadable files.
-.It Fl k
-.It Fl -keep-old-files
-Keep files which already exist on disk; don't overwrite them from the archive.
-.It Fl K Ar file
-.It Fl -starting-file Ar file
-Begin at
-.Ar file
-in the archive.
-.It Fl l
-.It Fl -one-file-system
-Stay in local filesystem when creating an archive (do not cross mount
-points).
-.It Fl L Ar number
-.It Fl -tape-length Ar number
-Change tapes after writing N*1024 bytes.
-.It Fl m
-.It Fl -modification-time
-Don't extract file modified time.
-.It Fl M
-.It Fl -multi-volume
-Create/list/extract multi-volume archive.
-.It Fl N Ar date
-.It Fl -after-date Ar date
-.It Fl -newer Ar date
-Only store files newer than
-.Ar date .
-.It Fl o
-.It Fl -old-archive
-.It Fl -portability
-Write a V7 format archive, rather than POSIX format.
-.It Fl O
-.It Fl -to-stdout
-Extract files to standard output.
-.It Fl p
-.It Fl -same-permissions
-.It Fl -preserve-permissions
-Extract all protection information.
-.It Fl -preserve
-Has the effect of
-.Fl p s .
-.It Fl P
-.It Fl -absolute-paths
-Don't strip leading `/'s from file names.
-.It Fl R
-.It Fl -record-number
-Show record number within archive with each message.
-.It Fl -remove-files
-Remove files after adding them to the archive.
-.It Fl s
-.It Fl -same-order
-.It Fl -preserve-order
-List of names to extract is sorted to match archive.
-.It Fl S
-.It Fl -sparse
-Handle "sparse" files efficiently.
-.It Fl T Ar file
-.It Fl -files-from Ar file
-Get names of files to extract or create from
-.Ar file ,
-one per line.
-.It Fl -null
-Modifies behavior of
-.Fl T
-to expect null-terminated names; disables
-.Fl C .
-.It Fl -totals
-Prints total bytes written with
-.Fl -create .
-.It Fl v
-.It Fl -verbose
-Lists files written to archive with
-.Fl -create
-or extracted with
-.Fl -extract ;
-lists file protection information along with file names with
-.Fl -list .
-.It Fl V Ar volume-name
-.It Fl -label Ar volume-name
-Create archive with the given
-.Ar volume-name .
-.It Fl -version
-Print tar program version number.
-.It Fl w
-.It Fl -interactive
-.It Fl -confirmation
-Ask for confirmation for every action.
-.It Fl W
-.It Fl -verify
-Attempt to verify the archive after writing it.
-.It Fl -exclude Ar pattern
-Exclude files matching the
-.Ar pattern
-(don't extract them, don't add them, don't list them).
-.It Fl X Ar file
-.It Fl -exclude-from Ar file
-Exclude files listed in
-.Ar file .
-.It Fl Z
-.It Fl -compress
-.It Fl -uncompress
-Filter the archive through
-.Xr compress 1 .
-.It Fl z
-.It Fl -gzip
-.It Fl -gunzip
-Filter the archive through
-.Xr gzip 1 .
-.It Fl -use-compress-program Ar program
-Filter the archive through
-.Ar program
-(which must accept
-.Fl d
-to mean ``decompress'').
-.It Fl -block-compress
-Block the output of compression program for tapes or floppies
-(otherwise writes will be of odd length, which device drivers may reject).
-.It Fl [0-7][lmh]
-Specify tape drive and density.
-.It Fl -norecurse
-Don't recurse into subdirectories when creating.
-.It Fl -unlink
-Unlink files before creating them.
-.El
-.Sh ENVIRONMENT
-The
-.Nm
-program examines the following environment variables:
-.Bl -tag -width "POSIXLY-CORRECT"
-.It Ev POSIXLY-CORRECT
-Normally,
-.Nm
-will process flag arguments that appear in the file list.
-If set in the environment, this flag causes
-.Nm
-to consider the first
-non-flag argument to terminate flag processing, as per the POSIX specification.
-.It Ev SHELL
-In interactive mode, a permissible response to the prompt is to
-request to spawn a subshell, which will be "/bin/sh" unless the
-.Ev SHELL
-variable is set.
-.It Ev TAPE
-Changes the default tape drive (which is still overridden by the
-.Fl f
-flag).
-.El
-.Sh FILES
-.Bl -tag -width "/dev/rst0"
-.It Pa /dev/rst0
-The default tape drive.
-.Sh EXAMPLES
-To create an archive on tape drive
-.Pa /dev/rst0
-with a block size of 20
-blocks, containing files named "bert" and "ernie", you can enter
-.Dl tar cfb /dev/rst0 20 bert ernie
-or
-.Dl tar --create --file /dev/rst0 --block-size 20 bert ernie
-Note that the
-.Fl f
-and
-.Fl b
-flags both require arguments, which they take from the command line in
-the order they were listed in the command word.
-.Pp
-Because
-.Pa /dev/rst0
-is the default device, and 20 is the default block
-size, the above example could have simply been
-.Dl tar c bert ernie
-.Pp
-To extract all the C sources and headers from an archive named
-"backup.tar", type
-.Dl tar xf backup.tar "*.[ch]"
-Note that the pattern must be quoted to prevent the shell from
-attempting to expand it according the files in the current working
-directory (the shell does not have access to the list of files in
-the archive, of course).
-.Pp
-To copy a file hierarchy while preserving metadata, type
-.Dl tar cf - -C srcdir ". |" tar xpf "-C destdir"
-.Pp
-To create a compressed archive on diskette, using gzip, use a command-line like
-.Dl tar --block-compress -z -c -v -f /dev/rfd1a -b 36 tar/
-Note that you cannot mix bundled flags and --style flags; you can use
-single-letter flags in the manner above, rather than having to type
-.Dl tar --block-compress --gzip --verbose --file /dev/rfd1a --block-size 20 tar/
-.Pp
-The above-created diskette can be listed with
-.Dl tar tvfbz /dev/rfd1a 36
-.Pp
-To join two tar archives into a single archive, use
-.Dl tar Af archive1.tar archive2.tar
-which will add the files contained in archive2.tar onto the end of
-archive1.tar (note that this can't be done by simply typing
-.Dl cat archive2.tar >> archive1.tar
-because of the end-of-file block at the end of a tar archive).
-.El
-.\" This next request is for sections 1, 6, 7 & 8 only
-.\" (command return values (to shell) and fprintf/stderr type diagnostics)
-.\" .Sh DIAGNOSTICS
-.Sh SEE ALSO
-.Xr compress 1 ,
-.Xr gzip 1 ,
-.Xr pax 1 ,
-.Xr rmt 8
-.\" .Sh STANDARDS
-.Sh HISTORY
-The tar format has a rich history, dating back to Sixth Edition UNIX.
-The current implementation of tar is the GNU implementation, which
-originated as the public-domain tar written by John Gilmore.
-.Sh AUTHORS
-A cast of thousands, including [as listed in the ChangeLog file in the
-source] John Gilmore (author of original public
-domain version), Jay Fenlason (first GNU author), Joy Kendall, Jim
-Kingdon, David J. MacKenzie, Michael I Bushnell, Noah Friedman, and
-innumerable others who have contributed fixes and additions.
-.Sh BUGS
-The
-.Fl C
-feature does not work like historical tar programs, and is probably
-untrustworthy.
-.Pp
-The
-.Fl A
-command should work to join an arbitrary number of tar archives
-together, but it does not; attempting to do so leaves the
-end-of-archive blocks in place for the second and subsequent archives.
+.\" $NetBSD: gtar.1,v 1.3 2002/11/20 16:57:55 bouyer Exp $
+.\" @(#)tar.1 1.13.25 2000/12/14 Werner;
+.\" from SuSe tar-1.13.25-45.src.rpm
+.TH TAR 1 "14 December 2000" "Version 1.13.25"
+.UC 1
+.SH NAME
+tar \- The GNU version of the tar archiving utility
+.SH SYNOPSIS
+.B tar
+.RB [ \- ]
+.RB [ "A \-\-catenate \-\-concatenate" \||\| "c \-\-create" \||\| "d \-\-diff \-\-compare" \||\| "r \-\-append" \||\| "t \-\-list" \||\| "u \-\-update" \||\| "x \-\-extract \-\-get" ]
+.RB [ \-\-atime\-preserve ]
+.RB [ "\-b, \-\-block\-size=\fIN\fP" ]
+.RB [ "\-B, \-\-read\-full\-blocks" ]
+.RB [ "\-C, \-\-directory=\fIDIR\fP" ]
+.RB [ \-\-checkpoint ]
+.RB [ "\-f, \-\-file=\fR[\fP\fIHOSTNAME\fP:\fR]\fP\fIF\fP" ]
+.RB [ "\-F, \-\-info\-script=\fIF\fP, \-\-new\-volume\-script=\fIF\fP" ]
+.RB [ "\-\-force\-local" ]
+.RB [ "\-G, \-\-incremental" ]
+.RB [ "\-g, \-\-listed\-incremental=\fIF\fP" ]
+.RB [ "\-h, \-\-dereference" ]
+.RB [ "\-i, \-\-ignore\-zeros" ]
+.RB [ "\-j, \-\-bzip2, \-\-bunzip2" ]
+.RB [ \-\-ignore\-failed\-read ]
+.RB [ "\-k, \-\-keep\-old\-files" ]
+.RB [ "\-K, \-\-starting\-file=\fIF\fP" ]
+.RB [ "\-l, \-\-one\-file\-system" ]
+.RB [ "\-L, \-\-tape\-length=\fIN\fP" ]
+.RB [ "\-m, \-\-modification\-time" ]
+.RB [ "\-M, \-\-multi\-volume" ]
+.RB [ "\-N, \-\-after\-date=\fIDATE\fP, \-\-newer=\fIDATE\fP" ]
+.RB [ "\-o, \-\-old\-archive, \-\-portability" ]
+.RB [ "\-O, \-\-to\-stdout" ]
+.RB [ "\-p, \-\-same\-permissions, \-\-preserve\-permissions" ]
+.RB [ "\-P, \-\-absolute\-paths" ]
+.RB [ \-\-preserve ]
+.RB [ "\-R, \-\-record\-number" ]
+.RB [ "\-\-recursive\-unlink" ]
+.RB [ \-\-remove\-files ]
+.RB [ "\-s, \-\-same\-order, \-\-preserve\-order" ]
+.RB [ \-\-same\-owner ]
+.RB [ "\-S, \-\-sparse" ]
+.RB [ "\-T, \-\-files\-from=\fIF\fP" ]
+.RB [ \-\-null ]
+.RB [ \-\-totals ]
+.RB [ "\-v, \-\-verbose" ]
+.RB [ "\-V, \-\-label=\fINAME\fP" ]
+.RB [ \-\-version ]
+.RB [ "\-w, \-\-interactive, \-\-confirmation" ]
+.RB [ "\-W, \-\-verify" ]
+.RB [ "\-\-exclude=\fIFILE\fP" ]
+.RB [ "\-X, \-\-exclude\-from=\fIFILE\fP" ]
+.RB [ "\-Z, \-\-compress, \-\-uncompress" ]
+.RB [ "\-z, \-\-gzip, \-\-ungzip" ]
+.RB [ "\-\-use\-compress\-program=\fIPROG\fP" ]
+.RB [ \-\-block\-compress ]
+.RB [ \-\fR[\fP0\-7\fR][\fPlmh\fR]\fP ]
+.TP
+.I filename1 \fR[\fP filename2\fR,\fP \fR...\fP filenameN \fR]
+.TP
+.I directory1 \fR[\fP directory2\fR,\fP \fR...\fP directoryN \fR]
+.SH DESCRIPTION
+.LP
+This manual page documents the GNU version of
+.BR tar ,
+an archiving program designed to store and extract files from
+an archive file known as a
+.IR tarfile .
+A
+.I tarfile
+may be made on a tape drive, however, it is also common
+to write a
+.I tarfile
+to a normal file.
+The first argument to
+.B tar
+must be one of the options:
+.BR Acdrtux ,
+followed by any optional functions.
+The final arguments to
+.B tar
+are the names of the files or directories which should be archived. The use
+of a directory name always implies that the subdirectories below should be
+included in the archive.
+.SH "FUNCTION LETTERS"
+.TP
+.B One of the following options must be used:
+.TP
+.B \-A, \-\-catenate, \-\-concatenate
+append tar files to an archive
+.TP
+.B \-c, \-\-create
+create a new archive
+.TP
+.B \-d, \-\-diff, \-\-compare
+find differences between archive and file system
+.TP
+.B \-\-delete
+delete from the archive (not for use on mag tapes!)
+.TP
+.B \-r, \-\-append
+append files to the end of an archive
+.TP
+.B \-t, \-\-list
+list the contents of an archive
+.TP
+.B \-u, \-\-update
+only append files that are newer than copy in archive
+.TP
+.B \-x, \-\-extract, \-\-get
+extract files from an archive
+.SH "OTHER OPTIONS"
+.TP
+.B \-\-atime\-preserve
+don't change access times on dumped files
+.TP
+.B \-b, \-\-block\-size=\fIN
+block size of \fIN\fPx512 bytes (default \fIN\fP=20)
+.TP
+.B \-B, \-\-read\-full\-blocks
+reblock as we read (for reading 4.2BSD pipes)
+.TP
+.B \-C, \-\-directory=\fIDIR
+change to directory \fIDIR
+.TP
+.B \-\-checkpoint
+print directory names while reading the archive
+.TP
+.B \-f, \-\-file=\fR[\fP\fIHOSTNAME\fP:\fR]\fP\fIF
+use archive file or device \fIF\fP (default /dev/rmt0)
+.TP
+.B \-\-force\-local
+archive file is local even if has a colon
+.TP
+.B \-F, \-\-info\-script=\fIF\fP, \-\-new\-volume\-script=\fIF
+run script at end of each tape (implies \-M)
+.TP
+.B \-G, \-\-incremental
+create/list/extract old GNU\-format incremental backup
+.TP
+.B \-g, \-\-listed\-incremental=\fIF
+create/list/extract new GNU\-format incremental backup
+.TP
+.B \-h, \-\-dereference
+don't dump symlinks; dump the files they point to
+.TP
+.B \-i, \-\-ignore\-zeros
+ignore blocks of zeros in archive (normally mean EOF)
+.TP
+.B \-j, \-\-bzip2, \-\-bunzip2
+filter the archive through bzip2
+.TP
+.B \-\-ignore\-failed\-read
+don't exit with non\-zero status on unreadable files
+.TP
+.B \-k, \-\-keep\-old\-files
+keep existing files; don't overwrite them from archive
+.TP
+.B \-K, \-\-starting\-file=\fIF
+begin at file F in the archive
+.TP
+.B \-l, \-\-one\-file\-system
+stay in local file system when creating an archive
+.TP
+.B \-L, \-\-tape\-length=\fIN
+change tapes after writing N*1024 bytes
+.TP
+.B \-m, \-\-modification\-time
+don't extract file modified time
+.TP
+.B \-M, \-\-multi\-volume
+create/list/extract multi\-volume archive
+.TP
+.B \-N, \-\-after\-date=\fIDATE\fP, \-\-newer=\fIDATE
+only store files newer than \fIDATE
+.TP
+.B \-o, \-\-old\-archive, \-\-portability
+write a V7 format archive, rather than ANSI format
+.TP
+.B \-O, \-\-to\-stdout
+extract files to standard output
+.TP
+.B \-p, \-\-same\-permissions, \-\-preserve\-permissions
+extract all protection information
+.TP
+.B \-P, \-\-absolute\-paths
+don't strip leading `/'s from file names
+.TP
+.B \-\-preserve
+like \-p \-s
+.TP
+.B \-R, \-\-record\-number
+show record number within archive with each message
+.TP
+.B \-\-recursive\-unlink
+Empty hierarchies prior to extracting directory
+.TP
+.B \-\-remove\-files
+remove files after adding them to the archive
+.TP
+.B \-s, \-\-same\-order, \-\-preserve\-order
+list of names to extract is sorted to match archive
+.TP
+.B \-\-same\-owner
+create extracted files with the same ownership
+.TP
+.B \-S, \-\-sparse
+handle sparse files efficiently
+.TP
+.B \-T, \-\-files\-from=\fIF
+get names to extract or create from file \fIF
+.TP
+.B \-\-null
+-T reads null\-terminated names, disable \-C
+.TP
+.B \-\-totals
+print total bytes written with \-\-create
+.TP
+.B \-v, \-\-verbose
+verbosely list files processed
+.TP
+.B \-V, \-\-label=\fINAME
+create archive with volume name \fINAME
+.TP
+.B \-\-version
+print tar program version number
+.TP
+.B \-w, \-\-interactive, \-\-confirmation
+ask for confirmation for every action
+.TP
+.B \-W, \-\-verify
+attempt to verify the archive after writing it
+.TP
+.B \-\-exclude=\fIFILE
+exclude file \fIFILE
+.TP
+.B \-X, \-\-exclude\-from=\fIFILE
+exclude files listed in \fIFILE
+.TP
+.B \-Z, \-\-compress, \-\-uncompress
+filter the archive through compress
+.TP
+.B \-z, \-\-gzip, \-\-ungzip
+filter the archive through gzip
+.TP
+.B \-\-use\-compress\-program=\fIPROG
+filter the archive through \fIPROG\fP (which must accept \-d)
+.TP
+.B \-\-block\-compress
+block the output of compression program for tapes
+.TP
+.B \-\fR[\fP0\-7\fR][\fPlmh\fR]
+specify drive and density
+.SH BUGS
+.LP
+The GNU folks, in general, abhor man pages, and create info documents instead.
+The maintainer of tar falls into this category. This man page is neither
+complete, nor current, and was included in the Debian Linux packaging of tar
+entirely to reduce the frequency with which the lack of a man page gets
+reported as a bug in our defect tracking system.
+
+If you really want to understand tar, then you should run info and read the
+tar info pages, or use the info mode in emacs.
+
diff --git a/archivers/gtar-base/patches/patch-aa b/archivers/gtar-base/patches/patch-aa
index a89b458b728..775f82547ba 100644
--- a/archivers/gtar-base/patches/patch-aa
+++ b/archivers/gtar-base/patches/patch-aa
@@ -1,13 +1,22 @@
-$NetBSD: patch-aa,v 1.4 1999/09/18 14:52:19 kim Exp $
+$NetBSD: patch-aa,v 1.5 2002/11/20 16:57:55 bouyer Exp $
---- src/Makefile.in.orig Fri Apr 25 20:22:06 1997
-+++ src/Makefile.in Wed Mar 4 09:49:44 1998
-@@ -102,7 +102,7 @@
+--- src/Makefile.in.orig Wed Sep 26 22:34:33 2001
++++ src/Makefile.in Sun Nov 17 18:04:11 2002
+@@ -103,7 +103,7 @@
- AUTOMAKE_OPTIONS = gnits ansi2knr
+ AUTOMAKE_OPTIONS = gnits
bin_PROGRAMS = tar
-libexec_PROGRAMS = @RMT@
+libexec_PROGRAMS =
EXTRA_PROGRAMS = rmt
noinst_HEADERS = arith.h common.h rmt.h system.h tar.h
+@@ -127,7 +127,7 @@
+ CONFIG_CLEAN_FILES =
+ EXTRA_PROGRAMS = rmt$(EXEEXT)
+ bin_PROGRAMS = tar$(EXEEXT)
+-libexec_PROGRAMS = @RMT@
++libexec_PROGRAMS =
+ PROGRAMS = $(bin_PROGRAMS) $(libexec_PROGRAMS)
+
+ am_rmt_OBJECTS = rmt.$(OBJEXT)
diff --git a/archivers/gtar-base/patches/patch-ab b/archivers/gtar-base/patches/patch-ab
index 9df1bc49b81..52f50f5bc01 100644
--- a/archivers/gtar-base/patches/patch-ab
+++ b/archivers/gtar-base/patches/patch-ab
@@ -1,121 +1,55 @@
-$NetBSD: patch-ab,v 1.7 2000/10/20 02:47:45 hubertf Exp $
+$NetBSD: patch-ab,v 1.8 2002/11/20 16:57:55 bouyer Exp $
---- src/extract.c.orig Tue Apr 22 20:05:57 1997
-+++ src/extract.c Fri Mar 6 14:33:05 1998
-@@ -103,7 +103,11 @@
-
- if (!keep_old_files_option
- || (stat_info->st_mode & (S_ISUID | S_ISGID | S_ISVTX)))
-+#if (defined (__NetBSD__) && NetBSD > 199706 && !defined(NetBSD1_2))
-+ if (lchmod (file_name, ~current_umask & (int) stat_info->st_mode) < 0)
-+#else
- if (chmod (file_name, ~current_umask & (int) stat_info->st_mode) < 0)
-+#endif
- ERROR ((0, errno, _("%s: Cannot change mode to %0.4o"),
- file_name, ~current_umask & (int) stat_info->st_mode));
- }
-@@ -124,8 +128,10 @@
- {
- struct utimbuf utimbuf;
-
-+#if !(defined (__NetBSD__) && NetBSD > 199706 && !defined(NetBSD1_2))
- if (!symlink_flag)
- {
-+#endif
- /* We do the utime before the chmod because some versions of utime are
- broken and trash the modes of the file. */
-
-@@ -137,6 +143,7 @@
-
- /* FIXME: incremental_option should set ctime too, but how? */
-
-+#if !(defined (__NetBSD__) && NetBSD > 199706 && !defined(NetBSD1_2))
- if (incremental_option)
- utimbuf.actime = stat_info->st_atime;
- else
-@@ -145,6 +152,19 @@
- utimbuf.modtime = stat_info->st_mtime;
-
- if (utime (file_name, &utimbuf) < 0)
-+#else
-+ struct timeval tv[2];
-+
-+ if (incremental_option)
-+ tv[0].tv_sec = stat_info->st_atime;
-+ else
-+ tv[0].tv_sec = now;
-+ tv[0].tv_usec = 0;
-+ tv[1].tv_sec = stat_info->st_mtime;
-+ tv[1].tv_usec = 0;
-+
-+ if (lutimes (file_name, tv) < 0)
-+#endif
- ERROR ((0, errno,
- _("%s: Could not change access and modification times"),
- file_name));
-@@ -155,7 +175,9 @@
- have to set permissions prior to possibly giving files away. */
-
- set_mode (file_name, stat_info);
-+#ifndef __NetBSD__
- }
-+#endif
-
- /* If we are root, set the owner and group of the extracted file, so we
- extract as the original owner. Or else, if we are running as a user,
---- src/tar.c.orig Fri Apr 25 16:09:49 1997
-+++ src/tar.c Sat Mar 7 21:43:15 1998
-@@ -163,6 +163,7 @@
- #define SUFFIX_OPTION 15
- #define USE_COMPRESS_PROGRAM_OPTION 16
- #define VOLNO_FILE_OPTION 17
-+#define NO_UNLINK_FIRST_OPTION 20
-
- /* Some cleanup is being made in GNU tar long options. Using old names is
- allowed for a while, but will also send a warning to stderr. Take old
-@@ -237,6 +238,8 @@
- {"newer-mtime", required_argument, NULL, NEWER_MTIME_OPTION},
- {"null", no_argument, NULL, NULL_OPTION},
- {"no-recursion", no_argument, NULL, NO_RECURSE_OPTION},
-+ {"norecurse", no_argument, NULL, NO_RECURSE_OPTION},
+--- src/tar.c.orig Fri Sep 21 02:11:27 2001
++++ src/tar.c Sun Nov 17 18:24:55 2002
+@@ -136,6 +136,7 @@
+ NEWER_MTIME_OPTION,
+ NO_ANCHORED_OPTION,
+ NO_IGNORE_CASE_OPTION,
++ NO_UNLINK_FIRST_OPTION,
+ NO_WILDCARDS_OPTION,
+ NO_WILDCARDS_MATCH_SLASH_OPTION,
+ NULL_OPTION,
+@@ -233,6 +234,7 @@
+ {"no-recursion", no_argument, &recursion_option, 0},
+ {"no-same-owner", no_argument, &same_owner_option, -1},
+ {"no-same-permissions", no_argument, &same_permissions_option, -1},
+ {"no-unlink-first", no_argument, NULL, NO_UNLINK_FIRST_OPTION},
{"numeric-owner", no_argument, &numeric_owner_option, 1},
- {"old-archive", no_argument, NULL, 'o'},
- {"one-file-system", no_argument, NULL, 'l'},
-@@ -267,6 +270,7 @@
- {"touch", no_argument, NULL, 'm'},
- {"uncompress", no_argument, NULL, 'Z'},
- {"ungzip", no_argument, NULL, 'z'},
-+ {"unlink", no_argument, NULL, 'U'},
- {"unlink-first", no_argument, NULL, 'U'},
- {"update", no_argument, NULL, 'u'},
- {"use-compress-program", required_argument, NULL, USE_COMPRESS_PROGRAM_OPTION},
-@@ -320,7 +324,8 @@
- -W, --verify attempt to verify the archive after writing it\n\
- --remove-files remove files after adding them to the archive\n\
- -k, --keep-old-files don't overwrite existing files when extracting\n\
-- -U, --unlink-first remove each file prior to extracting over it\n\
-+ -U, --unlink-first remove each file prior to extracting (default)\n\
+ {"old-archive", no_argument, 0, 'o'},
+ {"one-file-system", no_argument, 0, 'l'},
+@@ -266,6 +268,7 @@
+ {"touch", no_argument, 0, 'm'},
+ {"uncompress", no_argument, 0, 'Z'},
+ {"ungzip", no_argument, 0, 'z'},
++ {"unlink", no_argument, 0, 'U'},
+ {"unlink-first", no_argument, 0, 'U'},
+ {"update", no_argument, 0, 'u'},
+ {"use-compress-program", required_argument, 0, USE_COMPRESS_PROGRAM_OPTION},
+@@ -327,6 +330,7 @@
+ --overwrite overwrite existing files when extracting\n\
+ --overwrite-dir overwrite directory metadata when extracting\n\
+ -U, --unlink-first remove each file prior to extracting over it\n\
+ --no-unlink-first don't remove each file prior to extracting\n\
--recursive-unlink empty hierarchies prior to extracting directory\n\
-S, --sparse handle sparse files efficiently\n\
-O, --to-stdout extract files to standard output\n\
-@@ -487,6 +492,7 @@
+@@ -510,6 +514,7 @@
owner_option = -1;
group_option = -1;
-+ unlink_first_option = 1;
++ old_files_option = UNLINK_FIRST_OLD_FILES;
backup_suffix_string = getenv ("SIMPLE_BACKUP_SUFFIX");
- version_control_string = getenv ("VERSION_CONTROL");
-@@ -780,6 +786,10 @@
+
+@@ -843,6 +848,10 @@
case 'U':
- unlink_first_option = 1;
+ old_files_option = UNLINK_FIRST_OLD_FILES;
+ break;
+
+ case NO_UNLINK_FIRST_OPTION:
-+ unlink_first_option = 0;
++ old_files_option = 0;
break;
case 'v':
diff --git a/archivers/gtar-base/patches/patch-ac b/archivers/gtar-base/patches/patch-ac
deleted file mode 100644
index 4fb8caa8f49..00000000000
--- a/archivers/gtar-base/patches/patch-ac
+++ /dev/null
@@ -1,30 +0,0 @@
-$NetBSD: patch-ac,v 1.2 1999/09/18 14:52:24 kim Exp $
-
---- intl/xopen-msg.sed.orig Mon Apr 7 00:28:52 1997
-+++ intl/xopen-msg.sed Fri Aug 14 19:18:49 1998
-@@ -81,6 +81,8 @@
- G
- s/^[^\n]*$/& /
- s/\(.*\)\n\([0-9]*\)/\2 \1/
-+# Change escaped quotes into regular quotes.
-+ s/\\*"/"/g
- # Clear flag from last substitution.
- tb
- # Append the next line.
-@@ -90,12 +92,16 @@
- s/\(.*\n\)"\(.*\)"/\1\2/
- # Yes, then branch.
- ta
-+# Comment out if no message exists.
-+ s/^\([0-9]* *\n\)/$ \1/
- P
- D
- # Note that `D' includes a jump to the start!!
- # We found a continuation line. But before printing insert '\'.
- :a
- s/\(.*\)\(\n.*\)/\1\\\2/
-+# Change escaped quotes into regular quotes.
-+ s/\\*"/"/g
- P
- # We cannot use the sed command `D' here
- s/.*\n\(.*\)/\1/
diff --git a/archivers/gtar-base/patches/patch-ad b/archivers/gtar-base/patches/patch-ad
index 90179926b10..9c7afe76cf6 100644
--- a/archivers/gtar-base/patches/patch-ad
+++ b/archivers/gtar-base/patches/patch-ad
@@ -1,22 +1,13 @@
-$NetBSD: patch-ad,v 1.4 2002/08/25 21:49:08 jlam Exp $
+$NetBSD: patch-ad,v 1.5 2002/11/20 16:57:55 bouyer Exp $
---- configure.orig Fri Apr 25 16:03:34 1997
-+++ configure Fri Sep 17 23:08:21 1999
-@@ -4255,7 +4255,7 @@
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- CATOBJEXT=.mo
-- DATADIRNAME=lib
-+ DATADIRNAME=${PKGLOCALEDIR}
- fi
- rm -f conftest*
- INSTOBJEXT=.mo
-@@ -4509,7 +4509,7 @@
- USE_INCLUDED_LIBINTL=yes
- CATOBJEXT=.cat
- INSTOBJEXT=.cat
-- DATADIRNAME=lib
-+ DATADIRNAME=${PKGLOCALEDIR}
- INTLDEPS="../intl/libintl.a"
- INTLLIBS=$INTLDEPS
- LIBS=`echo $LIBS | sed -e 's/-lintl//'`
+--- configure.orig Wed Sep 26 22:32:51 2001
++++ configure Sun Nov 17 18:28:49 2002
+@@ -11495,7 +11495,7 @@
+ nls_cv_header_intl=
+ nls_cv_header_libgt=
+
+- DATADIRNAME=share
++ DATADIRNAME=${PKGLOCALEDIR}
+
+ INSTOBJEXT=.mo
+
diff --git a/archivers/gtar-base/patches/patch-ae b/archivers/gtar-base/patches/patch-ae
index cfa2d83fae4..90ca861f880 100644
--- a/archivers/gtar-base/patches/patch-ae
+++ b/archivers/gtar-base/patches/patch-ae
@@ -1,21 +1,21 @@
-$NetBSD: patch-ae,v 1.3 2001/12/27 21:50:57 agc Exp $
+$NetBSD: patch-ae,v 1.4 2002/11/20 16:57:55 bouyer Exp $
---- Makefile.in.orig Fri Apr 25 20:21:57 1997
-+++ Makefile.in Thu Dec 27 16:28:31 2001
-@@ -102,9 +102,15 @@
-
- AUTOMAKE_OPTIONS = gnits dist-shar
+--- Makefile.in.orig Wed Sep 26 22:35:05 2001
++++ Makefile.in Sun Nov 17 18:32:32 2002
+@@ -102,10 +102,15 @@
+ rmt_LDADD = @rmt_LDADD@
+ tar_LDADD = @tar_LDADD@
+OPSYS!= uname -s
-+
- BABYL = rmail/* admin/*/RMAIL
- EXTRA_DIST = AC-PATCHES AM-PATCHES BI-PATCHES PORTS rebox.el
--SUBDIRS = doc lib intl src scripts po tests
+ AUTOMAKE_OPTIONS = gnits dist-bzip2 dist-shar
+ ACLOCAL_AMFLAGS = -I m4
+ EXTRA_DIST = ChangeLog.1 PORTS
+-SUBDIRS = doc intl lib m4 src scripts po tests
+.if ${OPSYS} == "Darwin"
-+SUBDIRS = lib intl src scripts tests
++SUBDIRS = intl lib m4 src scripts tests
+.else
-+SUBDIRS = lib intl src scripts po tests
++SUBDIRS = intl lib m4 src scripts po tests
+.endif
+ subdir = .
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
- CONFIG_HEADER_IN = config.h.in
- CONFIG_HEADER_FULL = config.h
+ mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
diff --git a/archivers/gtar-base/patches/patch-af b/archivers/gtar-base/patches/patch-af
new file mode 100644
index 00000000000..cf2e85e49ce
--- /dev/null
+++ b/archivers/gtar-base/patches/patch-af
@@ -0,0 +1,35 @@
+$NetBSD: patch-af,v 1.1 2002/11/20 16:57:55 bouyer Exp $
+This is based on, tar-dots.patch from RedHat tar-1.13.25-4.7.1.src.rpm, and
+http://www.security.nnov.ru/files/archive/tar-1.13.19.patch
+
+--- src/misc.c.orig Mon Nov 11 15:09:06 2002
++++ src/misc.c Mon Nov 11 15:14:34 2002
+@@ -203,17 +203,25 @@
+ {
+ char const *p = name + FILESYSTEM_PREFIX_LEN (name);
+
++ if (ISSLASH (*p)) return 1;
+ for (;;)
+ {
+- if (p[0] == '.' && p[1] == '.' && (ISSLASH (p[2]) || !p[2]))
++ if (p[0] == '.' && p[1] == '.' && (!p[2] || ISSLASH (p[2])))
+ return 1;
+
+ do
+ {
+- if (! *p++)
++ if (! *p)
+ return 0;
+ }
+- while (! ISSLASH (*p));
++ while (! ISSLASH (*p++));
++
++ do
++ {
++ if (! *p++)
++ return 0;
++ }
++ while ( ISSLASH (*p));
+ }
+ }
+
diff --git a/archivers/gtar-base/patches/patch-ag b/archivers/gtar-base/patches/patch-ag
new file mode 100644
index 00000000000..f276b9178b9
--- /dev/null
+++ b/archivers/gtar-base/patches/patch-ag
@@ -0,0 +1,76 @@
+$NetBSD: patch-ag,v 1.1 2002/11/20 16:57:55 bouyer Exp $
+This include tar-1.13.19-absolutenames.patch, from RedHat tar-1.13.25-4.7.1.src.rpm
+
+--- src/extract.c.orig Sun Nov 17 18:35:32 2002
++++ src/extract.c Sun Nov 17 18:35:09 2002
+@@ -180,7 +180,11 @@
+ mode = current_stat_info->st_mode ^ invert_permissions;
+ }
+
++#if (defined (__NetBSD__) && NetBSD > 199706 && !defined(NetBSD1_2))
++ if (lchmod (file_name, mode) != 0)
++#else
+ if (chmod (file_name, mode) != 0)
++#endif
+ chmod_error_details (file_name, mode);
+ }
+
+@@ -216,7 +220,12 @@
+ {
+ struct utimbuf utimbuf;
+
++#if !(defined (__NetBSD__) && NetBSD > 199706 && !defined(NetBSD1_2))
+ if (typeflag != SYMTYPE)
++#else
++ struct timeval tv[2];
++#endif
++
+ {
+ /* We do the utime before the chmod because some versions of utime are
+ broken and trash the modes of the file. */
+@@ -229,6 +238,7 @@
+
+ /* FIXME: incremental_option should set ctime too, but how? */
+
++#if !(defined (__NetBSD__) && NetBSD > 199706 && !defined(NetBSD1_2))
+ if (incremental_option)
+ utimbuf.actime = stat_info->st_atime;
+ else
+@@ -237,6 +247,16 @@
+ utimbuf.modtime = stat_info->st_mtime;
+
+ if (utime (file_name, &utimbuf) < 0)
++#else
++ if (incremental_option)
++ tv[0].tv_sec = stat_info->st_atime;
++ else
++ tv[0].tv_sec = start_time;
++ tv[0].tv_usec = 0;
++ tv[1].tv_sec = stat_info->st_mtime;
++ tv[1].tv_usec = 0;
++ if (lutimes (file_name, tv) < 0)
++#endif
+ utime_error (file_name);
+ else
+ {
+@@ -1019,10 +1039,19 @@
+ {
+ struct stat st1, st2;
+ int e;
++ size_t skiplinkcrud;
++
++ if (absolute_names_option)
++ skiplinkcrud = 0;
++ else {
++ skiplinkcrud = FILESYSTEM_PREFIX_LEN (current_link_name);
++ while (ISSLASH (current_link_name[skiplinkcrud]))
++ skiplinkcrud++;
++ }
+
+ /* MSDOS does not implement links. However, djgpp's link() actually
+ copies the file. */
+- status = link (current_link_name, CURRENT_FILE_NAME);
++ status = link (current_link_name + skiplinkcrud, CURRENT_FILE_NAME);
+
+ if (status == 0)
+ {