The following things have been done to PAX since the last revision
which was posted to the net:

* The paxdir.h and paxdir.c files have been removed.  I have opted
  instead to include Doug Gwyn's dirent package in a separate
  directory.  It is suggested that if you do not have the readdir(),
  seekdir(), telldir(), etc., then you should install Doug's directory
  library into your standard C library.  Too many packages these days
  need these routines.

* The source code has been more extensively documented.  The source
  code documentation and formatting style is the consistent throughout
  the code (amazing as it sounds) and all comments have been checked
  for correctness.

* The copyright information has changed slightly.  The USENIX
  Association supplied no support for this version of Pax, so they are
  not longer a copyright holder.  This will impact companies which are
  integrating Pax into their products.  The distribution of Pax in
  either source or binary forms are still permitted.

  For those that care, the copyright is identical to the Berkeley
  copyright notice (or was as of the last time Keith sent me a copy
  of Berkeley's copyright notice).

* The source has been put under Larry Wall's Metaconfig package.  This
  should make installation of Pax easier, especially on some of the
  more esoteric systems out there.  A number of new units have been
  developed to make porting the system using metaconfig work.  I have
  tested it one a wide variety of machines, but if there are problems,
  I would appreciate hearing about them.

* In the past versions, there were two slightly different interfaces
  depending on whether the target system was BSD or USG.  These
  differences have been removed so that there is only one interface.
  This will rectify problems with differing output depending on which
  machine Pax was compiled on.

* BSD tar had a problem extracting Pax archives because Pax was not
  appending a '/' to the end of directories which were archived.  Now
  all directories have the '/' added.  USG doesn't care if the '/'s
  are there or not.

* Pax failed to detect CPIO archives which were not written with the
  -c option.  Pax now recognizes standard cpio format files.

* File sizes were not getting correctly reported on 16 bit machines
  due to file size being interpretted as an int, rather than a long.
  The code has been reworked to allow for proper operation on 16-bit
  machines.

* All global identifiers now unique to 6 characters for ANSI
  compliance.

* Added debugging code which is selectable via compile options and
  command line.  The code for debugging came from Fred Fish's dbug
  library.  I have not included the entire dbug library, only the
  dbug.c and dbug.h files.  The rest of the library can be snarfed
  from the various source archives around the net.

* The AT&T Public Domain version of getopt is supplied for those
  systems which do not happen to have it in a C library.  Configure
  will determine if you have getopt(), and if not, will automatically
  use the supplied source code.

* Attempting to archive two files, one with name "tar-longlink" linked
  to another with a name exactly 100 character long, the regular file
  could not be archived because the name was said to be too long, and
  the linked file was archived as a regular file.  Posix says that
  when the "linkename" is longer than 99 character, the linked file is
  not to be archived.  Linknames that are longer than 99 characters
  are now not written in the archive, and the file is archived
  normally.

* The -m option for cpio was documented as applyint only to the -i and
  cases.  However, cpio -o by dfault used to lose the file
  modification times, but cpio -om would save the original file
  modification times in the archive.  Cpio -o now saves the
  modification time in the archive.

* When listing archives, files which were linked were not removed from
  link chain, causing erroneous "unseen link(s)" messages to be
  reported.

* Any printfs which use the stat field sb_size now use the "%ld"
  specification rather than the "%d" specification.

* Pax now properly determines old style cpio headers.

---- Beta Test Fixes ----

* Added missing declaration for symnam in list.c

* Configure now understands some of the intracacies of the HP 9000 series
  machines. [Johan Vromans]

* dbug is now more portable and tied to the pax configuration parameters.

* Added dio_to_binary() to msdos.c and fileio.c for true
  MSDOS character device driver (eg. a real tape drive) support.
  Only works with filename given on command line (not stdout).
  [Harold Walters]

* Fixed endless loop condition in outflush() in buffer.c
  when write returns 0 for end of volume.  [Harold Walters]

* Added ifdef'd include for mtio.h in append.c. [Harold Walters]

* Added check for MIN definition in pax.h [Harold Walters]

* Updated README for MSDOS stuff [Harold Walters]

* Configure now searches for major rather then makedev when determining
  which header major and minor are in.


Mark H. Colburn
Open Systems Architects, Inc.
