Skip to content
(old) `tar' and `pax' utilities
C C++ Other
Find file
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


* README file for `paxutils'				allout -*- outline -*-

  Here is version 2.4g for Free `pax' utilities.  Glance through this
  `README' file before starting configuration.  Make sure you read files
  `ABOUT-NLS' and `INSTALL' if you are not familiar with them already.

  The canonical distribution point for this version is either:

  yet the second URL (the FTP one) might disappear one day.  GNU mirrors
  usually hold a copy of non-pretest releases, the canonical distribution
  points for last such releases (before the merge occurred) are:

.* Introduction

. + Presentation

    The `paxutils' tools, which manage archives of files, are `cpio',
    `pax' and `tar'.  They can save many files together into a single tape
    or disk archive, and can restore individual files from the archive.
    They collectively include multivolume support, the ability to archive
    sparse files, automatic archive compression and decompression, remote
    archives, and special features allow for incremental and full backups.

    `cpio' supports the features of the System V release 4 `cpio',
    including support for `tar' archives.  The included `tar' is derived
    from John Gilmore's public domain `tar'.

    This package also includes `rmt', the remote tape server, and `mt', a
    tape drive control program; these two programs will only be compiled if
    your system supports remote command execution, and tape drive control
    operations, respectively.

. + See files

	ABOUT-NLS   how to customise this program to your language
	BACKLOG     summary of pending mail and articles
	COPYING     copying conditions
	INSTALL     compilation and installation instructions
	NEWS        major changes in the current release
	README.dos  how to build `paxutils' for MS-DOS or MS-Windows
	THANKS      partial list of contributors

. + Configure options

    The default archive devices are `stdin' on read and `stdout' on write.
    The installer can still override this by presetting `DEFAULT_ARCHIVE'
    in the environment before configuring (the behaviour of `-[0-7]'
    or `-[0-7]lmh' options in `tar' are then derived automatically).
    Similarly, `DEFAULT_BLOCKING' can be preset to something else than 20.

    Besides those configure options documented in files `INSTALL' and
    `ABOUT-NLS', a few extra options may be accepted after `./configure':

.  - `--with-included-malloc', `--without-included-malloc'

     to override the automatic choice made by `configure' about using
     included GNU malloc.

.  - `--with-dmalloc'

     to trigger a debugging feature for looking at memory management
     problems, it pre-requires Gray Watson's package, which is available as

. + Maintenance tools

    For comprehensive modifications to `paxutils', you might need tools
    beyond those used in simple installations.  If not done already, get:          + PATCHES-AC             + PATCHES-BI

    Do not forget applying the `*-PATCHES' files (all officious)
    appropriately.  Make sure GNU `m4' is fully installed before you start
    installing Autoconf.  Have Perl installed before Automake.

. + Mailing lists and collaboration

    If you feel like receiving releases and pretest announcements for
    the `paxutils' package (formerly `cpio' or `tar'), send a message to having, in its body, a line saying:

	subscribe paxutils-announce

    If you rather want to participate actively in discussions, pretesting
    and development for `paxutils', do just as above, but this time, use:

	subscribe paxutils-forum

    Look into for various
    releases, pretests, and related files.  In particular, subdirectory
    `dist/' contains a weekly mirror of the current unpackaged work files,
    while subdirectory `rmail/' contains saved or pending correspondence.

    Please do _not_ widely redistribute releases having a letter after
    the version numbers, as these are meant for pretesting only, and might
    not be stable enough for other usages.

. + Report addresses

    Send bug reports to `'.  A bug report is
    an adequate description of the problem: your input, what you expected,
    what you got, and why this is wrong.  Diffs are welcome, but they only
    describe a solution, from which the problem might be uneasy to infer.
    If needed, submit actual data files with your report.  Small data
    files are preferred.  Big files may sometimes be necessary, but do not
    send them to the report address; rather take special arrangement with
    the maintainer.

    Your feedback will help us to make a better and more portable package.
    Consider documentation errors as bugs, and report them as such.  If you
    develop anything usefully related or have suggestions, let us know
    and share your findings by writing at `'.

.* Installation hints

   Here are a few hints which might help installing `paxutils' on some
   systems.  Many may be applied by temporary presetting environment
   variables while calling `./configure'.  File `INSTALL' explains this.

