| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Approved by: re
|
|
|
|
|
| |
available, stub out flags restore on platforms that don't support it,
update autoconf to probe for fchflags and lchflags support.
|
| |
|
|
|
|
| |
extern "C" declarations.
|
|
|
|
|
| |
in a few missing details. The example code here is now a complete,
functioning example program.
|
|
|
|
| |
archive_entry_ctime_nano()
|
|
|
|
|
|
|
|
|
| |
compiling on IRIX and Solaris. Remove the "archive_check_magic" macro
that existed only to provide __func__ to the underlying __archive_check_magic
function.
Thanks to: Darin Broady
MFC after: 14 days
|
|
|
|
| |
MFC after: 14 days
|
|
|
|
|
|
|
|
| |
from mode before using mode for extended attributes entry, copy
mtime/atime/ctime to extended attributes entry so it's a little more
clear that it corresponds to the like-named regular entry.
MFC after: 14 days
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
and restoring the metadata. In particular, the metadata-restore
functions now all accept a file descriptor and a pathname. If the
file descriptor is set and the platform supports the appropriate
syscall, restore the metadata through the file descriptor. Otherwise,
restore it through the pathname. This is complicated by varying
syscall support (FreeBSD has an fchmod(2) but no fchflags(2), for
example) and because non-file entries don't have an fd to use in
restoring attributes (for example, mknod(2) doesn't return a file
handle).
MFC after: 14 days
|
|
|
|
|
|
| |
Bug: docs/79318
Thanks to: Derek Tattersall
MFC after: 7 days
|
|
|
|
|
|
|
|
|
| |
(symlink or hardlink) is already set. Instead, it was always setting
the hardlink field. In particular, this caused GNU tar format long
symlinks to be interpreted as hardlinks.
Thanks to: Brooks Davis
MFC after: 7 days
|
|
|
|
| |
Thanks to: Greg Lewis, Juergen Lock, Jaakko Heinonen for reporting and testing
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
internal error if pax extended attributes were being generated. Being
< 255 characters, the first-pass path editing (to generate a
ustar-compatible name for the main entry) wouldn't occur, and the
second-pass path editing (to generate a ustar name for the pax
attributes entry) assumed the input was already < 245 chars.
The core problem here was using an abbreviated algorithm for the
second pass that relied on the first pass having already run. The
rewritten code is much simpler: It just uses the full path-shortening
algorithm for building both ustar pathnames. This way, the second
ustar pathname will always be short enough.
Thanks to: Mark Cammidge
Related to: bin/74385
|
|
|
|
|
|
|
| |
is still open, so close the file as soon as we've written the
file contents, before we attempt to restore metadata.
Thanks to: Kees Zeelenberg
|
|
|
|
| |
Thanks to: Juergen Lock
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Handles entries with compressed size >2GB (signed/unsigned cleanup)
* Handles entries with compressed size >4GB ("ZIP64" extension)
* Handles Unix extensions (ctime, atime, mtime, mode, uid, etc)
* Format-specific "skip data" override allows ZIP reader to skip
entries without decompressing them, which makes "tar -t"
a lot faster.
* Handles "length-at-end" entries generated by, e.g., "zip -r - foo"
Many thanks to: Dan Nelson, who contributed the code and test files for
the first three items above and suggested the fourth.
|
| |
|
|
|
|
|
| |
testing, I've archived and restored dir trees with ~1MB pathnames.
Most formats, of course, have much smaller limits.
|
|
|
|
|
| |
over 1MB), issue a warning instead of forcing an internal assertion
failure.
|
|
|
|
| |
reading cpio format.
|
| |
|
| |
|
|
|
|
|
|
| |
In particular, /dev/st0 can be added to an archive being written to /dev/st0.
Thanks to: Jaakko Heinonen
|
|
|
|
|
|
|
| |
In particular, this correctly allows bsdtar (and pkg_add) to skip
package signatures.
Thanks to: Theo Schlossnagle
|
| |
|
|
|
|
|
|
|
|
| |
return a generic text message instead.
(Someday, I'll track down all the places that
are generating errors but not recording messages. ;-/
Thanks to: Jaakko Heinonen
|
| |
|
|
|
|
|
|
| |
occurred with large read-ahead requests. This only affected
formats that incorrectly make large requests (ZIP did this until
recently) or with block sizes over 32k.
|
| |
|
|
|
|
| |
Thanks to: Ruslan
|
|
|
|
| |
This avoids having error messages get concatenated over multiple calls.
|
|
|
|
| |
Also remove some unnecessary blank lines from archive_read.3.
|
|
|
|
|
|
|
|
|
|
|
| |
When reading the bodies of Zip archive entries, request a minimum of 1
byte, rather than a minimum of the full entry size. This is faster
(since it does not force the decompression layer to combine reads) and
works around a bug in the "none" decompression handler (which I'm
testing a separate fix for now). I've also renamed "bytes_read" to
"bytes_avail" in several places to more accurately reflect that the
value returned from (a->compression_read_ahead) is the number of bytes
available, not necessarily the number of bytes requested.
|
|
|
|
|
|
|
|
|
|
|
|
| |
(padding) entries, extract inode value from PX entry, recognize SP and
ST (start/end of SUSP extensions).
I don't enforce SP yet, as I've seen CDROMs which use Rockridge
extensions but don't have the SP record (which is officially
required).
The ISO9660 support is now mature enough to extract FreeBSD
distribution CDROMs created with mkisofs.
|
|
|
|
|
|
|
| |
For example, when using 'gunzip | tar' to decompress.
Also, fix some style issues (write null character as '\0').
Thanks to: Jaakko Heinonen
|
| |
|
|
|
|
|
| |
Reported by: tinderbox
Pointy hat: me
|
|
|
|
|
|
|
| |
Only supports "deflate" and "none" compression for now.
Also, add a few clarifications to the archive_read.3 manpage as
requested by William Dean DeVries.
|
|
|
|
| |
Approved by: ru
|
|
|
|
|
| |
* ISO9660 CDROM images
* ISO9660 images with Rockridge extensions
|
| |
|
|
|
|
|
| |
(specifies that record is extended elsewhere on
the disk).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
for libarchive error messages. Mostly, this
avoids a portability headache related to
copying va_list arguments (some FreeBSD 5
platforms require va_copy; FreeBSD 4 doesn't
support va_copy at all). It also dramatically reduces the
size of libarchive for embedded applications:
a minimal "untar" program using libarchive can now be
under 64k statically linked (as opposed to ~100k
using library *printf() functions).
MFC after: 14 days
|
| |
|
|
|
|
|
| |
Also, add some hints to help people understand which
functions are most appropriate for typical uses.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
expand and clarify the description of the client
callback functions and how they should handle errors.
Thanks to: Antony Dovgal
|