Sergey Poznyakoff [Thu, 1 Dec 2005 12:57:50 +0000 (12:57 +0000)]
Add Guerkan Karaman
Sergey Poznyakoff [Thu, 1 Dec 2005 12:51:58 +0000 (12:51 +0000)]
Add incr02.at
Sergey Poznyakoff [Thu, 1 Dec 2005 12:51:20 +0000 (12:51 +0000)]
(purge_directory): Skip the member and return if the archive is not in incremental format.
Sergey Poznyakoff [Thu, 1 Dec 2005 12:50:58 +0000 (12:50 +0000)]
Fix restoring of directory timestamps from
incremental archives.
(directories_first): New variable.
(prepare_to_extract): Set directories_first
(extract_archive): Call apply_nonancestor_delayed_set_stat() only
if not extracting from an incremental archive
Paul Eggert [Thu, 1 Dec 2005 00:18:05 +0000 (00:18 +0000)]
* doc/tar.texi (Option Summary): Rewrite the
--atime-preserve=system description in response to Ian Turner's
proposed patch.
* doc/tar.texi (Extracting Specific Files): Remove obsolescent
FIXME.
Paul Eggert [Tue, 29 Nov 2005 19:41:34 +0000 (19:41 +0000)]
(parse_opt): Remove bogus \n in new atime diagnostic.
Paul Eggert [Tue, 29 Nov 2005 19:39:06 +0000 (19:39 +0000)]
* lib/.cvsignore: Add malloc.h, regcomp.c, regex.c, regex.h,
regex_internal.c, regex_internal.h, regexc.c; used by rpmatch.
Paul Eggert [Tue, 29 Nov 2005 19:26:13 +0000 (19:26 +0000)]
* THANKS: Add Ian Turner.
Paul Eggert [Tue, 29 Nov 2005 19:14:21 +0000 (19:14 +0000)]
* NEWS: New option --atime-preserve=system, which uses O_NOATIME.
* configure.ac: Prefer AC_CHECK_HEADERS_ONCE to AC_CHECK_HEADERS.
Check for stropts.h and sys/filio.h too, for _FIOSATIME.
* doc/tar.texi: Change "modification time" to "data modification
time", "change time" to "status change time", and "filesystem" to
"file system", so that we use terminology consistent with POSIX.
Use American spacing rather than French for sentence ends.
"non-dependable" -> "undependable".
(Option Summary, Attributes): Explain better the pitfalls of the
--atime-preserve option, and suggest read-only mounts,loopback
mounts, and noatime mounts for older systems.
* doc/value.texi (op-atime-preserve-system): Renamed from
op-atime-preserver-system to fix a misspelling.
* src/common.h (enum atime_preserve): Use lower case for enum values.
* src/compare.c: Don't include utimens.h; no longer needed.
(diff_file): Use set_file_atime rather than utimens; avoid closing
diff_handle until after this, so that we can set the file time stamp
via the file descriptor rather than via its name.
* src/create.c: Don't include utimens.h; no longer needed.
(dump_regular_finish): Remove. All callers now do its work inline.
(dump_dir): New arg FD. All callers changed.
Use fdsavedir rather than savedir.
(unknown_file_error): Arg is a const pointer now.
(dump_file0): 2nd arg is a const pointer now.
Treat directories more like files, with respect to --atime-preserve.
For example, also warn if a directory changes while we are dumping it.
Prefer file descriptors to file names when retrieving/setting file
attributes; this saves path-resolution time and allows us to avoid
changing mtime/ctime on Solaris when restoring atime as root.
Use O_DIRECTORY when opening directories, to avoid some race conditions.
Do not reset atime if mtime has changed. Report an error if
we cannot reset atime.
First cut at adding support for --atime-preserve=system.
* doc/tar.texi (Option Summary): First cut at documenting it.
All other uses of --atime-preserve changed to --atime-preserve=replace.
* doc/value.texi (op-atime-preserve-replace, op-atime-preserver-system):
New.
(op-atime-preserve): Mention METHOD.
* src/common.h (atime_preserve): New enum.
(atime_preserve_option): Now of the enum type rather than bool.
All uses changed.
* src/compare.c (diff_file): Read with O_NOATIME if asked for.
* src/create.c (dump_file0): Read regular and CTG files with O_NOATIME
if asked for.
* src/tar.c (usage): Mention new usage.
(parse_opt): Parse new usage.
Paul Eggert [Tue, 29 Nov 2005 18:53:34 +0000 (18:53 +0000)]
Convert back to UTF-8, sort (using LC_ALL=en_US.UTF-8
on Debian stable), and consistently use tabs rather than spaces.
Sergey Poznyakoff [Sun, 27 Nov 2005 12:00:42 +0000 (12:00 +0000)]
Update
Sergey Poznyakoff [Sun, 27 Nov 2005 11:59:34 +0000 (11:59 +0000)]
Remove prematurely introduced parts of new MV format support
Sergey Poznyakoff [Sat, 26 Nov 2005 19:32:55 +0000 (19:32 +0000)]
Update
Sergey Poznyakoff [Sat, 26 Nov 2005 19:31:02 +0000 (19:31 +0000)]
(xheader_format_name): Fix memory leak.
Sergey Poznyakoff [Fri, 11 Nov 2005 12:18:14 +0000 (12:18 +0000)]
Update
Sergey Poznyakoff [Fri, 11 Nov 2005 12:17:38 +0000 (12:17 +0000)]
Close stdin so that if something fails causing tar to ask for the next volume, it won't hang the testsuite.
Sergey Poznyakoff [Fri, 11 Nov 2005 12:17:10 +0000 (12:17 +0000)]
(confirm): Rewritten using rpmatch.
(decode_options): Minor optimizations
(main): Call stdopen() to ensure the first three descriptors are
open.
Sergey Poznyakoff [Fri, 11 Nov 2005 12:16:41 +0000 (12:16 +0000)]
Add rpmatch.c
Sergey Poznyakoff [Fri, 11 Nov 2005 12:16:28 +0000 (12:16 +0000)]
Add stdopen, imported from coreutils.
Sergey Poznyakoff [Fri, 11 Nov 2005 12:15:46 +0000 (12:15 +0000)]
Add rpmatch
Sergey Poznyakoff [Fri, 11 Nov 2005 00:28:27 +0000 (00:28 +0000)]
Updated
Sergey Poznyakoff [Fri, 11 Nov 2005 00:27:58 +0000 (00:27 +0000)]
(Tarcat): New node
Sergey Poznyakoff [Fri, 11 Nov 2005 00:27:21 +0000 (00:27 +0000)]
Handle archives in pax format. Improve handling of traditional archives.
Sergey Poznyakoff [Fri, 11 Nov 2005 00:26:39 +0000 (00:26 +0000)]
Update
Sergey Poznyakoff [Fri, 11 Nov 2005 00:26:18 +0000 (00:26 +0000)]
(AT_TAR_CHECK): Define TEST_TAR_FORMAT
Sergey Poznyakoff [Fri, 11 Nov 2005 00:26:09 +0000 (00:26 +0000)]
(xheader_format_name): Remove static
qualifier. Change last argument.
Correct buffer size calculation (allocated too much space).
(xheader_write): Increase global_header_count here ...
(xheader_write_global): ... instead of here
Sergey Poznyakoff [Fri, 11 Nov 2005 00:25:41 +0000 (00:25 +0000)]
(write_extended): Change type and meaning of the first argument. All callers updated
Sergey Poznyakoff [Fri, 11 Nov 2005 00:25:20 +0000 (00:25 +0000)]
(flush_read,flush_write): Functions, again.
(write_extended): Changed declaration
(xheader_format_name): New declaration
Sergey Poznyakoff [Fri, 11 Nov 2005 00:24:52 +0000 (00:24 +0000)]
(flush_write,flush_read): Change data type.
(flush_archive): Compute actual buffer fill level before calling
low level function.
(close_archive): Call flush_archive again if the first call
resulted in partially filled buffer.
(try_new_volume): Rewritten handling of initial headers.
(add_chunk_header): New function. Write an additional header
before the continuation chunk. The purpose of the header is to
allow third-party tars to extract the member.
(simple_flush_write): Take an argument.
(_gnu_flush_write): Correctly handle partially filled buffers.
Sergey Poznyakoff [Thu, 10 Nov 2005 13:01:34 +0000 (13:01 +0000)]
Updated
Sergey Poznyakoff [Thu, 10 Nov 2005 13:00:11 +0000 (13:00 +0000)]
Add new test cases
Sergey Poznyakoff [Thu, 10 Nov 2005 12:59:38 +0000 (12:59 +0000)]
(xhdr_tab): New keyword GNU.volume.filename.
Sergey Poznyakoff [Thu, 10 Nov 2005 12:59:25 +0000 (12:59 +0000)]
Do not pad compressed output if it goes to stdout.
Sergey Poznyakoff [Thu, 10 Nov 2005 12:59:13 +0000 (12:59 +0000)]
(sparse_dump_region): Call mv_size_left.
(sparse_dump_file): Enclose the loop in mv_begin/mv_end.
Sergey Poznyakoff [Thu, 10 Nov 2005 12:58:43 +0000 (12:58 +0000)]
(try_new_volume): Bugfix. Always check
continued_file_name. If it is absent, the volume is out
of sync.
(add_multi_volume_header): Create GNU.volume.filename keyword in
the extended header.
Sergey Poznyakoff [Wed, 9 Nov 2005 13:13:00 +0000 (13:13 +0000)]
Update
Sergey Poznyakoff [Wed, 9 Nov 2005 13:09:44 +0000 (13:09 +0000)]
(AT_KEYWORDS): Improve to allow executionof related tests in groups.
Sergey Poznyakoff [Wed, 9 Nov 2005 13:09:25 +0000 (13:09 +0000)]
(xhdr_tab): Support for new GNU keywords.
Sergey Poznyakoff [Wed, 9 Nov 2005 13:09:12 +0000 (13:09 +0000)]
(decode_options): Allow to use --multi-volume and --label with pax archives.
Sergey Poznyakoff [Wed, 9 Nov 2005 13:08:55 +0000 (13:08 +0000)]
Use mv_.* functions where necessary.
Sergey Poznyakoff [Wed, 9 Nov 2005 13:08:42 +0000 (13:08 +0000)]
Use mv_.* functions uniformly instead of fiddling with the global variables.
Sergey Poznyakoff [Wed, 9 Nov 2005 13:08:13 +0000 (13:08 +0000)]
(save_name,save_sizeleft,save_totsize): Remove
globals.
(volume_label,continued_file_name,continued_file_size): New
variables.
(flush_read,flush_write): Pointers to functions
(mv_begin,mv_end,mv_total_size,mv_size_left): New functions
(write_extended): New function.
Sergey Poznyakoff [Wed, 9 Nov 2005 13:07:45 +0000 (13:07 +0000)]
Rewritten in a more modular fashion to provide
GNU extensions (multi-volume archives and archive labels) in
pax format.
(volume_label,continued_file_name,continued_file_size)
(continued_file_offset): New globals.
(save_name,save_totsize,save_sizeleft): Make static
(mv_begin,mv_end,mv_total_size,mv_size_left): New functions
(open_archive,flush_write,flush_read): Rewritten
Sergey Poznyakoff [Wed, 9 Nov 2005 13:07:26 +0000 (13:07 +0000)]
Update
Paul Eggert [Tue, 8 Nov 2005 07:20:02 +0000 (07:20 +0000)]
* src/tar.c (NS_PRECISION_FORMAT_MASK): New macro.
(tar_timespec_cmp): New function. Wrapper over
timespec_cmp using the timespec precision provided by the
current archive format.
* src/common.h (tar_timespec_cmp): New declaration.
* src/compare.c (diff_file): Use tar_timespec_cmp.
* src/extract.c (file_newer_p): Likewise.
* src/update.c (update_archive): Likewise.
* tests/truncate.at: Reverted changes
* tests/update.at: Reverted changes
Paul Eggert [Mon, 7 Nov 2005 05:11:55 +0000 (05:11 +0000)]
(xheader_store): Last arg is void const *.
Paul Eggert [Mon, 7 Nov 2005 05:11:40 +0000 (05:11 +0000)]
(xheader_store): Last arg here is void const *, too.
Paul Eggert [Mon, 7 Nov 2005 05:03:09 +0000 (05:03 +0000)]
(struct xhdr_tab.coder): Last arg is void const *,
not void *, to avoid create.c warning from GCC "passing argument 3
of 'xheader_store' discards qualifiers from pointer target type".
(dummy_coder, atime_coder, gid_coder, gname_coder, linkpath_coder):
(ctime_coder, mtime_coder, path_coder, size_coder, uid_coder):
(uname_coder, sparse_size_coder, sparse_numblocks_coder):
(sparse_offset_coder, sparse_numbytes_coder, dumpdir_coder):
Likewise.
Paul Eggert [Mon, 7 Nov 2005 04:03:29 +0000 (04:03 +0000)]
* tests/truncate.at: Create files whose time stamps must fall on
1-second boundaries. This prevents tests from failing on hosts
like Solaris 8 that have nanosecond-resolution file time stamps.
* tests/update.at: Likewise.
Sergey Poznyakoff [Mon, 7 Nov 2005 02:55:25 +0000 (02:55 +0000)]
Update
Sergey Poznyakoff [Mon, 7 Nov 2005 02:52:58 +0000 (02:52 +0000)]
(xheader_keyword_deleted_p): Remove static
qualifier.
(struct xhdr_tab.decoder): Change prototype. POSIX allows string
values to contain embedded nulls, so take an extra argument
specifying the length of the string.
(decx,decg,dummy_decoder,atime_decoder,gid_decoder)
(gname_decoder,linkpath_decoder,ctime_decoder,mtime_decoder)
(path_decoder,size_decoder,uid_decoder,uname_decoder)
(sparse_size_decoder,sparse_numblocks_decoder)
(sparse_offset_decoder,sparse_numbytes_decoder): Likewise.
(decode_record): Pass value length to the handler
(run_override_list): Pass value length to the decoder
(xheader_print_n): New function
(xheader_print): Rewritten using xheader_print_n
(xheader_finish): Do not rely om strlen to compute the length of
the collected string: it can contain embedded nulls
(xheader_string_begin,xheader_string_add,xheader_string_end): New
functions.
(sparse_map_decoder,dumpdir_coder,dumpdir_decoder): New
functions. Handle GNU.sparse.map and GNU.dumpdir variables.
(xhdr_tab): Add new variables.
Sergey Poznyakoff [Mon, 7 Nov 2005 02:51:22 +0000 (02:51 +0000)]
Test gnu, oldgnu, and posix formats
Sergey Poznyakoff [Mon, 7 Nov 2005 02:50:25 +0000 (02:50 +0000)]
(struct tar_stat_info.dumpdir): New member.
Sergey Poznyakoff [Mon, 7 Nov 2005 02:50:14 +0000 (02:50 +0000)]
Incremental options are allowed with --format=pax
(tar_stat_destroy): Free dumpdir
Sergey Poznyakoff [Mon, 7 Nov 2005 02:49:45 +0000 (02:49 +0000)]
(sparse_diff_file): Bugfix: set seekable.
(pax_dump_header): Store sparse map in GNU.sparse.map. If this
variable has been explicitely deleted, use GNU.sparse.offset/
GNU.sparse.numbytes variables.
Sergey Poznyakoff [Mon, 7 Nov 2005 02:49:23 +0000 (02:49 +0000)]
(list_archive): Handle incremental backups in pax
format.
(decode_header): Initialize stat_info.dumpdir
Sergey Poznyakoff [Mon, 7 Nov 2005 02:48:51 +0000 (02:48 +0000)]
(dumpdir_size, get_gnu_dumpdir): New functions.
(purge_directory): Use stat_info.dumpdir instead of getting its
value explicitely.
Sergey Poznyakoff [Mon, 7 Nov 2005 02:48:23 +0000 (02:48 +0000)]
(dump_dir0): Handle incremental backups in pax archives
Sergey Poznyakoff [Mon, 7 Nov 2005 02:48:08 +0000 (02:48 +0000)]
(dumpdir_size,get_gnu_dumpdir)
(xheader_string_begin,xheader_string_add)
(xheader_string_end): New functions.
Paul Eggert [Mon, 7 Nov 2005 00:25:52 +0000 (00:25 +0000)]
Minor language and white space fixes.
Paul Eggert [Sun, 6 Nov 2005 23:29:30 +0000 (23:29 +0000)]
* tests/truncate.at: Use -H pax to preserve full time stamp resolution.
This prevents tests from failing on hosts like Solaris 8 that have
nanosecond-resolution file time stamps.
* tests/update.at: Likewise.
Paul Eggert [Sun, 6 Nov 2005 22:48:34 +0000 (22:48 +0000)]
* src/xheader.c (strtoimax, strtoumax): Remove decls; now done
in system.h.
Sergey Poznyakoff [Sun, 6 Nov 2005 11:52:02 +0000 (11:52 +0000)]
Update
Sergey Poznyakoff [Sun, 6 Nov 2005 11:51:12 +0000 (11:51 +0000)]
Properly document incremental dumps
Sergey Poznyakoff [Sat, 5 Nov 2005 16:49:47 +0000 (16:49 +0000)]
Update
Sergey Poznyakoff [Sat, 5 Nov 2005 16:49:17 +0000 (16:49 +0000)]
Update
Sergey Poznyakoff [Sat, 5 Nov 2005 16:47:49 +0000 (16:47 +0000)]
New file
Sergey Poznyakoff [Sat, 5 Nov 2005 15:57:07 +0000 (15:57 +0000)]
Update
Sergey Poznyakoff [Sat, 5 Nov 2005 15:55:38 +0000 (15:55 +0000)]
Never skip the test. It should work on any filesystem
Sergey Poznyakoff [Sat, 5 Nov 2005 15:55:19 +0000 (15:55 +0000)]
Sleep 1 sec before creating second file.
Sergey Poznyakoff [Sat, 5 Nov 2005 15:55:05 +0000 (15:55 +0000)]
(struct directory.mtime): New member.
(note_directory): Take additional arguments. All callers updated.
(scan_directory): Updated to use more metadata. In particular,
this allows to correctly detect renamed files.
(read_directory_file,write_directory_file)
(write_directory_file_entry): Support new directory file format.
Sergey Poznyakoff [Sat, 5 Nov 2005 15:54:30 +0000 (15:54 +0000)]
(dump_file): Call update_parent_directory.
Sergey Poznyakoff [Sat, 5 Nov 2005 15:54:14 +0000 (15:54 +0000)]
(update_parent_directory): New prototype.
Paul Eggert [Fri, 4 Nov 2005 21:25:47 +0000 (21:25 +0000)]
(set_stat): Rewrite to avoid bug in Forte
Developer 7 C 5.4 Patch 111708-09 (2004-02-19).
Sergey Poznyakoff [Fri, 4 Nov 2005 12:42:03 +0000 (12:42 +0000)]
Updated
Sergey Poznyakoff [Fri, 4 Nov 2005 12:41:25 +0000 (12:41 +0000)]
Updated
Sergey Poznyakoff [Fri, 4 Nov 2005 07:48:32 +0000 (07:48 +0000)]
Update
Sergey Poznyakoff [Fri, 4 Nov 2005 07:38:44 +0000 (07:38 +0000)]
Add Eric Blake
Sergey Poznyakoff [Fri, 4 Nov 2005 07:38:23 +0000 (07:38 +0000)]
Fix quoting in help output.
(update_po): Use backward-compatible wget option --cache instead
of deprecated -C to accomodate for wget 1.10.
Changes proposed by Eric Blake
Paul Eggert [Wed, 2 Nov 2005 23:03:39 +0000 (23:03 +0000)]
* doc/tar.texi: Consistently put two spaces after sentences,
and put commas after "i.e." and "e.g.". This is the usual GNU
style in manuals.
Paul Eggert [Wed, 2 Nov 2005 22:45:07 +0000 (22:45 +0000)]
* lib/.cvsignore: Accommodate recent gnulib changes.
Paul Eggert [Wed, 2 Nov 2005 22:44:46 +0000 (22:44 +0000)]
Add creat-safer.c, fcntl--.h, fcntl-safer.h,
open-safer.c, openat-die.c, verify.h, to accommodate recent gnulib
changes.
Sergey Poznyakoff [Fri, 28 Oct 2005 09:29:31 +0000 (09:29 +0000)]
Updated
Sergey Poznyakoff [Fri, 28 Oct 2005 09:29:16 +0000 (09:29 +0000)]
If file `.bootstrap' exists in the cwd and is readable, prepend its contents to the command line
Sergey Poznyakoff [Fri, 28 Oct 2005 09:28:39 +0000 (09:28 +0000)]
Add John Thomas McDole
Sergey Poznyakoff [Fri, 28 Oct 2005 09:28:20 +0000 (09:28 +0000)]
(diff_dumpdir): Pass a valid device number to get_directory_contents.
Sergey Poznyakoff [Fri, 21 Oct 2005 18:15:09 +0000 (18:15 +0000)]
Updated
Sergey Poznyakoff [Fri, 21 Oct 2005 18:13:59 +0000 (18:13 +0000)]
Skip test if ln fails (suppose the OS does not support hard links)
Sergey Poznyakoff [Tue, 4 Oct 2005 07:31:28 +0000 (07:31 +0000)]
Updated
Sergey Poznyakoff [Tue, 4 Oct 2005 07:30:48 +0000 (07:30 +0000)]
(decode_options): Report error if -A or -r is used together with compression option.
Sergey Poznyakoff [Fri, 30 Sep 2005 19:49:37 +0000 (19:49 +0000)]
Fix cover page
Sergey Poznyakoff [Thu, 29 Sep 2005 16:31:27 +0000 (16:31 +0000)]
Updated
Sergey Poznyakoff [Thu, 29 Sep 2005 16:28:06 +0000 (16:28 +0000)]
Use @option and @kbd consistently. Document new options.
Sergey Poznyakoff [Wed, 28 Sep 2005 20:42:39 +0000 (20:42 +0000)]
Updated
Sergey Poznyakoff [Wed, 28 Sep 2005 20:41:57 +0000 (20:41 +0000)]
Implement --show-stored-names option
Sergey Poznyakoff [Wed, 28 Sep 2005 20:41:38 +0000 (20:41 +0000)]
(print_header): If show_stored_names_option is given,
list member names as stored in the archive. Patch proposed by Erik
Cumps <erik.cumps@icos.be>
Sergey Poznyakoff [Wed, 28 Sep 2005 20:41:10 +0000 (20:41 +0000)]
(show_stored_names_option): New variable
Sergey Poznyakoff [Wed, 28 Sep 2005 19:42:09 +0000 (19:42 +0000)]
Updated
Sergey Poznyakoff [Wed, 28 Sep 2005 19:41:40 +0000 (19:41 +0000)]
New option --test-label tests the archive volume label. The option proposed by Wouter Verhelst
Sergey Poznyakoff [Wed, 28 Sep 2005 19:41:15 +0000 (19:41 +0000)]
(all_names_found): If test_label_option is set return true