Tim Kientzle [Mon, 1 Feb 2010 05:51:37 +0000 (00:51 -0500)]
First step towards integrating Mac OS "copyfile" extension from Apple.
This part adds probes for the copyfile.h header, and adds a new command-line
option --disable-copyfile, which does nothing on non-MacOS systems.
Tim Kientzle [Mon, 1 Feb 2010 03:52:55 +0000 (22:52 -0500)]
Minor adjustments to the bsdtar.1 man page.
In particular:
* Downplay the "tape" aspect; few people use tar with tape drives any more.
* Document default device a bit more carefully.
* Update supported formats.
* Clarify the history of this implementation.
Tim Kientzle [Mon, 18 Jan 2010 17:55:30 +0000 (12:55 -0500)]
Return proper errors from archive_read_disk_entry_from_file() if
you're asked for information about a non-existent file.
Update cpio to actually use this properly to report errors for
nonexistent files and exit with a delayed error if there were
files that could not be read.
Fix memory leak in ISO reader.
Do not use a reference counter to decide to release a memory
used for struct file_info.
Release all memories of struct file_info at the end instead.
Tim Kientzle [Tue, 5 Jan 2010 16:44:20 +0000 (11:44 -0500)]
Fix a failing tar test: On some systems (certain Linux systems
with security features enabled), the default tar format chooses
to include pax extensions, which confuses the validation logic in
this test.
Tim Kientzle [Sun, 3 Jan 2010 21:25:38 +0000 (16:25 -0500)]
Issue 48: Instead of setting RUNTIME_OUTPUT_DIRECTORY separately for
each component, set CMAKE_RUNTIME_OUTPUT_DIRECTORY once at the
top and let each component inherit that implicitly. This allows
other projects that want to include libarchive to do so a little
more simply.
Tim Kientzle [Sun, 3 Jan 2010 06:02:40 +0000 (01:02 -0500)]
Remove some pre-libarchive-2.0 support, which is no longer necessary.
Prefill the copy buffer just once when we start, instead of refilling
it on every block request. This shaves about 8% off the total running
time of libarchive_test on my system.
Tim Kientzle [Sat, 2 Jan 2010 01:21:05 +0000 (20:21 -0500)]
After initializing a filter, we try to read from it to
verify that it's working (in particular, this gives early
error reporting when external decompression programs are
nonexistent or exit immediately). If this read failed,
we weren't properly cleaning up the just-initialized filter.
Since this is fatal, the easiest fix is to refactor the close()
handler and just release the entire filter chain.
Eliminate warnings on Visual Studio 10 W64.
On Win64, the size of 'int' is stil 4 bytes and the size of 'size_t'
is 8 bytes. A conversion from 'size_t' to 'int', causes warning
with compiling.
Brad King [Wed, 16 Dec 2009 13:52:05 +0000 (08:52 -0500)]
Isolate libxml header check
The check HAVE_LIBXML_XMLREADER_H should not use LA_CHECK_INCLUDE_FILE
because it sets CMAKE_REQUIRED_INCLUDES for only the one check. The
LA_CHECK_INCLUDE_FILE macro accumulates headers that exist for use in
future checks, but including libxml/xmlreader.h breaks later checks
because they do not set CMAKE_REQUIRED_INCLUDES. Instead we use
CHECK_INCLUDE_FILES directly for this check.
Brad King [Wed, 16 Dec 2009 13:32:27 +0000 (08:32 -0500)]
Create ENABLE_OPENSSL CMake option
This option tells libarchive whether to check for OpenSSL and use it.
We enable it by default since we previously did this unconditionally.
This provides the CMake equivalent to the --without-openssl option,
spelled as -DENABLE_OPENSSL=OFF. See issue #22.
Tim Kientzle [Mon, 14 Dec 2009 02:54:07 +0000 (21:54 -0500)]
Refactor the release-building scripts just a bit:
* bump-version.sh actually bumps the 'version' value
* clean.sh attempts to clean the local directory as thoroughly as possible
* autogen.sh runs clean.sh, edits the current version value into
configure.ac, archive.h, and archive_entry.h, re-runs autoconf/automake/etc,
and does a ./configure && make distcheck to verify the distribution on the
local system.
Tim Kientzle [Sun, 13 Dec 2009 23:30:00 +0000 (18:30 -0500)]
A few Cmake build improvements from Issue 48:
* Use the path holding the current file to make the build/cmake/*.cmake
files more independent
* Use CMAKE_CURRENT_SOURCE_DIR in the top-level CMakeLists.txt to locate
the macro files and the version file.
Tim Kientzle [Sat, 12 Dec 2009 23:40:49 +0000 (18:40 -0500)]
Cpio "odc" format limits the ino value to 18 bits. Previously, we
simply truncated larger values, which can lead to false collisions and
false hardlink detection, especially on filesystems such as NTFS that
use 64-bit ino values. Because of the risk, we must issue a warning
in this case, and the warnings have been creating problems for the
bsdcpio test suite.
In order to avoid this problem, map the incoming ino values to new ino
values. This allows us to store up to 256k distinct files without
risk of false hardlinks. The only drawback to this approach is the risk
of losing hardlinks when appending to existing archives.