summaryrefslogtreecommitdiffstats
path: root/lib/libarchive/archive.h
Commit message (Collapse)AuthorAgeFilesLines
* Use contrib sources for building libarchive, tar and cpio.mm2011-12-221-746/+0
| | | | | | Make "make test" fully operational. MFC after: 2 weeks
* Update libarchive, tar and cpio to version 2.8.5mm2011-12-201-4/+11
| | | | | | | | | | The following additional vendor revisions are applied: Revision 3740: Use archive_clear_error() to clear the error markers. Obtained from: http://code.google.com/p/libarchive MFC after: 2 weeks
* - Update libarchive to 2.8.4mm2011-07-171-3/+7
| | | | | | | | - Add support for extracting xar and rpm archives - Add libarchive_fe subdir (common code for tar and cpio) Approved by: kientzle MFC after: 2 weeks
* Clarify the naming: Methods that free an object shouldkientzle2010-11-051-14/+12
| | | | | be called "free". Retain the old "finish" names to preserve source compatibility for now.
* Reserve constants for RPM unwrapper and XAR reader.kientzle2009-12-301-0/+2
|
* Libarchive in FreeBSD is now synced up with 2.7.901a fromkientzle2009-12-301-2/+2
| | | | libarchive.googlecode.com
* UU decoder. Now that libarchive can recursively taste input streams,kientzle2009-12-301-0/+2
| | | | you can do things like this: tar xvf archive.tar.gz.uu
* Zip write support for libarchive.kientzle2009-12-291-0/+1
| | | | | The initial implementation was developed by Anselm Strauss as part of Google Summer of Code 2008, then completed by Joerg Sonnenberger.
* New archive_file_count() utility.kientzle2009-12-281-0/+1
|
* Portability fixes.kientzle2009-12-281-5/+14
|
* Merge r990,r1044 from libarchive.googlecode.com:kientzle2009-04-271-0/+2
| | | | | | | | | read_support_format_raw() allows people to exploit libarchive's automatic decompression support by simply stubbing out the archive format handler. The raw handler is not enabled by support_format_all(), of course. It bids 1 on any non-empty input and always returns a single entry named "data" with no properties set.
* Publicize a handful of new functions and bump the version numberkientzle2009-04-171-5/+17
| | | | | to indicate that this is synchronized with the recent libarchive 2.7.0 release.
* Merge from libarchive.googlecode.com: Mostly a bunch ofkientzle2009-04-121-2/+2
| | | | | | | | | | | | | corrections to the Windows support to reconcile differences between Visual Studio and Cygwin. Includes parts of revisions 757, 774, 787, 815, 817, 819, 820, 844, and 886. Of particular note, r886 overhauled the UTF-8/Unicode conversions to work correctly regardless of whether the local system uses 16-bit or 32-bit wchar_t. (I assume that systems with 16-bit wchar_t use UTF-16 and those with 32-bit wchar_t use UCS-4.) This revision also added a preference for wcrtomb() (which is thread-safe) on platforms that support it.
* Set version to 2.6.901a to indicate this now matcheskientzle2009-03-081-2/+3
| | | | | libarchive.googlecode.com r745. (Except for the lzma/xz support, which needs a little more attention before it can be merged.)
* Merge r540 from libarchive.googlecode.com: Interix doesn't have inttypes.hkientzle2009-03-071-2/+2
| | | | either. <sigh>
* Merge r550,584,587,609,647,674 from libarchive.googlecode.com:kientzle2009-03-071-0/+3
| | | | | | | | | | | | Refactor the read_compression_program to add two new abilities: * Public API: You can now include a signature string when you register a program; the program will run only on input that matches the signature string. * Internal API: You can use the init() function to instantiate an external program as part of a filter pipeline. This can be used for graceful fallback (if zlib is unavailable, use external gzip instead) and to use external programs with bidders that are more sophisticated than a static signature check.
* Merge r491,493,500,507,510,530,543 from libarchive.googlecode.com:kientzle2009-03-061-0/+27
| | | | | This implements the new generic options framework that provides a way to override format- and compression-specific parameters.
* Merge r399,401,402,405,415,430,440,452,453,458,506,533,536,538,544,590kientzle2009-03-061-0/+35
| | | | | | | | | | | | | | | from libarchive.googlecode.com: Add a new "archive_read_disk" API that provides the important service of reading metadata from the disk. In particular, this will make it possible to remove all knowledge of extended attributes, ACLs, etc, from clients such as bsdtar and bsdcpio. Closely related, this API also provides pluggable uid->uname and gid->gname lookup and caching services similar to the uname->uid and gname->gid services provided by archive_write_disk. Remember this is also required for correct ACL management. Documentation is still pending...
* Merge r344 from libarchive.googlecode.com: __LA_INT64_T and __LA_SSIZE_Tkientzle2009-03-051-3/+6
| | | | | are part of the public API and therefore need to be exposed. This is ugly; I'd like to find a better solution for this.
* Merge r294:337,r348:350 from libarchive.googlecode.com: A lotkientzle2009-03-031-1/+5
| | | | of work to make libarchive work on Windows.
* Style fixes:kientzle2008-12-061-29/+71
| | | | | | | | | | | | | | * Wrap long declarations to fit 80 chars * #undef macros that shouldn't be exported * Organize the version-dependent conditionals a bit more consistently Speculative: * libarchive 3.0 will (eventually) use int64_t instead of off_t. This is an attempt to avoid some the headaches caused by Linux LFS. (I'll still have to do ugly things for the struct stat references in archive_entry.h, of course.)
* MfP4: Generalize int64_t in the public headers to support compilerskientzle2008-09-181-3/+5
| | | | which have a 64-bit integer type but don't provide standard C99 definitions.
* Trying to distinguish different "versions" of mtree files was a silly idea.kientzle2008-09-181-2/+0
| | | | Submitted by: Joerg Sonnenberger
* New mtree writer, thanks to Joerg Sonnenberger.kientzle2008-08-311-0/+1
| | | | Obtained from: Joerg Sonnenberger
* libarchive in FreeBSD-CURRENT is now synched with libarchive-portable 2.5.5.kientzle2008-07-051-2/+2
|
* archive.h is no longer constructed from archive.h.in,kientzle2008-06-151-0/+592
| | | | | so we can rename it and drop some no-longer-necessary build magic from the Makefile.
* libarchive now has two complete build systems. The usual "Makefile"kientzle2004-08-071-309/+0
| | | | | | | | | | | | | | is present for FreeBSD. If you "make distfile" on FreeBSD, you will soon have a tar.gz file suitable for deploying to other systems (complete with the expected "configure" script, etc). This latter relies (at least for now) on the GNU auto??? tools. (I like autoconf okay, but someday I hope to write a custom Makefile.in and dispense with automake, which is somewhat odious.) As part of this, I've cleaned up some of the conditional compilation options, added make-foo to construct archive.h dynamically (it now contains some version constants), and added some useful informational files.
* Add some functions to query basic facts about the library:kientzle2004-07-241-6/+24
| | | | | | | | | | | | | | | archive_version: Returns a text string, e.g., "libarchive 1.00.000" archive_api_version: Returns the SHLIB major version archive_api_feature: Returns a feature number useful for answering questions such as "Is this recent enough to do XXX?" The last two also have macros defined in archive.h, so you can compare the compile-time and run-time environments. (In particular, you can compare ARCHIVE_API_VERSION to archive_api_version() to detect library version mismatches.) With these in hand, it will soon be time to turn on the shared-library version of libarchive... stay tuned.
* More cleanup work on permissions restore:kientzle2004-06-271-0/+2
| | | | | | | | | | | | | * Rename some variables/functions/etc to try to make things clearer. * Add separate flags to control fflag/acl restore * Collect metadata restore into a single function for clarity * Propagate errors in metadata restore back out to the client * Fix some places where errors were being returned when they shouldn't and vice-versa * Modes are now always restored; ARCHIVE_EXTRACT_PERM just controls whether or not umask is obeyed. * Restore suid/sgid bits only if user/group matches archive * Cache the last stat results to try to reduce the number of stat calls
* Read gtar-style sparse archives.kientzle2004-06-271-3/+3
| | | | | | | This change also pointed out one API deficiency: the archive_read_data_into_XXX functions were originally defined to return the total bytes read. This is, of course, ambiguous when dealing with non-contiguous files. Change it to just return a status value.
* Linux (at least Debian) requires sys/types.h to get off_t.kientzle2004-06-071-0/+1
|
* Refactor read_data:kientzle2004-06-021-0/+8
| | | | | | | | | | | * New read_data_block is both sparse-file aware and uses zero-copy semantics * Push read_data_block down into specific formats (opens door to various encoded entry bodies, such as zip or gtar -S) * Reimplement read_data, read_data_skip, read_data_into_fd in terms of new read_data_block. * Update documentation It's unfortunate that I couldn't just call the new interface archive_read_data, but didn't want to upset the API that much.
* Add prototypes for .Z compression support.kientzle2004-05-271-0/+2
|
* Add hook for a client-provided progress callback to be invokedkientzle2004-05-131-0/+2
| | | | during lengthy extract operations.
* Consistify: #define gets 1 tab character afterwardskientzle2004-05-031-6/+6
| | | | Pointed out by: Simon Nielsen
* Add statistics: track offset in compressed and uncompressed archive,kientzle2004-04-281-0/+5
| | | | provide an interface for the client to query this information.
* Overhauled ACL support. This makes us compatiblekientzle2004-04-051-3/+3
| | | | | | | | | | | | with 'star' ACL handling, though there's still a bit more work needed in this area. Added 'write_open_fd' and 'read_open_fd' to simplify, e.g., tar's u and r modes. Eliminated old 'write_open_file_position' as a bad idea. (It required closing/reopening files to do updates, which led to unpleasant implications.) Various other minor fixes, API tweaks, etc.
* Many fixes:kientzle2004-03-191-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Disabled shared-library building, as some API breakage is still likely. (I didn't realize it was turned on by default.) If you have an existing /usr/lib/libarchive.so.2, I recommend deleting it. * Pax interchange format now correctly stores and reads UTF8 for extended attributes. In particular, pax format can portably handle arbitrarily long pathnames containing arbitrary characters. * Library compiles cleanly at -O2, -O3, and WARNS=6 on all FreeBSD-CURRENT platforms. * Minor portability improvements inspired by Juergen Lock and Greg Lewis. (Less reliance on stdint.h, isolating of various portability-challenged constructs.) * archive_entry transparently converts multi-byte <-> wide character strings, allowing clients and format handlers to deal with either one, as appropriate. * Support for reading 'L' and 'K' entries in standard tar archives for star compatibility. * Recognize (but don't yet handle) ACL entries from Solaris tar. * Pushed format-specific data for format readers down into format-specific storage and out of library-global storage. This should make it easier to maintain individual formats without mucking with the core library management. * Documentation updates to track the above changes. * Updates to tar.5 to correct a few mistakes and add some additional information about GNU tar and Solaris tar formats. Notes: * The basic 'tar' reader is getting more general; there's not much point in keeping the 'gnutar' reader separate. Merging the two would lose a bunch of duplicate code. * The libc ACL support is looking increasingly inadequate for my needs here. I might need to assemble some fairly significant code for parsing and building ACLs. <sigh>
* Many fixes.kientzle2004-03-091-0/+14
| | | | | | | | | | | | | | | | Portability: Thanks to Juergen Lock, libarchive now compiles cleanly on Linux. Along the way, I cleaned up a lot of error return codes and reorganized some code to simplify conditional compilation of certain sections. Bug fixes: * pax format now actually stores filenames that are 101-154 characters long. * pax format now allows newline characters in extended attributes (this fixes a long-standing bug in ACL handling) * mtime/atime are now restored for directories * directory list is now sorted prior to fix-up to permit correct restore of non-writable dir heirarchies
* Remove last evidence of a long-dead function.kientzle2004-03-061-9/+0
|
* Add ARCHIVE_EXTRACT_UNLINK option to permit clients tokientzle2004-03-061-0/+1
| | | | | control how archive_extract handles pre-existing files. (Not implemented yet, but documented.)
* Initial import of libarchive.kientzle2004-02-091-0/+266
What it is: A library for reading and writing various streaming archive formats, especially tar and cpio. Being a library, it should be easy to incorporate into pkg_* tools, sysinstall, and any other place that needs to read or write such archives. Features: * Full automatic detection of both compression and archive format. * Extensible internal architecture to make it easy to add new formats. * Support for "pax interchange format," a new POSIX-standard tar format that eliminates essentially all of the restrictions of historic formats. * BSD license Thanks to: jkh for pushing me to start this work, gordon for encouraging me to commit it, bde for answering endless style questions, and many others for feedback and encouragement. Status: Pretty good overall, though there are still a few rough edges and the library could always use more testing. Feedback eagerly solicited.
OpenPOWER on IntegriCloud