tar/matching.c
* The following source files are in the public domain:
- tar/getdate.y
+ tar/getdate.c
* The build files---including Makefiles, configure scripts,
and auxiliary scripts used as part of the compile process---have
-On most Unix-like systems, you should be able to install libarchive
-and bsdtar using the following common steps:
+More complete build documentation is available on the libarchive
+Wiki: http://libarchive.googlecode.com/
+
+On most Unix-like systems, you should be able to install libarchive,
+bsdtar, and bsdcpio using the following common steps:
./configure
make
make install
configure script and other build files:
/bin/sh build/autogen.sh
+To create a distribution, please use the 'distcheck' target:
+ /bin/sh build/autogen.sh && ./configure && make distcheck
+
On non-Unix-like systems, use the "cmake" utility (available from
http://cmake.org/) to generate suitable build files for your platform.
Cmake requires the name of the directory containing CmakeLists.txt and
the "generator" to use for your build environment. For example, to
build with Xcode on Mac OS, you can use the following command:
cmake -G "Xcode" ~/libarchive-download-dir/
-
-
+The result will be appropriate makefiles, solution files, or project
+files that can be used with the corresponding development tool.
+See the libarchive Wiki or the cmake site for further documentation.
\ No newline at end of file
+++ /dev/null
-The following is a list of things I would like to see
-done with libarchive. It's sorted roughly in priority;
-more feasible and more often-requested items are higher
-on the list. If you think you have time to work on any
-of these, please let me know.
-
-* More compression options: Recent improvements to the
- read bidding system and external program support should
- make it very simple to add support for lzo, lzf, and
- many other command-line decompression programs.
- I've even written up a Wiki page describing how to
- do this.
-
-* cpio front-end. The basic bsdcpio front-end is now
- working. I'm looking for feedback about what additional
- features are necessary.
-
-* pax front-end. Once cpio is a little more stable, I plan
- to fork it as the basis of a pax front-end. The only really
- tricky part will be implementing the header-editing features
- from POSIX 2001 'pax', which will require some changes to
- the libarchive API.
-
-* libarchive on Windows. libarchive mostly builds cleanly
- on Windows and Visual Studio. Making this really clean
- requires reworking the public API to not use dev/ino; I
- think I know how to do this but could use advice from
- someone knowledgable about Windows file-management APIs.
-
-* Linux large-file/small-file dance. libarchive always
- builds with 64-bit off_t and stat structures; client programs
- don't always do this. Supporting client programs built
- with 32-bit off_t requires a little trickery. I know how
- to do this but haven't had time to work through it.
-
-* bsdtar on Windows. After libarchive is working on Windows,
- this should be much simpler. At worst, you can just disable
- features.
-
-* Writing tar sparse entries. The GNU "1.0" sparse format
- sucks a lot less than the old GNU sparse format, so I'm finally
- dropping my objections to sparse file writing. This requires
- extending archive_entry to support a block list, and will
- require extensive changes to bsdtar to generate block lists.
- The sparse read code will also need to put block lists into
- the entry so that archive-to-archive copies preserve sparseness.
-
-* ISO9660 writing. Writing ISO9660 requires two passes, and
- libarchive is a single-pass API. For ISO9660, you can hide
- that behind a temp file, though. Collect metadata in memory,
- append file bodies (properly padded to 2k sector boundaries)
- to a temp file, then format the directory section and copy
- the file data through at format close.
-
-* archive_read_disk: Currently, libarchive can generate a stream
- of entries from an archive file and can feed entries to an
- archive file or a directory. The missing corner is pulling
- entries from a directory. With that, libarchive can provide
- efficient bulk copy services for dir-to-dir, dir-to-archive,
- archive-to-dir, and archive-to-archive. Right now, the
- read-from-disk capabilities are handled in the client.
-
-* ISO9660 Level 3. ISO9660 Level 3 supports files over 4GB.
-
-* --split=<limit> option to bsdtar. This would watch the total output
- size and begin a new archive file whenever <next file size> +
- <total archive size> exceeded <limit>. Not as robust as
- GNU tar's ability to split an entry across archives, but still
- useful in many situations.
-
-* Filename matching extensions: ^ to anchor a pattern to the
- beginning of the file, [!...] negated character classes, etc.
documentation, and links to the libarchive mailing lists.
This distribution bundle includes the following components:
-
* libarchive: a library for reading and writing streaming archives
* tar: the 'bsdtar' program is a full-featured 'tar'
replacement built on libarchive
The following files in the top-level directory are used by the
'configure' script:
-
* Makefile.am, aclocal.m4, configure.ac
- used to build this distribution, only needed by maintainers
* Makefile.in, config.h.in
* bsdtar.1 explains the use of the bsdtar program
* bsdcpio.1 explains the use of the bsdcpio program
* libarchive.3 gives an overview of the library as a whole
- * archive_read.3, archive_write.3, and archive_write_disk.3 provide
- detailed calling sequences for the read and write APIs
+ * archive_read.3, archive_write.3, archive_write_disk.3, and
+ archive_read_disk.3 provide detailed calling sequences for the read
+ and write APIs
* archive_entry.3 details the "struct archive_entry" utility class
* archive_internals.3 provides some insight into libarchive's
internal structure and operation.
* libarchive-formats.5 documents the file formats supported by the library
- * cpio.5, mtree.5, and tar.5 provide detailed information about a
- variety of different archive formats, including hard-to-find details
- about modern cpio and tar variants.
+ * cpio.5, mtree.5, and tar.5 provide detailed information about these
+ popular archive formats, including hard-to-find details about
+ modern cpio and tar variants.
+The manual pages above are provided in the 'doc' directory in
+a number of different formats.
-You should also read the copious comments in "archive.h" and the source
-code for the sample "bsdtar" program for more details. Please let me know
-about any errors or omissions you find.
+You should also read the copious comments in "archive.h" and the
+source code for the sample programs for more details. Please let me
+know about any errors or omissions you find.
Currently, the library automatically detects and reads the following:
* gzip compression
* POSIX pax interchange format
* POSIX octet-oriented cpio
* SVR4 ASCII cpio
+ * POSIX octet-oriented cpio
* Binary cpio (big-endian or little-endian)
* ISO9660 CD-ROM images (with optional Rockridge or Joliet extensions)
* ZIP archives (with uncompressed or "deflate" compressed entries)
Notes about the library architecture:
* This is a heavily stream-oriented system. There is no direct
- support for in-place modification or random access and no intention
- of ever adding such support. Adding such support would require
- sacrificing a lot of other features, so don't bother asking.
+ support for in-place modification or random access.
* The library is designed to be extended with new compression and
archive formats. The only requirement is that the format be
readable or writable as a stream and that each archive entry be
- independent.
+ independent. There are articles on the libarchive Wiki explaining
+ how to extend libarchive.
* On read, compression and format are always detected automatically.