Files
android_bootable_recovery/libtar
James Christopher Adduono 6f57f7c601 Merge code from upstream libtar + bug fixes
All updates and fixes applied from upstream libtar as of
March 1, 2016.

Debug flag is disabled, however non-debug output now
provides 1 line of useful output per object extracted.

I've also merged some fixes from CyanogenMod's
fork of libtar:

From: Tom Marshall <tdm@cyngn.com>
Date: Thu, 11 Feb 2016 16:24:40 -0800
Subject: libtar: Cleanup, secure, and extend numeric fields
Commit: e18b457ea1cbf6be1adc3b75450ed1c737cd82ea

From: Tom Marshall <tdm@cyngn.com>
Date: Thu, 11 Feb 2016 12:49:30 -0800
Subject: libtar: Make file sizes 64-bit clean
Commit: e628c2025549a24018bc568351465130a05daafb

From: Tom Marshall <tdm@cyngn.com>
Date: Thu, 17 Apr 2014 09:39:25 -0700
Subject: libtar: Add methods for in-memory files
Commit: 8ec5627a8ff0a91724c6d5b344f0e887da922527

From: Tom Marshall <tdm@cyngn.com>
Date: Wed, 2 Jul 2014 09:34:40 -0700
Subject: libtar: Fix hardlink extract
Commit: 166d83a51e0c51abcea37694dbd7df92d03c1f56

From: philz-cwm6 <phytowardt@gmail.com>
Date: Sat, 26 Apr 2014 01:11:35 +0200
Subject: libtar: Various bug fixes and enhancements
Commit: a271d763e94235ccee9ecaabdb52bf4b9b2f8c06
(Some of this was not merged in, as better solutions were
available from upstream libtar)

From: Tom Marshall <tdm@cyngn.com>
Date: Wed, 9 Apr 2014 09:35:54 -0700
Subject: libtar: Add const qualifiers to reduce compile warnings
Commit: 0600afa19fe827d06d3fcf24a7aabd52dbf487b4

Change-Id: I6d008cb6fdf950f835bbed63aeb8727cc5c86083
2016-03-02 13:04:11 -06:00
..
2014-11-04 08:49:09 -06:00

libtar - C library for manipulating tar files
======

libtar is a library for manipulating tar files from within C programs.
Here are some of its features:

  * Handles both POSIX tar file format and the GNU extensions.
  * API provides functions for easy use, such as tar_extract_all().
  * Also provides functions for more granular use, such as 
    tar_append_regfile().


Installation
------------

To build libtar, you should be able to simply run these commands:

   ./configure
   make
   make install


Encap Package Support
---------------------

To build this software as an Encap package, you can pass the
--enable-encap option to configure.  This will be automatically
enabled if the epkg or mkencap programs are detected on the system,
but can be overridden by the --disable-encap option.

When building an Encap package, the configure script will automatically
adjust the installation prefix to use an appropriate Encap package
directory.  It does this using a heuristic algorithm which examines the
values of the ${ENCAP_SOURCE} and ${ENCAP_TARGET} environment variables
and the argument to configure's --prefix option.

If mkencap was detected on the system, it will be automatically run during
"make install".  By default, epkg will also be run, but this can be
inhibited with the --disable-epkg-install configure option.

For information on the Encap package management system, see the WSG
Encap Archive:

   http://www.encap.org/


zlib Support
------------

The configure script will attempt to find the zlib library on your system
for use with the libtar driver program.  The zlib package is available from:

   http://www.gzip.org/zlib/

If zlib is installed on your system, but you do not wish to use it,
specify the --without-zlib option when you invoke configure.


More Information
----------------

For documentation of the libtar API, see the enclosed manpages.  For more
information on the libtar package, see:

   http://www-dev.cites.uiuc.edu/libtar/

Source code for the latest version of libtar will be available there, as
well as Encap binary distributions for many common platforms.


Supported Platforms
-------------------

I develop and test libtar on the following platforms:

   AIX 4.3.3 and 5.1
   HP-UX 11.00
   IRIX 6.5
   RedHat Linux 7.2
   Solaris 8 and 9

It should also build on the following platforms, but I do not actively
support them:

   AIX 3.2.5
   AIX 4.2.1
   Cygwin
   FreeBSD
   HP-UX 10.20
   Linux/libc5
   OpenBSD
   Solaris 2.5
   Solaris 2.6
   Solaris 7

If you successfully build libtar on another platform, please email me a
patch and/or configuration information.


Compatibility Code
------------------

libtar depends on some library calls which are not available or not
usable on some platforms.  To accomodate these systems, I've included
a version of these calls in the compat subdirectory.

I've slightly modified these functions for integration into this source
tree, but the functionality has not been modified from the original
source.  Please note that while this code should work for you, I didn't
write it, so please don't send me bug reports on it.


Author
------

Feedback and bug reports are welcome.

Mark D. Roth <roth@uiuc.edu>
Campus Information Technologies and Educational Services
University of Illinois at Urbana-Champaign