Many people have graciously sent me configuration
files, small programs that use libarchive, and other
useful and interesting tidbits.

I do not support or use any of these; but if you can use them, enjoy!

======================================================================

From: Andre Stechert <andre@splunk.com>

libarchive_autodetect-st_lib_archive.m4

M4 macros for use with autoconf to detect whether a suitable
version of libarchive is installed on this system.


======================================================================

libarchive.spec

An RPM ".spec" file for building libarchive on most systems.
This apparently was originally developed by a group at pld-linux.org.
Several people have sent me different versions of this file.

======================================================================

From: Robert Meier <rm1023@dcx.com>

libarchive.1aix53.spec

As above, for use on AIX5.3.

======================================================================

psota-benchmark

Some scripts used by Jan Psota in benchmarking
various tar implementations.

I've edited his results slightly to correctly reflect that
bsdtar does not support a "compare" operation.

======================================================================

shar

A simple shar program written on top of libarchive.

======================================================================

untar.c

A very simple and very portable standalone program that can
extract basic ustar archives.
This does not use libarchive and so can be used to extract
the libarchive distribution on any system that has a C compiler
but does not have a tar program.

======================================================================