. + Static linking

    Some platform will, by default, prepare smaller program executable
    which depends on shared libraries.  Since these tools may have to be
    used for system-level backups and disaster recovery, system builders and
    integrators might prefer forcing static linking, which might result in
    a bigger executable, but able to work standalone, in situations where
    shared libraries are not available.  The way to achieve static linking
    varies between systems.  Set LDFLAGS to a value from the table below,
    before configuration (see `INSTALL').

	Platform	Compiler	LDFLAGS

	(any)		Gnu C		-static
	AIX		(vendor)	"-bnso -bI:/lib/syscalls.exp"
	HPUX		(vendor)	-Wl,-a,archive
	IRIX		(vendor)	-non_shared
	OSF		(vendor)	-non_shared
	SCO 3.2v5	(vendor)	-dn
	Solaris		(vendor)	-Bstatic
	SunOS		(vendor)	-Bstatic

    A few users manifested the wish that Linux packages, in particular,
    offer some kind of statically linked tools for emergency cases.

. + BSD compatibility matters

    Set LIBS to `-lbsd' before configuration (see `INSTALL') if the linker
    complains about undefined `valloc' (AIX) or `bsd_ioctl' (Slackware).
    Also set CPPFLAGS to `-I/usr/include/bsd/sys' before configuration to
    solve dirent problems (NeXT), or to `-I/usr/include/bsd' if <sgtty.h>
    is not found (Slackware).

. + `union wait' problems

    Configuration of `union wait' does not always take the best decision.
    If you have this problem, edit file `config.cache' after configuration,
    find the line about `tar_cv_header_union_wait', change `yes' by `no'
    or vice-versa, then reconfigure again without doing `make distclean'.

. + FreeBSD users -- `configure' fails

    It has been reported that `configure' does not run on FreeBSD 2.1.7,
    because of a buggy `sh'.  It works using `bash', however.

. + ISC users -- `S_*' symbols undefined

    On ISC 4.1mu, POSIX environment, set CFLAGS to `-posix' and CPPFLAGS to
    `-D_SYSV3' before configuration (see `INSTALL').  This will trigger
    the definition of a few `S_' prefixed symbols from <sys/stat.h>.

. + Ultrix users -- broken `make'

    It seems that Ultrix make does not correctly handle shell commands
    having logical connectives in them.  Use `s5make' if you have it, try
    `PROG_ENV=SYSTEM_FIVE make' (works on Ultrix 4.4), or install GNU Make.

. + Failed tests

    It is expected that `make check' will fail a few tests if your
    environment if not fully Unix.  Here are a few more notes.

.  -

     In an NFS environment, lack of synchronisation between machine
     clocks might create difficulties to any tool comparing dates and
     file timestamps, like `tar' in incremental dumps.  This has been a
     recurrent problem in GNU Makefiles for the last few years.

.* Special topics

   Here are a few special matters about `paxutils', not related to build
   matters.  See previous section for such.

. + File attributes

    About *security*, it is probable that future releases of `tar' will
    have some behaviour changed.  There are many pending suggestions to
    choose from.  Today, extracting an archive not being `root', `tar' will
    restore suid/sgid bits on files, even if owned by the extracting user.
    `root' automatically gets a lot of special privileges, `-p' might
    later become required to get them.

    `tar' does not properly restore symlink attributes.  Various systems
    implement flavours of symbolic links showing different behaviour
    and properties.  We did not successfully sorted all these out yet.
    Currently, the `lchown' call will be used if available, but that's all.

. + POSIX compliance

    While the included `cpio' supports the final POSIX.1 "ustar" `tar'
    format, the included `tar' implements the 6th draft of the POSIX
    1003.1 `ustar' standard, which is different from the final standard.
    `cpio' knows to recognize the nonstandard "ustar" archives produced by
    `tar'.  This will be progressively corrected over the incoming years.

    Don't be mislead by the mere existence of the `--posix' option in
    `tar'.  This option will be more fully implemented in later releases
    for producing truly POSIX archives.  `paxutils' 3.0 will produce POSIX
    archives by default, but there is a long way before we get there.
    (If you look at the internals, don't take all the extensions you see
    for granted, as they are planned to change.)

. + What's next?

    The `BACKLOG' file shows a rather approximative priorisation of the
    many pending problems and suggestions.  Besides such pending problems
    and all other matters listed above, the cleanup will continue and
    extend to the general organisation of the code, so to better merge the
    `cpio' and `tar' algorithms, which were once fully separate.  We also
    want to address some long-awaited performance issues (for example:
    double buffering) or enhancements (for example: per-file compression).
Something went wrong with that request. Please try again.