Subject: CVS commit: pkgsrc/archivers/pax
To: None <>
From: Min Sik Kim <>
List: pkgsrc-changes
Date: 12/01/2005 03:00:01
Module Name:	pkgsrc
Committed By:	minskim
Date:		Thu Dec  1 03:00:01 UTC 2005

Modified Files:
	pkgsrc/archivers/pax: Makefile
	pkgsrc/archivers/pax/files: ar_io.c ar_subs.c buf_subs.c configure cpio.1 cpio.c extern.h
	    file_subs.c ftree.c getoldopt.c options.c pat_rep.c pax.1 pax.c
	    pax.h tables.c tables.h tar.1 tar.c tty_subs.c

Log Message:
Update pax to 20051108.  The previous version failed to handle the -X
option, which is used in print/teTeX3-texmf.  The only difference from
the pax in src is that tar does not support the --chroot option if
fchroot(2) is not available.

Major changes and bug fixes since 20040802:

PR/18759: FUKAUMI Naoki: pax/tar dot-dot handling broken
PR/18840: Frederick Bruckman:  Fix for PR/18663 incomplete pax symlink handling
This patch makes ``--insecure'' do something. Now if ``--insecure''
is not set (the default) we do a realpath(3) in all the pathnames
that we are trying to create and if either realpath fails, or the
path is outside our working directory, we print a warning and die.
This maybe too strict and might fail on valid archives that create
symlinks and directories in the wrong order.

PR/31923: Sergey Svishchev: pax-as-tar ignores -k, overwrites existing files
Fix from Onno van der Linden

PR/30132: Juan RP: tar --chroot refuses to extract files.
fchroot() changes the effective path, so we need to call updatepath().

Apply user supplied patterns first before applying actions for -A. This way pax
behavior WRT to patterns lines up with the example in the documentation
and how other implementations do it as well since -A is a non-standard
option/behavior. Fixes items noted in PR#23776

Add an option --chroot to tar.  Causes it to chroot(".") before doing
an extract.  With -h this will cause existing absolute symlinks to be treated
as relative to the current directory.
Helps sysinst handle existing symlinks in the target system.
Remove 'L' from the usage (got spilt into 'h' and 'H' many moons ago)
Add 'S' to usage, and put into correct place in options list.

PR/27213: Greg A. Woods: pax doesn't honour SIGPIPE when listing
But always exit, not just on SIGPIPE.

Properly handle "cpio" archives where the last hardlink includes the
data of a file. This fixes PR bin/26514.

PR/20228: Simon Burge: pax has problems reading a particular cpio archive
The problem here is that the archive is too short (< 512 bytes). The
buffer routines, try to read at least 512 bytes, even when we try to determine
what format file we have, which is wrong.

Don't leave arcn->org_name pointing to ftent->fts_path, if we being cpio
then ftent is freed just below.  Take a copy of the name and point org_name
at the copy.
Should fix PR/30627 (the fix in the PR will break pax and tar!)

PR/30167: J.T. Conklin: NetBSD tar does not support GNU tar --no-recursion flag

Fix from PR#29290. Properly terminate the cpio_longopts struct so an unknown
option doesn't run off the end and core dump

Fix broken cpio(1) option handling:
- "cpio -i -t" should list the contents of a file, not extract it.
- Don't extract a file when only option "-d" is given.
Patch supplied by Paul Ripke in PR bin/26513.

PR/27212: Greg A. Woods: Accept "-C <dirname>" inside filelists in addition
to "-C\n<dirname>".
But we are not making it the default output option as the patch suggests.

PR/19490: Julio Merino: Teach tar about --sparse, -S option.
Do it for cpio too.

PR/27208: Greg A. Woods: pax must call options() before using syswarn()
or tty_warn()

PR/20071: Perry Metzger: --extract handling is broken. This patch fixes
Perry's example.

To generate a diff of this commit:
cvs rdiff -r1.20 -r1.21 pkgsrc/archivers/pax/Makefile
cvs rdiff -r1.8 -r1.9 pkgsrc/archivers/pax/files/ \
    pkgsrc/archivers/pax/files/ar_io.c pkgsrc/archivers/pax/files/ftree.c \
cvs rdiff -r1.7 -r1.8 pkgsrc/archivers/pax/files/ar_subs.c \
    pkgsrc/archivers/pax/files/options.c pkgsrc/archivers/pax/files/pax.c
cvs rdiff -r1.5 -r1.6 pkgsrc/archivers/pax/files/buf_subs.c \
    pkgsrc/archivers/pax/files/extern.h \
    pkgsrc/archivers/pax/files/getoldopt.c \
cvs rdiff -r1.10 -r1.11 pkgsrc/archivers/pax/files/ \
cvs rdiff -r1.13 -r1.14 pkgsrc/archivers/pax/files/configure \
cvs rdiff -r1.2 -r1.3 pkgsrc/archivers/pax/files/cpio.1
cvs rdiff -r1.4 -r1.5 pkgsrc/archivers/pax/files/cpio.c \
    pkgsrc/archivers/pax/files/pat_rep.c pkgsrc/archivers/pax/files/pax.1 \
    pkgsrc/archivers/pax/files/tar.1 pkgsrc/archivers/pax/files/tty_subs.c
cvs rdiff -r1.3 -r1.4 pkgsrc/archivers/pax/files/tables.h
cvs rdiff -r1.9 -r1.10 pkgsrc/archivers/pax/files/tar.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.