Tim Kientzle
512c45ef6c
Fix -u with absolute paths (e.g., "tar -uf foo.tar /bar") by handling
...
pathname edits before comparing pathnames on disk to those in the archive.
Thanks to: Gareth Bailey, Lowell Gilbert
2005-09-24 21:19:57 +00:00
Tim Kientzle
cf220b45a5
Clarify some error messages.
2005-05-08 06:25:15 +00:00
Tim Kientzle
22ede7639d
bsdtar now uses the "tree" package instead of "fts" for walking
...
directory heirarchies.
2005-04-24 05:53:37 +00:00
Tim Kientzle
5b923e58db
A number of fixes to the autoconf-generated build system. In
...
particular, acl support is no longer enabled on FreeBSD 4, acl support
should be correctly enabled on Linux, dirent.d_namlen should be
correctly detected on platforms that support it.
Thanks to: Greg Lewis, Juergen Lock, and Jaakko Heinonen
2005-04-17 19:43:37 +00:00
Tim Kientzle
e90e8e4b97
Support path-rewriting options (including --strip-components) for both
...
extraction and creation. While I'm here, fix a bug reported by Garrett
Wollman: when stripping the leading '/' from the path "/", don't produce
an entry with an empty name; produce "." instead.
2005-04-17 17:20:54 +00:00
Tim Kientzle
fd51bae501
A handful of minor portability and style improvements.
2005-03-14 00:30:35 +00:00
Tim Kientzle
d14c1502f0
Add --newer-ctime, --newer-mtime, --newer-ctime-than, and --newer-mtime-than
...
switches to support selecting files by time of modification.
Special thanks to: Steven M. Bellovin, Rich $alz, and Jim Berets,
authors of the public-domain getdate.y date-parsing code.
2005-03-13 18:36:24 +00:00
Tim Kientzle
f52188fc8a
Correct error handling on failed writes
...
to the archive.
2004-11-05 05:39:37 +00:00
Tim Kientzle
cb7f04cf39
Make -C and -T work correctly together.
...
MFC after: 3 days
Thanks to: Guy Helmer
2004-08-28 05:28:19 +00:00
Tim Kientzle
6fc954815f
Better low-memory handling: If the link cache runs out of memory, just
...
throw out the whole thing and stop tracking links entirely. That will
break all remaining hardlinks, but should free up enough memory to
let everything finish.
2004-08-08 06:36:03 +00:00
Tim Kientzle
991f1d87bb
Move the smart chdir logic into a couple of utility functions in util.c.
...
Then use them to provide consistent -C support throughout the program.
Thanks to: Christoph Mallon
2004-08-08 05:50:10 +00:00
Tim Kientzle
8095e9d82b
Add --totals option. Unlike gtar, this reports the bytes actually
...
written to the archive, not the ones written to the compressor.
For uncompressed archives, these numbers are the same, of course.
2004-08-07 19:25:34 +00:00
Tim Kientzle
5232906014
Add "make distfile" capabilities to bsdtar, including informational
...
COPYING file and some conditional compilation cleanups.
2004-08-07 03:24:49 +00:00
Tim Kientzle
4f23b47afa
A bunch of style and security fixes (error checking return values, etc),
...
mostly from: Tim J Robbins
2004-07-25 04:15:50 +00:00
Tim Kientzle
62010d3541
A bunch of stuff from Christoph Mellon:
...
* Whitespace fixes
* Check some malloc calls
* Simplify long_help formatting
* Spell "LINUX" -> "linux"
* A few other miscellaneous style improvements
2004-07-24 22:13:44 +00:00
Tim Kientzle
e2fe7499b6
Warn about stripping leading '/' when creating archives.
2004-06-27 18:32:14 +00:00
Tim Kientzle
d3d1a208cb
Augment the -T handling:
...
* Add --null option (sort #defines here)
* Add process_lines function to util.c that reads newline-terminated
or null-terminated lines (with self-sizing buffers, etc) and iteratively
invokes a provided function. Use this to dramatically simplify:
-T handling for -c, --exclude-from-file, and --include-from-file.
* Add -T handling to -x (via include_from_file)
Hopefully, this will fix the openoffice port and a couple of
others that rely on -T and --null.
2004-06-27 06:29:03 +00:00
Tim Kientzle
d24e5e453e
Fix "@-" which has apparently been broken for some time. <sigh>
...
While I'm here, add in a lot more error-checking around append_archive.
2004-06-27 03:28:13 +00:00
Tim Kientzle
4049589b28
Don't abort immediately on directory change errors.
...
Instead, display a warning, clean up, and let main() return the error.
In particular, this means that chdir() problems won't leave broken
archives, though they will prompt an error exit value.
2004-06-27 01:08:54 +00:00
Tim Kientzle
0674dded37
Rename C=dir to -C dir, which is what people expect.
...
This requires some non-trivial surgery to the options parsing.
While here, let people who only have getopt() access long options
through the -W longopt=value convention.
2004-06-26 22:49:51 +00:00
Tim Kientzle
a85e1b56bb
Set program exit value to 1 if there are any of various errors when
...
creating an archive.
Pointed out by: Failure to complain when building certain broken packages
(Thanks again to Kris Kennaway for finding this!)
2004-06-07 07:19:04 +00:00
Tim Kientzle
b5642237fc
Ooops! Previous commit added an over-zealous error check.
...
It is, in fact, perfectly legal to not specify a compression when
writing an archive. <sigh>
2004-06-07 03:38:17 +00:00
Tim Kientzle
e1f5ccf6fb
If -b is specified, then force full padding for the last block.
2004-06-07 03:19:57 +00:00
Tim Kientzle
2225b76daf
Per style(9), don't use double spaces in expressions.
...
Pointed out by: njl, des.
2004-06-07 03:16:18 +00:00
Tim Kientzle
873e38290a
Fix a segfault when looking up a non-existent group.
2004-05-18 23:40:25 +00:00
Tim Kientzle
a25502627d
Set errno to 0 before calling getpwuid/getgrgid, so that error
...
messages will be displayed only when there is, in fact, an error.
2004-05-17 18:29:12 +00:00
Tim Kientzle
088bdb251d
Propagate struct bsdtar down into a lot more places.
...
Move global progname variable into struct bsdtar.
2004-05-17 05:44:53 +00:00
Tim Kientzle
7283cd6959
Refactor name caching to use a common piece of code for uname_cache and
...
gname_cache. Cache negative lookups to dramatically improve performance
building archives containing nonexistent uid/gid.
2004-05-17 05:02:39 +00:00
Tim Kientzle
ce722a01be
Correct copy/paste error in Linux nodump support.
...
Thanks to: Juergen Lock for his continuing patience
while I botch his patches.
2004-05-03 16:56:42 +00:00
Tim Kientzle
f1fe72c1cc
Style: Use single tab after #define
2004-05-02 22:58:18 +00:00
Tim Kientzle
732db834d2
More of Juergen Lock's patches for Linux.
...
(fflags support on Linux, nanosecond timestamp portability, enable
64-bit file offsets)
2004-05-02 18:10:35 +00:00
Tim Kientzle
749029a437
Update write.c to follow recent API changes to libarchive.
...
Also, bump up the default copy buffer from 8k to 64k
to improve performance.
2004-04-26 23:39:17 +00:00
Tim Kientzle
7e02198e95
Fix username/groupname cache so it returns a name that
...
was just looked up by get{pw,gr}id(). Otherwise, it
returns a NULL name unless it's already in the cache.
Credit to Juergen Lock.
2004-04-23 16:33:51 +00:00
Tim Kientzle
fe44171ebd
Eliminate a redundant call to archive_entry_set_pathname()
2004-04-21 05:16:28 +00:00
Tim Kientzle
855e109158
As suggested by Julian Elischer, use a self-sizing hash
...
table for the hardlink cache. This dramatically improves
performance when archiving millions of hardlinked files.
While I'm here, clean up some style bugs (per Bruce Evans)
and clarify some comments.
2004-04-15 22:37:54 +00:00
Tim Kientzle
17834543c8
A simple cache of uid->uname lookups and gid->gname lookups eliminates
...
almost 1/2 of the CPU time required to create an uncompressed archive
and makes a noticable reduction in wallclock time.
2004-04-14 00:40:54 +00:00
Tim Kientzle
c7141791f3
When all the links to a file have been dumped, don't forget
...
to free() the memory used to store the filename.
2004-04-13 23:50:48 +00:00
Tim Kientzle
4cbbc3a35e
Add DPADD to Makefile (thanks to Andrey for pointing this out).
...
Generally clean up Makefile, remove dmalloc references from source
(there are better ways to do this than pollute the FreeBSD src tree).
2004-04-12 00:13:23 +00:00
Tim Kientzle
330924f9bd
Add support for -T option on create.
...
(Required by pkg_create.)
2004-04-08 06:12:01 +00:00
Tim Kientzle
4102998278
Correct signature in alternative stub implementation of setup_acls()
2004-04-07 17:43:48 +00:00
Tim Kientzle
1eb80e1673
Archive both access and default ACLs.
2004-04-06 23:08:31 +00:00
Tim Kientzle
d7fe3b4f52
Initial commit for bsdtar.
2004-04-05 21:32:18 +00:00