Tim Kientzle
f70105fb18
MfP4: restore birth time data to disk + more thorough tests for
...
time restore to disk.
MFC after: 30 days
2008-09-30 04:02:36 +00:00
Tim Kientzle
155524db13
MfP4: Store/read birthtime data in pax format.
...
Submitted by: Pedro Giffuni
MFC after: 30 days
2008-09-30 03:57:07 +00:00
Tim Kientzle
8b18fa965d
MfP4: Support for storing birthtime in archive_entry objects.
...
Submitted by: Pedro Giffuni
MFC after: 30 days
2008-09-30 03:53:03 +00:00
Tim Kientzle
c42f5c226a
MfP4: Generalize int64_t in the public headers to support compilers
...
which have a 64-bit integer type but don't provide standard C99 definitions.
2008-09-18 04:19:06 +00:00
Tim Kientzle
a370f3ca73
Trying to distinguish different "versions" of mtree files was a silly idea.
...
Submitted by: Joerg Sonnenberger
2008-09-18 04:13:36 +00:00
Tim Kientzle
29a23c776a
Choose a flag-handling strategy based on platform capabilities
...
rather than on platform.
2008-09-14 05:51:25 +00:00
Tim Kientzle
1074aa240c
Portability: Don't use symbolic constants when the values are more
...
standard than the names are. Remove some trailing whitespace.
2008-09-12 05:33:00 +00:00
Tim Kientzle
a2854491c4
Portability: Not everyone is lucky enough to have ftruncate()
2008-09-12 04:08:11 +00:00
Tim Kientzle
220265229d
Portability: Support platforms that lack (struct stat).st_blksize or SSIZE_MAX
...
Of course, FreeBSD has both.
2008-09-12 04:03:34 +00:00
Tim Kientzle
6d35d9a6e9
Windows compatibility: The stub replacement for compression_program
...
(which always returns an error when invoked) needs its prototype.
2008-09-12 03:53:54 +00:00
Tim Kientzle
a2a72fd640
Fix a type-aliasing problem in the libarchive test suite,
...
restore WARNS=6.
2008-09-08 00:58:12 +00:00
Tim Kientzle
fb7ec956eb
Correct a leaking archive_entry in the test suite.
2008-09-07 23:59:27 +00:00
Tim Kientzle
7480311f87
Correct the comments here.
...
PR: bin/126849
MFC after: 3 days
2008-09-07 06:15:45 +00:00
Tim Kientzle
11663004bd
When restoring a directory, allow symlinks to be followed. The full
...
logic here gets a little complex, but the net effect is that the
SECURE_SYMLINKS flag will prevent us from ever following a symlink.
Without it, we'll only follow symlinks to dirs. bsdtar specifies
SECURE_SYMLINKS by default, suppresses it for -P.
I've also beefed up the write_disk_secure test to verify this
behavior.
PR: bin/126849
2008-09-07 05:22:33 +00:00
Tim Kientzle
11b4b8458c
The link resolver now unsets the size to mark a hardlink
...
with no body instead of setting it to zero.
2008-09-05 06:15:25 +00:00
Tim Kientzle
a0bfb8ae3e
MfP4: Handle entries with unset size properly: Regular files with
...
unspecified size are "unlimited" (required by Zip reader, which
sometimes does not know the uncompressed size of an entry until it
gets to the end). Also, hardlinks with unspecified (or zero) size do
not overwrite the data on disk nor do they set metadata. This is
compatible with GNU tar and NetBSD pax behavior.
2008-09-05 06:13:11 +00:00
Tim Kientzle
e20d272f0a
MfP4: Use the set/unset tracking to determine when mtime or atime
...
is unavailable. Use start_time as a substitute when one is missing;
if both are missing, skip the call to {f,l,}utime{s,}() entirely.
2008-09-05 05:55:49 +00:00
Tim Kientzle
1b42ff4cd6
Markup fix.
...
MFC after: 3 days
2008-09-04 05:22:00 +00:00
Tim Kientzle
0c35edadaa
Style: Use ARCHIVE_VERSION_NUMBER to conditionalize tests on
...
the particular libarchive version being tested instead of the
deprecated ARCHIVE_API_VERSION and ARCHIVE_VERSION_STAMP macros.
2008-09-01 05:38:33 +00:00
Tim Kientzle
32364a7ddb
MfP4: set/unset tracking for atime, ctime, mtime, and size fields.
...
This generalizes the existing set/unset tracking for hardlink/symlink
fields and extends it to cover non-string fields. Eventually, this
will be further extended to cover most fields.
In particular, this is needed to correctly detect when time fields
are missing (for example, reading ustar archives doesn't set atime or
ctime) for proper time restore and is helpful when trying to determine
whether to overwrite data when restoring hardlinks.
This commit updates the tests but not the docs.
2008-09-01 04:54:29 +00:00
Tim Kientzle
c7715560f1
Sort the list of format names.
2008-09-01 02:50:53 +00:00
Tim Kientzle
e32c65cb17
Use the "start_time" (time at which the restore process began)
...
to fill in a missing atime instead of substituting mtime.
PR: bin/124915
2008-09-01 02:50:24 +00:00
Tim Kientzle
9ea6421090
New mtree writer, thanks to Joerg Sonnenberger.
...
Obtained from: Joerg Sonnenberger
2008-08-31 07:21:46 +00:00
Tim Kientzle
7584fa8aa4
Joerg Sonnenberger's improvements to the shar writer.
...
Significant performance improvements, better quoting of file names, etc.
2008-08-31 07:10:40 +00:00
Tim Kientzle
5dc843b27b
Make libarchive_test a little smarter about trying to find
...
its reference files when you don't specify -r. It now checks
a couple of likely nearby directories to see if any of them
have a particular known file.
2008-08-31 07:06:02 +00:00
Tim Kientzle
cec048ddf0
When atime wasn't specified, it should get set == mtime.
...
This is much stronger than just asserting that it's not zero.
2008-08-30 05:31:23 +00:00
Tim Kientzle
9cfec77e7e
If no atime was specified (for example, when extracting from ustar
...
archives), set atime == mtime. Before this, atime would get restored
to 0.
2008-08-28 06:40:22 +00:00
Tim Kientzle
39056f55e3
Alphabetize the list of tests.
2008-08-25 06:08:22 +00:00
Tim Kientzle
3269dc16fd
Update the total archive byte counters when writing entries to disk using
...
archive_write_disk.
Update cpio to use this to emit block counts in -p mode.
Update cpio tests to verify these block counts.
2008-08-24 06:21:00 +00:00
Tim Kientzle
a705ee2bcd
Remove the stillborn attempt to cleanup tests as well as the build dir.
2008-08-24 05:54:28 +00:00
Tim Kientzle
b9364a48e5
Fail copying path/.. only if SECURE_NODOTDOT was specified.
...
Since we already warn for any '..' elements in that case,
the extra "lastdotdot" tracking turns out to be unnecessary.
PR: bin/124924
2008-08-24 05:42:22 +00:00
Tim Kientzle
8d14bd8cc2
Fix the cpio bug tested for by r182092 of usr.bin/cpio/test.
...
Since various 'find' incantations can emit container directories
in various orders, we cannot refuse to update a dir because it's
apparently the same age.
MFC after: 3 days
2008-08-24 05:01:01 +00:00
Tim Kientzle
85c04a017f
Fix up test suite so it works again with the libarchive 1.x API.
...
In particular, FreeBSD 6 still uses the libarchive 1.x API and
this correction will permit MFCing new libarchive features back
to FreeBSD 6.
2008-08-11 01:19:36 +00:00
Tim Kientzle
438e9b4a9e
Correct test_tar_large so it works correctly with the libarchive 1.x API.
2008-08-10 21:14:26 +00:00
Tim Kientzle
dde4785e50
Explain why two apparently-identical archive_read_data() calls
...
really should have different return values.
2008-08-10 03:13:42 +00:00
Tim Kientzle
07fe09e227
MfP4: Joerg Sonnenberger's fixes to make 'ar' and 'pax' writers
...
robust against multiple calls to their destroy() functions.
2008-08-10 02:06:28 +00:00
Colin Percival
f9bcf9cabf
Mark functions as __dead2 in order to help the LLVM static checker
...
understand which code paths aren't possible.
This commit eliminates 117 false positive bug reports of the form
"allocate memory; error out if pointer is NULL; use pointer".
2008-08-04 01:25:48 +00:00
Colin Percival
b4d3a08be1
Garbage collect a variable which is assigned a value once but otherwise
...
is never used.
Found by: LLVM/Clang Static Analyzer
2008-07-10 09:50:55 +00:00
Tim Kientzle
1ad4959f57
libarchive in FreeBSD-CURRENT is now synched with libarchive-portable 2.5.5.
2008-07-05 01:50:40 +00:00
Tim Kientzle
f37f4b11e4
Remove a couple of capability definitions that are never used.
2008-07-05 01:50:07 +00:00
Tim Kientzle
f5a5cfb411
When ARCHIVE_EXTRACT_PERM is requested (e.g., by "tar -p"), always
...
schedule a chmod() fixup for directories. In particular, this fixes
sgid handling on systems where the sgid bit is inherited from the
parent directory (which means that the actual mode of the dir
does not match the mode used in the mkdir() system call.
It may be possible to tighten this condition a bit. In
working through this, I also found a few other places where
it looks like we can avoid a redundant syscall or two. I've
commented those here but not yet tried to address them.
2008-07-05 01:48:33 +00:00
Tim Kientzle
4e8f10a152
Don't use the deprecated linux/ext2_fs.h include file.
2008-07-05 01:45:31 +00:00
Peter Wemm
a11c72cfcb
Add $FreeBSD$ to the uuencoded test files that didn't have them already.
2008-07-03 03:26:30 +00:00
Dag-Erling Smørgrav
d8c5a84b61
More explicit error message.
2008-06-30 16:19:26 +00:00
Dag-Erling Smørgrav
24cbd9936b
Add missing $FreeBSD$
2008-06-30 15:49:12 +00:00
Dag-Erling Smørgrav
c7dd6fa2c9
Some tests won't build at WARNS level 6 due to aliasing violations.
...
Add missing -I. so the tests will build when ${.OBJDIR} != ${.CURDIR}.
${.OBJDIR} does not need to be spelled out.
2008-06-26 11:58:26 +00:00
Dag-Erling Smørgrav
f9145f3547
Add regression test for CRC32 check. The test file has been modified to
...
include an invalid checksum for file2.
Approved by: kientzle
2008-06-26 11:50:11 +00:00
Dag-Erling Smørgrav
c7d703c46a
Implement CRC32 verification. Note that you have to read until EOF to
...
trigger the check.
Requested by: ache
Approved by: kientzle
2008-06-26 11:48:19 +00:00
Dag-Erling Smørgrav
e2157b51de
Allow the tests to build without libdmalloc.
2008-06-26 10:53:05 +00:00
Tim Kientzle
8b88e9591a
Split out the reference zip file for ease of maintenance.
2008-06-26 04:48:42 +00:00