* README file for GNU `tar'			allout -*- outline -*-

  Here is GNU `tar' 1.12.  Please glance through *all* sections of this
  `README' file before starting configuration.  Make sure you read files
  `ABOUT-NLS' and `INSTALL' if you are not familiar with them already.

  If you got this distribution in `shar' format, timestamps ought to be
  properly restored, do not ignore such complaints at `unshar' time.

.* Introduction
   ------------

. + Presentation

    GNU `tar' saves many files together into a single tape or disk archive,
    and can restore individual files from the archive.  It includes
    multivolume support, the ability to archive sparse files, automatic
    archive compression/decompression, remote archives and special
    features that allow `tar' to be used for incremental and full backups.
    This distribution also includes `rmt', the remote tape server.
    The `mt' tape drive control program is in the GNU `cpio' distribution.

    GNU `tar' is derived from John Gilmore's public domain `tar'.

. + 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
	PORTS      various ports of GNU tar to non-Unix systems
	NEWS       major changes in the current release
	THANKS     partial list of contributors

. + Configure options

    The default archive device is now `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
     `ftp://ftp.letters.com/src/dmalloc/dmalloc.tar.gz'.

. + Maintenance tools

    For comprehensive modifications to GNU tar, you might need tools beyond
    those used in simple installations.  If not done already get:

	ftp://i44ftp.info.uni-karlsruhe.de/pub/gnu/gettext-0.10.26.tar.gz
	ftp://gnu.org/pub/gnu/m4-1.4.tar.gz
	ftp://gnu.org/pub/gnu/perl-5.003.tar.gz
	ftp://gnu.org/pub/gnu/autoconf-2.12.tar.gz       + AC_PATCHES
	ftp://ftp.cygnus.com/pub/tromey/automake-1.1n.tar.gz     + AM_PATCHES
	ftp://gnu.org/pub/gnu/bison-1.25.tar.gz          + BI_PATCHES
	ftp://gnu.org/pub/gnu/tar-1.12.tar.gz

    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 (any version will do)
    before Automake.

. + Report addresses

    Send bug reports to `tar-bugs@iro.umontreal.ca'.  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 pertaining to `tar' or have suggestions, let us know
    and share your findings by writing at `tar-forum@iro.umontreal.ca'.

.* Installation hints
   ------------------

   Here are a few hints which might help installing `tar' on some systems.

. + Static linking

    Some platform will, by default, prepare a smaller `tar' executable
    which depends on shared libraries.  Since GNU `tar' may be used
    for system-level backups and disaster recovery, system builders
    and integrators might prefer forcing static linking, which might
    result in a bigger `tar' 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 tar 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 many tests if your
    environment if not fully Unix.  You need `/dev/null', file links,
    file timestamps, a working file permission system, etc.

.  - incremen.sh

     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.

.  - ignfail.sh

     In an AFS filesystem, permissions are not enforced on directories.
     Since `tar' succeeds where it is expected to fail, the test fails.

.* Special topics
   --------------

   Here are a few special matters about GNU `tar', 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 but owned by the extracting user.
    `root' automatically gets a lot of special privileges, `-p' might
    later become required to get them.

    GNU `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

    GNU `tar' implements the 6th draft of the POSIX 1003.1 `ustar'
    standard, which is different from the final standard.  This will be
    progressively corrected over the incoming few years.  Don't be mislead
    by the mere existence of the --posix option.  This option will be more
    fully implemented in later releases for producing truly POSIX archives.
    GNU tar 2.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
    the GNU extensions you see for granted, as they are planned to change.)

. + What's next?

    The `BACKLOG' file shows an approximative priorisation of the many
    pending problems and suggestions.  Besides pending problems and all
    other matters listed above, the cleanup is planned to continue and
    extend to the general organisation of the code, preparing a long time
    in advance for a possible merge of the `cpio' and `tar' distributions,
    into some common `paxutils'.  We also want to address some long-awaited
    performance issues (for example: double buffering) or enhancements
    (for example: per-file compression).
