X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=ChangeLog;h=c8c992943595a2393fbef870e3825413765be254;hb=575ea074cc9706968781354d57bc54c9d3fe2344;hp=2eedec0569b25572a2dd426d9d2bda9901f1a5f1;hpb=49f39c25b4be8fe8d824ac169add3c002976d6eb;p=chaz%2Ftar diff --git a/ChangeLog b/ChangeLog index 2eedec0..c8c9929 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,246 @@ +2005-11-11 Sergey Poznyakoff + + * src/buffer.c (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. + * src/common.h (flush_read,flush_write): Functions, again. + (write_extended): Changed declaration + (xheader_format_name): New declaration + * src/create.c (write_extended): Change type and meaning of + the first argument. All callers updated + * src/xheader.c (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 + + * tests/testsuite.at (AT_TAR_CHECK): Define TEST_TAR_FORMAT + * tests/multiv01.at: Update + * tests/multiv02.at: Update + * tests/multiv03.at: Update + * tests/sparsemvp.at: Update + * tests/star/multi-fail.at: Update + + * scripts/tarcat: Handle archives in pax format. Improve handling + of traditional archives. + * doc/tar.texi (Tarcat): New node + +2005-11-10 Sergey Poznyakoff + + Fix splitting of sparse files between the volumes. + + * src/buffer.c (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. + * src/sparse.c (sparse_dump_region): Call mv_size_left. + (sparse_dump_file): Enclose the loop in mv_begin/mv_end. + * src/system.c: Do not pad compressed output if it goes to + stdout. + * src/xheader.c (xhdr_tab): New keyword GNU.volume.filename. + + * tests/sparsemv.at: New testcase + * tests/sparsemvp.at: New testcase + * tests/Makefile.am: Add sparsemv.at and sparsemvp.at. + * tests/testsuite.at: Likewise. + +2005-11-09 Sergey Poznyakoff + + * src/buffer.c: Rewritten in a more modular fashion to provide + GNU extensions (multi-volume archives and archive labels) in + pax format. + NOTICE, that some of the aspects (e.g. splitting the archive + on the extended header boundary) are still not solved, others + (splitting a sparse file between the volume) require additional + testing. Wait for the next commit. + + (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 + + * src/common.h (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. + + * src/compare.c, src/create.c, src/extract.c, src/incremen.c, + src/list.c: Use mv_.* functions uniformly instead of fiddling + with the global variables. + * src/sparse.c: Use mv_.* functions where necessary. + * src/tar.c (decode_options): Allow to use --multi-volume and + --label with pax archives. + * src/xheader.c (xhdr_tab): Support for new GNU keywords. + + * tests/delete01.at, tests/delete02.at, tests/delete03.at, + tests/delete04.at, tests/delete05.at, tests/extrac01.at, + tests/extrac02.at, tests/extrac03.at, tests/extrac04.at, + tests/extrac05.at, tests/incr01.at, tests/incremental.at, + tests/listed01.at, tests/listed02.at, tests/long01.at, + tests/longv7.at, tests/multiv01.at, tests/multiv02.at, + tests/multiv03.at, tests/multiv04.at, tests/options.at, + tests/options02.at, tests/same-order01.at, tests/same-order02.at, + tests/sparse01.at, tests/sparse02.at, tests/sparse03.at, + tests/star/multi-fail.at (AT_KEYWORDS): Improve to allow execution + of related tests in groups. + + * doc/tar.texi: Update + +2005-11-07 Sergey Poznyakoff + and Paul Eggert + + * 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 + +2005-11-07 Sergey Poznyakoff + + Support for incremental formats in pax archives. + Fixed POSIX compatibility of `sparse' extended header keywords. + + * src/common.h (dumpdir_size,get_gnu_dumpdir) + (xheader_string_begin,xheader_string_add) + (xheader_string_end): New functions. + * src/create.c (dump_dir0): Handle incremental backups in pax + archives. + * src/incremen.c (dumpdir_size, get_gnu_dumpdir): New functions. + (purge_directory): Use stat_info.dumpdir instead of getting its + value explicitely. + * src/list.c (list_archive): Handle incremental backups in pax + format. + (decode_header): Initialize stat_info.dumpdir + * src/sparse.c (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. + * src/tar.c (decode_options): Incremental options are allowed with + --format=pax + (tar_stat_destroy): Free dumpdir + * src/tar.h (struct tar_stat_info.dumpdir): New member. + * src/xheader.c (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. + + * tests/incr01.at: Test gnu, oldgnu, and posix formats + * tests/incremental.at: Likewise + +2005-11-06 Paul Eggert + + * src/xheader.c (strtoimax, strtoumax): Remove decls; now done + in system.h. + +2005-11-06 Sergey Poznyakoff + + * doc/tar.texi: Properly document incremental dumps + * doc/value.texi: Likewise. + * doc/snapshot.texi: Likewise. + +2005-11-05 Sergey Poznyakoff + + Improve listed incremental format: + + * src/common.h (update_parent_directory): New prototype. + * src/create.c (dump_file): Call update_parent_directory. + * src/incremen.c (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. + * tests/listed01.at: Sleep 1 sec before creating second file. + * tests/listed02.at: Never skip the test. It should work on any + filesystem. + + * doc/snapshot.texi: New file + * doc/tar.texi: Update. + * doc/Makefile.am: Update. + +2005-11-04 Paul Eggert + + * src/extract.c (set_stat): Rewrite to avoid bug in Forte + Developer 7 C 5.4 Patch 111708-09 (2004-02-19). + +2005-11-04 Sergey Poznyakoff + + * bootstrap: 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 + * THANKS: Add Eric Blake + +2005-11-02 Paul Eggert + + * 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. + + * lib/.cvsignore: Add creat-safer.c, fcntl--.h, fcntl-safer.h, + open-safer.c, openat-die.c, verify.h, to accommodate recent gnulib + changes. + +2005-10-27 Sergey Poznyakoff + + * src/compare.c (diff_dumpdir): Pass a valid device number to + get_directory_contents. + + * THANKS: Add John Thomas McDole + + * bootstrap: If file `.bootstrap' exists in the cwd and is + readable, prepend its contents to the command line + +2005-10-21 Sergey Poznyakoff + + * tests/link01.at: Skip test if ln fails (suppose the OS does + not support hard links). + +2005-10-04 Sergey Poznyakoff + + * src/tar.c (decode_options): Report error if -A or -r is used + together with compression option. + +2005-09-29 Sergey Poznyakoff + + * doc/tar.texi: Use @option and @kbd consistently. + Document new options. + 2005-09-28 Sergey Poznyakoff * NEWS: Updated