PAX - Portable Archive Interchange

Copyright (C) 1989 Mark H. Colburn
All Rights Reserved.


Introduction

    This is version 2.0 of Pax, an archiving utility.

    Pax is an archiving utility that reads and writes tar and cpio formats,
    both the traditional ones and the extended formats specified in IEEE
    1003.1.  It handles multi-volume archives and automatically determines
    the format of an archive while reading it.  Three user interfaces are
    supported: tar, cpio, and pax.  The pax interface was designed by IEEE
    1003.2 as a compromise in the chronic controversy over which of tar or
    cpio is best.

    The Pax utility is being distributed free of charge and may be
    redistributed by others in either source or binary form.  (See the
    liscensing section for restrictions)

    The source for Pax has been posted to comp.sources.unix on USENET and
    will also be available by anonymous FTP on the Internet from uunet.uu.net,
    moon.src.honeywell.com and from ucb-arpa.berkeley.edu.  The source
    to Pax is also available via anonymous UUCP from minnetech.mn.org, the
    author's home machine and possibly other sites.

    The source for Pax will continue to change as long as the definition of
    the utility is modified by the 1003.2 working group.  (For example,
    there are a number of changes in Draft 8 which will be incorporated as
    soon as Draft 8 is available).  Additional modifications will be made
    based on user input, such as request for support of additional archive
    formats, etc.  Patches and new releases will be made as new functionality
    is added or problems are diagnosed and fixed.


Installation

    In order to install Pax, you must run the Configure script.
    In addition, if your systems does not have at least a somewhat POSIX
    compliant <limits.h>, then you may have to tweak some of the values in
    limits.h.

Portability

    Pax is intended to run on as many systems as possible.  If you have
    problems getting Pax to compile or run on your system, please let me
    know so that the source or the installation procedure can be modified.

    Pax has been tested and appears to run correctly on the following
    machines:

        Machine                 Operating System/Release
	---------------------------------------------------
	Altos 586		System III (2.3)
	AT&T UNIX PC		System V.2 (Release 3.51)
        Convergent S/320	CTIX/68k 6.1, UNIX SysV 3.1
        Convergent S/80		CTIX/68k 6.1, UNIX SysV 3.1
	Cray 2			UNICOS
	Encore CC		02.00.r088
	HP 9000			HP/UX 6.0.1
        IBM PC/AT		Microport SV/AT V2.4
	Mac II 			A/UX 1.0
	NCR Tower		System V.2
	Pyramid			AT&T and Berkeley universe
	Sequent Symetry		Dynix 3.0
	SGI Iris 4D/60G		UNIX 3.0
	SGI Iris 4D/70G		UNIX 3.0
	SCO Xenix 386 		2.3.2
	SCO Unix 386 		3.2
	Sun 2			SunOS 3.4
	Sun 2			SunOS 3.5
	Sun 3			SunOS 3.4
	Sun 3			SunOS 3.5
	Sun 3			SunOS 4.0
	Sun 4			SunOS 4.0
	VAX 8750		BSD 4.3 (Mt. Xinu)
	VAX 8650		BSD 4.3 (Mt. Xinu)
	VAX 780			BSD 4.3 (Berkeley)
	---------------------------------------------------

    In future releases, the source will be moving toward ANSI C and POSIX
    compatibility.  This should allow for portability over any system
    supporting both ANSI and POSIX.  In addition, POSIX/ANSI portability
    library routines will be developed which will allow the code to run on
    the standard machines available now.


DOS stuff:

    It has been tested only with the Microsoft C V5.1 compiler.  It
    supports both the DOS filesystem and the "tape on a disk" system
    used by micro UN*X systems.  This will allow for easy transfer of
    files to and from UN*X systems.  To get TAR.EXE and CPIO.EXE just
    copy PAX.EXE to TAR.EXE and CPIO.EXE.  To use the "tape on a disk"
    feature give an archive filename of "a:dio" or "b:dio" (dio stands
    for direct I/O) for floppy drives "a" and "b".  This program will
    support any media supported by DOS, but you MUST do a DIR on an
    MSDOS formatted disk at the density you want to use before using
    PAX, TAR, or CPIO with direct I/O.  Note that the direct I/O
    destroys the logical structure of the disk.  Multiple volumes and
    the tar append option are supported.

    The problems with forward and backward slashes have been fixed.
    Note that this is a 3 in 1 program.  PAX.EXE may be renamed to
    TAR.EXE or CPIO.EXE to get that default funcionality. Since
    MSDOS 2.X does not report the file name to the program, those
    users will have to use the pax interface (which is the default) as
    described in pax.man. Note that both tar and cpio archives can
    be accessed through the pax interface. True dos character device
    support (eg. a tape drive with a character device driver,
    inspired by John B. Theil) has been added, but is only available
    when the archive filename is supplied on the command line (not
    stdin-stdout).

    This program does not do ANY translation on data files OR file
    names other than changing backslashes to forward slashes and
    uppercase to lowercase in the file names when writing an archive
    on an MSDOS machine.

    Examples:

    Using direct i/o on a floppy with tar.exe (a:dio and b:dio are special)

        1) Put high or low density MSDOS formatted floppy in drive "a".
        2) Do a DIR (this is a required step)
        3) Remove the floppy
        4) Put a floppy in drive "a" with the same density as step 1
        5) tar cvf "a:dio" .

    Using direct i/o on a floppy with cpio.exe (a:dio and b:dio are special)

        1) Put high or low density MSDOS formatted floppy in drive "a".
        2) Do a DIR (this is a required step)
        3) Remove the floppy
        4) Put a floppy in drive "a" with the same density as step 1
        5) find . -print | cpio -ocvBD "a:dio"

    Using direct i/o on a floppy with pax.exe and the tar archive format
    (a:dio and b:dio are special)

        1) Put high or low density MSDOS formatted floppy in drive "a".
        2) Do a DIR (this is a required step)
        3) Remove the floppy
        4) Put a floppy in drive "a" with the same density as step 1
        5) pax -w -b 20 -f "a:dio" -x ustar .

    Using tar.exe within the MSDOS filesystem (the filename does not matter)
    Will not destroy the logical structure of the disk.  Similarly for
    cpio.exe and pax.exe.

        1) Put high or low density MSDOS formatted floppy in drive "a".
        2) tar cvf "a:whatever.tar" .

    Using tar.exe within the MSDOS filesystem to a character device like a
    tape drive.

        1) Put tape in tape drive
        2) tar cvf "/dev/tape" .


Credit Where Credit is Due

    Parts of the code which makes up Pax were gleaned from a number of
    different sources: the directory access routines in ./dirent/ are
    copies of Doug Gwyn's dirent library; some of the tar archive
    routines were initially written by John Gilmore for his PDTAR;
    Harold Walters provided the basis for the MSDOS support and
    finally afio, written by Mark Brukhartz at Lachman Associates, was
    the basis for the buffering schemes used in pax.


Licensing

    Copyright (c) 1989 Mark H. Colburn.
    All rights reserved.

    Redistribution and use in source and binary forms are permitted
    provided that the above copyright notice is duplicated in all such
    forms and that any documentation, advertising materials, and other
    materials related to such distribution and use acknowledge that the
    software was developed by Mark H. Colburn.

    THE SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
    IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.

Please report any bug or problems to:

Mark Colburn
Open Systems Architects, Inc.
7555 Marketplace Drive
Eden Prairie, MN 55344

mark@minnetech.MN.ORG
