summaryrefslogtreecommitdiffstats
path: root/source/a/tar
diff options
context:
space:
mode:
Diffstat (limited to 'source/a/tar')
-rw-r--r--source/a/tar/rmt.8217
-rw-r--r--source/a/tar/slack-desc19
-rw-r--r--source/a/tar/tar-1.13.bzip2.diff48
-rw-r--r--source/a/tar/tar-1.22-support_txz.diff11
-rw-r--r--source/a/tar/tar.1368
-rwxr-xr-xsource/a/tar/tar.SlackBuild145
-rw-r--r--source/a/tar/tar.nolonezero.diff25
-rw-r--r--source/a/tar/tar.norecordsizespam.diff20
8 files changed, 853 insertions, 0 deletions
diff --git a/source/a/tar/rmt.8 b/source/a/tar/rmt.8
new file mode 100644
index 000000000..86d2cf92f
--- /dev/null
+++ b/source/a/tar/rmt.8
@@ -0,0 +1,217 @@
+.\" Copyright (c) 1983, 1991 The Regents of the University of California.
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\" 3. All advertising materials mentioning features or use of this software
+.\" must display the following acknowledgement:
+.\" This product includes software developed by the University of
+.\" California, Berkeley and its contributors.
+.\" 4. Neither the name of the University nor the names of its contributors
+.\" may be used to endorse or promote products derived from this software
+.\" without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" @(#)rmt.8 6.5 (Berkeley) 3/16/91
+.\"
+.Dd March 16, 1991
+.Dt RMT 8
+.Os BSD 4.2
+.Sh NAME
+.Nm rmt
+.Nd remote magtape protocol module
+.Sh SYNOPSIS
+.Nm rmt
+.Sh DESCRIPTION
+.Nm Rmt
+is a program used by the remote dump and restore programs
+in manipulating a magnetic tape drive through an interprocess
+communication connection.
+.Nm Rmt
+is normally started up with an
+.Xr rexec 3
+or
+.Xr rcmd 3
+call.
+.Pp
+The
+.Nm rmt
+program accepts requests specific to the manipulation of
+magnetic tapes, performs the commands, then responds with
+a status indication. All responses are in
+.Tn ASCII
+and in
+one of two forms.
+Successful commands have responses of:
+.Bd -filled -offset indent
+.Sm off
+.Sy A Ar number No \en
+.Sm on
+.Ed
+.Pp
+.Ar Number
+is an
+.Tn ASCII
+representation of a decimal number.
+Unsuccessful commands are responded to with:
+.Bd -filled -offset indent
+.Sm off
+.Xo Sy E Ar error-number
+.No \en Ar error-message
+.No \en
+.Xc
+.Sm on
+.Ed
+.Pp
+.Ar Error-number
+is one of the possible error
+numbers described in
+.Xr intro 2
+and
+.Ar error-message
+is the corresponding error string as printed
+from a call to
+.Xr perror 3 .
+The protocol is comprised of the
+following commands, which are sent as indicated - no spaces are supplied
+between the command and its arguments, or between its arguments, and
+.Ql \en
+indicates that a newline should be supplied:
+.Bl -tag -width Ds
+.Sm off
+.It Xo Sy \&O Ar device
+.No \en Ar mode No \en
+.Xc
+Open the specified
+.Ar device
+using the indicated
+.Ar mode .
+.Ar Device
+is a full pathname and
+.Ar mode
+is an
+.Tn ASCII
+representation of a decimal
+number suitable for passing to
+.Xr open 2 .
+If a device had already been opened, it is
+closed before a new open is performed.
+.It Xo Sy C Ar device No \en
+.Xc
+Close the currently open device. The
+.Ar device
+specified is ignored.
+.It Xo Sy L
+.Ar whence No \en
+.Ar offset No \en
+.Xc
+.Sm on
+Perform an
+.Xr lseek 2
+operation using the specified parameters.
+The response value is that returned from the
+.Xr lseek
+call.
+.Sm off
+.It Sy W Ar count No \en
+.Sm on
+Write data onto the open device.
+.Nm Rmt
+reads
+.Ar count
+bytes from the connection, aborting if
+a premature end-of-file is encountered.
+The response value is that returned from
+the
+.Xr write 2
+call.
+.Sm off
+.It Sy R Ar count No \en
+.Sm on
+Read
+.Ar count
+bytes of data from the open device.
+If
+.Ar count
+exceeds the size of the data buffer (10 kilobytes), it is
+truncated to the data buffer size.
+.Nm rmt
+then performs the requested
+.Xr read 2
+and responds with
+.Sm off
+.Sy A Ar count-read No \en
+.Sm on
+if the read was
+successful; otherwise an error in the
+standard format is returned. If the read
+was successful, the data read is then sent.
+.Sm off
+.It Xo Sy I Ar operation
+.No \en Ar count No \en
+.Xc
+.Sm on
+Perform a
+.Dv MTIOCOP
+.Xr ioctl 2
+command using the specified parameters.
+The parameters are interpreted as the
+.Tn ASCII
+representations of the decimal values
+to place in the
+.Ar mt_op
+and
+.Ar mt_count
+fields of the structure used in the
+.Xr ioctl
+call. The return value is the
+.Ar count
+parameter when the operation is successful.
+.It Sy S
+Return the status of the open device, as
+obtained with a
+.Dv MTIOCGET
+.Xr ioctl
+call. If the operation was successful,
+an ``ack'' is sent with the size of the
+status buffer, then the status buffer is
+sent (in binary).
+.El
+.Sm on
+.Pp
+Any other command causes
+.Nm rmt
+to exit.
+.Sh DIAGNOSTICS
+All responses are of the form described above.
+.Sh SEE ALSO
+.Xr rcmd 3 ,
+.Xr rexec 3 ,
+.Xr mtio 4 ,
+.Xr rdump 8 ,
+.Xr rrestore 8
+.Sh BUGS
+People tempted to use this for a remote file access protocol
+are discouraged.
+.Sh HISTORY
+The
+.Nm
+command appeared in
+.Bx 4.2 .
diff --git a/source/a/tar/slack-desc b/source/a/tar/slack-desc
new file mode 100644
index 000000000..573b89013
--- /dev/null
+++ b/source/a/tar/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+tar: tar (archiving utility)
+tar:
+tar: This is the GNU version of tar, an archiving program designed to store
+tar: and extract files from an archive file known as a tarfile. A tarfile
+tar: may be made on a tape drive, however, it is also common to write a
+tar: tarfile to a normal file.
+tar:
+tar: Slackware's package system uses tarfiles compressed with GNU gzip.
+tar:
+tar:
+tar:
diff --git a/source/a/tar/tar-1.13.bzip2.diff b/source/a/tar/tar-1.13.bzip2.diff
new file mode 100644
index 000000000..85c03368c
--- /dev/null
+++ b/source/a/tar/tar-1.13.bzip2.diff
@@ -0,0 +1,48 @@
+--- ./src/tar.c.orig Wed Jul 7 00:49:50 1999
++++ ./src/tar.c Fri Jul 30 23:00:13 1999
+@@ -16,6 +16,8 @@
+ with this program; if not, write to the Free Software Foundation, Inc.,
+ 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+
++/* Patched to integrate bzip2 as compression filter (option -j) */
++
+ #include "system.h"
+
+ #include <getopt.h>
+@@ -164,6 +166,8 @@
+ {"block-number", no_argument, NULL, 'R'},
+ {"block-size", required_argument, NULL, OBSOLETE_BLOCKING_FACTOR},
+ {"blocking-factor", required_argument, NULL, 'b'},
++ {"bzip2", required_argument, NULL, 'j'},
++ {"bunzip2", required_argument, NULL, 'j'},
+ {"catenate", no_argument, NULL, 'A'},
+ {"checkpoint", no_argument, &checkpoint_option, 1},
+ {"compare", no_argument, NULL, 'd'},
+@@ -340,6 +344,7 @@
+ PATTERN at list/extract time, a globbing PATTERN\n\
+ -o, --old-archive, --portability write a V7 format archive\n\
+ --posix write a POSIX conformant archive\n\
++ -j, --bzip2, --bunzip2 filter the archive through bzip2\n\
+ -z, --gzip, --ungzip filter the archive through gzip\n\
+ -Z, --compress, --uncompress filter the archive through compress\n\
+ --use-compress-program=PROG filter through PROG (must accept -d)\n"),
+@@ -416,7 +421,7 @@
+ Y per-block gzip compression */
+
+ #define OPTION_STRING \
+- "-01234567ABC:F:GK:L:MN:OPRST:UV:WX:Zb:cdf:g:hiklmoprstuvwxz"
++ "-01234567ABC:F:GK:L:MN:OPRST:UV:WX:Zb:cdf:g:hijklmoprstuvwxz"
+
+ static void
+ set_subcommand_option (enum subcommand subcommand)
+@@ -787,6 +792,10 @@
+ if (add_exclude_file (excluded, optarg, '\n') != 0)
+ FATAL_ERROR ((0, errno, "%s", optarg));
+ break;
++
++ case 'j':
++ set_use_compress_program_option ("bzip2");
++ break;
+
+ case 'z':
+ set_use_compress_program_option ("gzip");
diff --git a/source/a/tar/tar-1.22-support_txz.diff b/source/a/tar/tar-1.22-support_txz.diff
new file mode 100644
index 000000000..5104f5639
--- /dev/null
+++ b/source/a/tar/tar-1.22-support_txz.diff
@@ -0,0 +1,11 @@
+diff -Nur tar-1.22.orig/src/suffix.c tar-1.22/src/suffix.c
+--- tar-1.22.orig/src/suffix.c 2009-03-05 01:04:13.000000000 -0600
++++ tar-1.22/src/suffix.c 2009-05-06 15:59:10.695985191 -0500
+@@ -41,6 +41,7 @@
+ { S(tlz, lzma) },
+ { S(lzo, lzop) },
+ { S(xz, xz) },
++ { S(txz, xz) },
+ #undef S
+ };
+
diff --git a/source/a/tar/tar.1 b/source/a/tar/tar.1
new file mode 100644
index 000000000..1d7e02faf
--- /dev/null
+++ b/source/a/tar/tar.1
@@ -0,0 +1,368 @@
+.\" @(#)tar.1 1.11.1 93/19/22 PJV;
+.TH TAR 1 "22 September 1993"
+.SH NAME
+tar \- The GNU version of the tar archiving utility
+.SH SYNOPSIS
+.B tar
+[
+.B \-
+]
+.B A --catenate --concatenate \||\| c --create \||\| d --diff --compare \||\| r --append \||\| t --list \||\| u --update \||\| x -extract --get
+[
+.B --atime-preserve
+]
+[
+.B -b, --block-size N
+]
+[
+.B -B, --read-full-blocks
+]
+[
+.B -C, --directory DIR
+]
+[
+.B --checkpoint
+]
+[
+.B -f, --file [HOSTNAME:]F
+]
+[
+.B --force-local
+]
+[
+.B -F, --info-script F --new-volume-script F
+]
+[
+.B -G, --incremental
+]
+[
+.B -g, --listed-incremental F
+]
+[
+.B -h, --dereference
+]
+[
+.B -i, --ignore-zeros
+]
+[
+.B -j, --bzip2
+]
+[
+.B --ignore-failed-read
+]
+[
+.B -k, --keep-old-files
+]
+[
+.B -K, --starting-file F
+]
+[
+.B -l, --one-file-system
+]
+[
+.B -L, --tape-length N
+]
+[
+.B -m, --modification-time
+]
+[
+.B -M, --multi-volume
+]
+[
+.B -N, --after-date DATE, --newer DATE
+]
+[
+.B -o, --old-archive, --portability
+]
+[
+.B -O, --to-stdout
+]
+[
+.B -p, --same-permissions, --preserve-permissions
+]
+[
+.B -P, --absolute-names
+]
+[
+.B --preserve
+]
+[
+.B -R, --record-number
+]
+[
+.B --remove-files
+]
+[
+.B -s, --same-order, --preserve-order
+]
+[
+.B --same-owner
+]
+[
+.B --numeric-owner
+]
+[
+.B -S, --sparse
+]
+[
+.B -T, --files-from F
+]
+[
+.B --null
+]
+[
+.B --totals
+]
+[
+.B -v, --verbose
+]
+[
+.B -V, --label NAME
+]
+[
+.B --version
+]
+[
+.B -w, --interactive, --confirmation
+]
+[
+.B -W, --verify
+]
+[
+.B --exclude FILE
+]
+[
+.B -X, --exclude-from FILE
+]
+[
+.B -Z, --compress, --uncompress
+]
+[
+.B -z, --gzip, --ungzip
+]
+[
+.B --use-compress-program PROG
+]
+[
+.B --block-compress
+]
+[
+.B -[0-7][lmh]
+]
+.TP
+.I filename1 [ filename2, ... filenameN ]
+.TP
+.I directory1 [ directory2, ...directoryN ]
+.SH DESCRIPTION
+.LP
+This manual page documents the GNU version of
+.B tar
+, an archiving program designed to store and extract files from
+an archive file known as a
+.IR tarfile.
+A
+.IR tarfile
+may be made on a tape drive, however, it is also common
+to write a
+.IR 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 EXAMPLES
+.TP
+.B tar -xvvf foo.tar
+extract foo.tar
+.TP
+.B tar -xvvzf foo.tar.gz
+extract gzipped foo.tar.gz
+.TP
+.B tar -cvvf foo.tar foo/
+tar contents of folder foo in foo.tar
+.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 N
+block size of Nx512 bytes (default N=20)
+.TP
+.B -B, --read-full-blocks
+reblock as we read (for reading 4.2BSD pipes)
+.TP
+.B -C, --directory DIR
+change to directory DIR
+.TP
+.B --checkpoint
+print directory names while reading the archive
+.TP
+.B -f, --file [HOSTNAME:]F
+use archive file or device F (default "-", meaning stdin/stdout)
+.TP
+.B --force-local
+archive file is local even if has a colon
+.TP
+.B -F, --info-script F --new-volume-script F
+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 F
+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
+filter archive through bzip2, use to decompress .bz2 files
+.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 F
+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 N
+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 DATE, --newer DATE
+only store files newer than DATE
+.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 --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 --numeric-owner
+always use numbers for user/group names
+.TP
+.B -S, --sparse
+handle sparse files efficiently
+.TP
+.B -T, --files-from F
+get names to extract or create from file F
+.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 NAME
+create archive with volume name NAME
+.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 FILE
+exclude file FILE
+.TP
+.B -X, --exclude-from FILE
+exclude files listed in FILE
+.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 PROG
+filter the archive through PROG (which must accept -d)
+.TP
+.B --block-compress
+block the output of compression program for tapes
+.TP
+.B -[0-7][lmh]
+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/source/a/tar/tar.SlackBuild b/source/a/tar/tar.SlackBuild
new file mode 100755
index 000000000..43181ccbe
--- /dev/null
+++ b/source/a/tar/tar.SlackBuild
@@ -0,0 +1,145 @@
+#!/bin/sh
+
+# Copyright 2005-2009 Patrick J. Volkerding, Sebeka, MN, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+# Slackware build script for tar
+
+VERSION=1.22
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-2}
+
+NUMJOBS=${NUMJOBS:--j7}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-tar
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+elif [ "$ARCH" = "s390" ]; then
+ SLKCFLAGS="-O2"
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+fi
+
+# This old version is the only one that won't clobber symlinks, e.g.:
+# someone moves /opt to /usr/opt and makes a symlink. With newer
+# versions of tar, installing any new package will remove the /opt
+# symlink and plop down a new directory there.
+# Well, there's a lot of other bugs (the remote stuff particularly I'm
+# told is flaky) in tar-1.13, so it'll only be here now for use by the
+# Slackware package utils. And, we'll even let people remove it and
+# the pkgutils will still try to work (but eventually they'll pay the
+# price :)
+cd $TMP
+rm -rf tar-1.13
+tar xvf $CWD/tar-1.13.tar.gz || exit 1
+cd tar-1.13 || exit 1
+zcat $CWD/tar-1.13.bzip2.diff.gz | patch -p1 --verbose || exit 1
+# The original config.{guess,sub} do not work on x86_64
+cp -p /usr/share/libtool/config.{guess,sub} .
+chown -R root:root .
+CFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --disable-nls \
+ --build=$ARCH-slackware-linux
+make $NUMJOBS || make || exit 1
+mkdir -p $PKG/bin
+cat src/tar > $PKG/bin/tar-1.13
+chmod 0755 $PKG/bin/tar-1.13
+# End building of tar-1.13
+
+cd $TMP
+rm -rf tar-$VERSION
+tar xvf $CWD/tar-$VERSION.tar.bz2 || exit 1
+cd tar-$VERSION || exit 1
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+# Don't spew "Record size = foo blocks" messages:
+zcat $CWD/tar.norecordsizespam.diff.gz | patch -p1 --verbose || exit 1
+
+# The "A lone zero block at %s" messages also cause problems:
+zcat $CWD/tar.nolonezero.diff.gz | patch -p1 --verbose || exit 1
+
+# Add support for *.txz files (our packages)
+zcat $CWD/tar-1.22-support_txz.diff.gz | patch -p1 --verbose || exit1
+
+CFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --infodir=/usr/info \
+ --docdir=/usr/doc/tar-$VERSION \
+ --enable-backup-scripts \
+ --build=$ARCH-slackware-linux
+
+make $NUMJOBS || make || exit 1
+make install DESTDIR=$PKG || exit 1
+
+( cd $PKG
+ find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+ find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+)
+
+mv $PKG/usr/bin/tar $PKG/bin
+( cd $PKG/usr/bin ; ln -sf /bin/tar . )
+( cd $PKG/bin ; ln -sf tar tar-$VERSION )
+
+# Support "historic" rmt locations:
+mkdir -p $PKG/{etc,sbin}
+( cd $PKG/etc
+ ln -sf /usr/libexec/rmt .
+ cd $PKG/sbin
+ ln -sf /usr/libexec/rmt .
+)
+
+mkdir -p $PKG/usr/man/man{1,8}
+cat $CWD/tar.1.gz > $PKG/usr/man/man1/tar.1.gz
+cat $CWD/rmt.8.gz > $PKG/usr/man/man8/rmt.8.gz
+
+rm -f $PKG/usr/info/dir
+gzip -9 $PKG/usr/info/*
+
+mkdir -p $PKG/usr/doc/tar-$VERSION
+cp -a \
+ ABOUT-NLS AUTHORS COPYING NEWS PORTS README THANKS TODO \
+ $PKG/usr/doc/tar-$VERSION
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/tar-$VERSION-$ARCH-$BUILD.tgz
+
+# Clean up the extra stuff:
+if [ "$1" = "--cleanup" ]; then
+ rm -rf $TMP/tar-$VERSION
+ rm -rf $PKG
+fi
+
diff --git a/source/a/tar/tar.nolonezero.diff b/source/a/tar/tar.nolonezero.diff
new file mode 100644
index 000000000..3c6f6f97b
--- /dev/null
+++ b/source/a/tar/tar.nolonezero.diff
@@ -0,0 +1,25 @@
+--- ./src/list.c.orig 2004-05-10 04:49:09.000000000 -0700
++++ ./src/list.c 2004-06-06 13:13:23.000000000 -0700
+@@ -138,6 +138,14 @@
+
+ if (!ignore_zeros_option)
+ {
++
++ /*
++ * 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
+ char buf[UINTMAX_STRSIZE_BOUND];
+
+ status = read_header (false);
+@@ -145,6 +153,7 @@
+ break;
+ WARN ((0, 0, _("A lone zero block at %s"),
+ STRINGIFY_BIGINT (current_block_ordinal (), buf)));
++#endif
+ break;
+ }
+ status = prev_status;
diff --git a/source/a/tar/tar.norecordsizespam.diff b/source/a/tar/tar.norecordsizespam.diff
new file mode 100644
index 000000000..b7d1b7a9f
--- /dev/null
+++ b/source/a/tar/tar.norecordsizespam.diff
@@ -0,0 +1,20 @@
+--- ./src/buffer.c.orig 2009-03-05 01:04:13.000000000 -0600
++++ ./src/buffer.c 2009-03-09 20:17:50.000000000 -0500
+@@ -688,7 +688,7 @@
+ more = record_start->buffer + status;
+ left = record_size - status;
+
+- if (left && left % BLOCKSIZE == 0
++ /* if (left && left % BLOCKSIZE == 0
+ && verbose_option
+ && record_start_block == 0 && status != 0)
+ {
+@@ -698,7 +698,7 @@
+ "Record size = %lu blocks",
+ rsize),
+ rsize));
+- }
++ } */
+
+ while (left % BLOCKSIZE != 0
+ || (left && status && read_full_records))