X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=ChangeLog;h=7d24603876146fca6edac904f8b0550978e4b367;hb=94de7c4c776ec523af4c2eb6a91e6c5361675be3;hp=f7ac0e681c7eb0c2d08072eac0d0c70ca9c6b564;hpb=692f449623fcc97ddf016cf5dc424226cb26350a;p=chaz%2Ftar diff --git a/ChangeLog b/ChangeLog index f7ac0e6..7d24603 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,7 +1,1002 @@ +2006-08-07 Paul Eggert + + * bootstrap: Redo po file retrieval to match Bison's method, + since the translation project changed its index format. + Don't use --assume-autoconf; it's now replaced + by looking in configure.ac. + (m4/codeset.m4, m4/intdiv.m4, m4/inttypes-pri.m4, m4/isc-posix.m4): + (m4/lcmessage.m4, m4/onceonly_2_57.m4, m4/gettext.m4, m4/glibc21.m4): + (m4/inttypes_h.m4, m4/lib-ld.m4, m4/lib-prefix.m4, m4/po.m4): + (m4/stdint_h.m4, m4/uintmax_t.m4, m4/ulonglong.m4): + Don't rename to ..._gl.m4, as this is no longer needed. + (m4/geteext.m4): Patch to remove the need for intl/*. + Use autopoint manually, then remove the intl files, + then undo changes to gnulib files that autoreconf made, + and then run aclocal/autoconf/autoheader/automake. + This makes our bootstrap procedure closer to Bison's. + (po/Makevars): Generate automatically. + * configure.ac (AC_PREREQ): Update from 2.59 to 2.60. + (gl_AC_TYPE_INTMAX_T, jm_AC_TYPE_UINTMAX_T): Remove. + * gnulib.modules: Add inttypes, stdint. + * lib/.cvsignore: Add close-stream.c, close-stream.h, + stdint.h, stdint_.h. + * po/Makefile: Remove; now automatically generated. + + * src/incremen.c (read_incr_db_01): Check input strings more + carefully. Do not pass arbitrary char values to isspace, as + this has undefined behavior. Likewise for assigning arbitrary + uintmax_t values to other types. + (read_negative_num, read_unsigned_num, read_timespec): + New functions, to check input values a bit more carefuly. + (read_num): Use read_unsigned_num. New arg MAX_VAL; + all callers changed. + (read_incr_db_2): Use these new functions. + Use a consistent diagnostic for unexpected EOF. + (read_directory_file): Do not assign arbitrary uintmax_t value + to int. + (read_timespec, write_directory_file_entry, write_directory_file): + Handle negative time_t values correctly. We don't bother to do + this with pre-2 formats, since presumably the time stamps were + output incorrectly. + + * src/tar.c (doc): Don't use \v in an argument to gettext; + gettext 0.15 rejects this. + +2006-07-24 Sergey Poznyakoff + + * src/tar.c (decode_options): Do not require -L with -M -Hpax. + It could be needed in future, but currently it is not. + * src/create.c (to_chars_subst): Update comment regarding OLDGNU + vs. GNU format differences. + (mode_to_chars): Treat OLDGNU_FORMAT same as GNU_FORMAT. Fixes bug + reported by TAMUKI Shoichi , which caused + equivalent `tar cf ...' and `tar rf ...' commands to produce + different archives. + + * tests/append02.at: New test case + * tests/Makefile.am, tests/testsuite.at: Add append02.at + +2006-07-20 Paul Eggert + + * bootstrap: Adjust to today's change to gnulib-tool by invoking + it with --assume-autoconf='latest-stable'. + +2006-07-16 Paul Eggert + + Adjust to recent gnulib changes. + * lib/.cvsignore: Remove atexit.c, exit.c, getndelim2.c, getndelim2.h, + pathmax.h, paxconvert.c, paxerror.h, xstrdup.c. + Add inttypes.h, mktime.c, wcwidth.h, xstrndup.c, xstrndup.h. + * src/create.c (start_header): Adjust to API change to mode_adjust. + +2006-07-09 Sergey Poznyakoff + + * THANKS: Add Ralf Wildenhues + * NEWS: Update + +2006-07-09 Ralf Wildenhues + + * doc/dumpdir.texi, doc/snapshot.texi, doc/sparse.texi, + doc/tar.texi: Fix some typos. + +2006-07-06 Sergey Poznyakoff + + tar --index-file=FILE --file=- sent the archive to FILE, and + the listing to stderr. Bug reported by Marcin Gryszkalis + + + * src/buffer.c (_open_archive): Remove stdlis initialization + * src/tar.c (decode_options): Initialize stdlis + * tests/indexfile.at: New test case + * tests/testsuite.at: Include indexfile.at + * tests/Makefile.am (TESTSUITE_AT): Add indexfile.at + +2006-07-05 Sergey Poznyakoff + + * doc/Makefile.am (manual): Fix TEXINPUTS + * doc/rendition.texi (FIXME): Do not use deprecated @quote-args. + Do not use @allow-recursion. In its current form the macro is not + recursive. + +2006-07-03 Sergey Poznyakoff + + * bootstrap (update_po): Fix single translation update + +2006-07-03 Sergey Poznyakoff + + * configure.ac (AC_CHECK_FUNCS): Check for getdtablesize + * src/common.h (closeopen): New function + * src/misc.c (chdir_arg): Use x2nrealloc to reallocate wd. + (get_max_open_files,closeopen): New functions + (chdir_do): Do not use save_cwd if it was already used more than + max_open_files-4 times to avoid running off the file + descriptors. + * src/tar.c (main): Call closeopen + * doc/tar.texi: Update --directory description + * NEWS: Update + +2006-06-26 Sergey Poznyakoff + + * doc/tar.texi: Update. Add cross-references. + * doc/sparse.texi: Add cross-references. + +2006-06-25 Sergey Poznyakoff + + * scripts/xsparse.c: A sample utility to expand sparse files + extracted by third-party tars. It is not meant to be installed nor + to be included in the distribution. It is here, so that it can be + obtained either from CVS or from the tar web site. + * doc/Makefile.am (tar_TEXINFOS): Sorted + * doc/tar.texi (Other Tars): New node describing how to extract + GNU-specific member formats using third-party tars. + * src/common.h (sparse_file_p): Remove + * src/sparse.c: Likewise + * src/create.c: Use ST_IS_SPARSE instead of sparse_file_p (update + paxutils first) + * src/tar.c: --sparse-version turns on --sparse + +2006-06-24 Sergey Poznyakoff + + * src/buffer.c (print_total_stats): Add default case. + * src/common.h (name_init): New prototype. + (xheader_string_end): Return bool. + * src/extract.c (extract_volhdr): Add missing return + * src/incremen.c: Remove not used variables + * src/sparse.c (pax_dump_header_0): Return false if + xheader_string_end fails (for 0.1 formats). + (pax_dump_header): Return meaningful value + * src/transform.c (segm_count): Change type to size_t + * src/xheader.c (xhdr_tab.decoder): pass keyword as a second + argument. All callers changed. + (decode_record): Check for numeric overflow + (xheader_string_end): Return boolean value. Check for possible + numeric overflow + +2006-06-23 Sergey Poznyakoff + + * doc/sparse.texi: New file + * doc/Makefile.am (tar_TEXINFOS): Add sparse.texi + * doc/intern.texi (Sparse Formats): New node + * doc/tar.texi: Update master menu + + * src/common.h (tar_sparse_major,tar_sparse_minor): New globals. + * src/sparse.c: Implement sparse format versioning. Implement new + version (1.0) of PAX sparse format. + (pax_sparse_member_p): Fix condition + (pax_dump_header): A dispatcher function + (pax_dump_header_0,pax_dump_header_1): New functions. + (pax_optab): Update + (oldgnu_dump_header): Minor fix: make sure + sparse_header.isextended is set before calling + set_next_block_after + * src/tar.c: New option --sparse-version + * src/tar.h (struct tar_stat_info.sparse_major,sparse_minor): New + members. + * src/xheader.c: Implement new keywords: GNU.sparse.name, + GNU.sparse.major, GNU.sparse.minor, GNU.sparse.realsize + + * tests/spmpv00.at, tests/spmvp01.at, tests/spmvp10.at: New + testcases. + + * tests/Makefile.am: Add spmvp00.at, spmpv01.at, spmpv10.at + * tests/shortrec.at: Explicitely give `-f -' to the tar invocation + * tests/sparsemvp.at: Rewritten as an include file. + (TAR_MVP_TEST): New macro + * tests/testsuite.at: Include sparsemvp.at, spmvp00.at, + spmvp01.at, spmvp10.at + +2006-06-21 Sergey Poznyakoff + + * doc/tar.texi (Overriding File Metadata): New node + Document --mtime option. + * src/common.h (set_mtime_option,mtime_option): New globals + * src/create.c (start_header): Override mtime if requested + * src/tar.c: Implement new option, --mtime, allowing to set + modification times for all archive members during creation. + (struct tar_args): textual_date_option replaced with a linked list + textual_date. All references updated. + (get_date_or_file,report_textual_dates): New functions. + * configure.ac: Raise version number to 1.15.92 + * NEWS: Update + +2006-06-20 Sergey Poznyakoff + + * src/common.h (struct name.explicit): Remove + Use variable names in all declarations + (name_scan): Remove second argument + * src/delete.c: Remove second argument from calls to name_scan + * src/update.c: Likewise + * src/incremen.c (procdir): Use is_individual_file to check for + files explicitely specified in the command line. Fixes bug + reported by Dat Head on 19 Jun 2006 (descending into mountpoints + with --one-file-system in use) + * src/misc.c (maybe_backup_file): Second argument is bool + * src/names.c (name_next_elt): Call register_individual_file + (namelist_match): Remove third argument + (name_match): Change return type to bool + (name_scan): Remove second argument + * src/sparse.c (pax_dump_header): Store original sparse file name + in GNU.sparse.name variable. The name field in the ustar header + now contains generated name (%d/GNUSparseFile.%p/%f), so that + non-pax-aware tars won't extract the file under the original + filename. + * src/xheader.c (GNU.sparse.name): New variable for storing sparse + file name. + +2006-06-13 Sergey Poznyakoff + + * doc/Makefile.am (check-options): Expand macros before grepping + in $(info_TEXINFOS) + * doc/rendition.texi (FIXME) [!PROOF_FOOTNOTED]: Enclose in a + cartouche + * doc/tar.texi: Define op as codeindex. Use special macros to + populate it + Consequently prefer @dfn{long options} over @dfn{mnemonic + options}. + Document --unquote, --no-unquote + (Short Option Summary): Build a table of cross-references to the + corresponding long options. + (Using Multiple Tapes,Multi-Volume Archives): Rewritten + + * doc/value.texi (xopindex,opsummary): New macros + + * doc/Makefile.am (check-options): New goal + * doc/tar.texi: Update + * src/tar.c: Implement --overwrite-dir option (long ago + documented). + +2006-06-12 Sergey Poznyakoff + + * doc/tar.texi: Document better the --totals option + * NEWS: Update + * src/buffer.c (total_blocks_deleted): New variable + (set_start_time): Set volume_start_time and last_stat_time as well + (set_volume_start_time): New function + (compute_duration): Do not call set_start_time, update + last_stat_time instead. Use it in calculation instead of + start_time, which is now set only once, upon startup. + (print_total_written): Removed. + (print_total_stats): New function for printing byte/speed statistics. + (_open_archive): Detect attempts to update compressed archives. + (_gnu_flush_write): Always update prev_written. + (open_archive): Call set_volume_start_time. + * src/common.h (volume_start_time,last_stat_time): New globals + (print_total_written): Replaced with: + (print_total_stats): New function + * src/delete.c (records_skipped): Remove static qualifier, the + variable is used by print_total_stats in buffer.c + * src/extract.c (check_time): Use volume_start_time when checking + for timestamp plausability. + * src/tar.c: (options, parse_opt): Allow for optional argument to + the --totals option, which specifies a signal upon delivery of which + the statistics must be output. + (main): Call print_total_stats if total_option is set. + +2006-06-11 Sergey Poznyakoff + + * src/xheader.c (xheader_set_single_keyword): Fix typo. + (decode_time): Avoid using gotos. + + * doc/mastermenu.el: New file + * doc/Makefile.am (master-menu): New goal + * doc/tar.texi: Update master menu + +2006-06-10 Sergey Poznyakoff + + * doc/tar.texi: Remove leftover include + +2006-06-09 Sergey Poznyakoff + + * doc/Makefile.am (tar_TEXINFOS): Add intern.texi + (EXTRA_DIST): Remove convtexi.pl, add texify.sed + * doc/intern.texi: New file + * doc/convtexi.pl: Remove + * doc/texify.sed: Auxiliary script to convert ../src/tar.h to + header.texi + * doc/rendition.texi: Fix typo + * doc/tar.texi: Update + * src/tar.h: Fix indentation, introduce end-of-format marker for + texify.sed + + * THANKS: Add Jason Armistead + * doc/tar.texi: Update + * NEWS: Update + * src/buffer.c: Implement more flexible checkpoint style + * src/common.h (checkpoint_option): Change type to unsigned + (checkpoint_style): New variable. + * src/tar.c: --checkpoint takes an optional argument specifying + number of records between two successive checkpoints (proposed + by Jason Armistead on 2004-06-22). Optional dot starting the + argument means "print dots instead of textual checkpoints". + (tar_help): New function + * src/transform.c: Minor fixes. + +2006-06-08 Sergey Poznyakoff + + * gnulib.modules: Add mkdtemp + * doc/dumpdir.texi: New file + * doc/Makefile.am (tar_TEXINFOS): Add dumpdir.texi + * doc/tar.texi: Document dumpdir format + * src/incremen.c (dumpdir_locate,obstack_code_rename): + (purge_directory): Re-implement renaming. Introduce + 'X' control code. + (make_tmp_dir_name): Remove + + * src/transform.c (set_transform_expr,_transform_name_to_obstack): + Implement NUMBER flag. + (add_char_segment): Fix length assignement + + * doc/tar.texi: Update + +2006-06-07 Sergey Poznyakoff + + * src/transform.c (transform_name_fp): Run fun even if + _transform_name_to_obstack returns false. + (_transform_name_to_obstack,set_transform_expr): Implement GNU + extension case conversion operations. + + * doc/tar.texi (transform): Document the option. + +2006-06-02 Sergey Poznyakoff + + * NEWS: Update + * src/common.h (set_transform_expr): New function + * tests/Makefile.am: Add incr04.at + * tests/testsuite.at: Likewise + * tests/incr04.at: New test case + * tests/long01.at: Fix typo in the comment + * tests/multiv04.at: Use genfile --files-from + + (Above changes need new genfile.c from paxutils) + + * TODO: Update + * NEWS: Update + * doc/tar.texi: Update + * src/transform.c: New file + * src/Makefile.am (tar_SOURCES): New module transform.c + * src/common.h (transform_name, transform_name_fp): New functions + (show_stored_names_option): Renamed to + show_transformed_names_option. All uses changed + * src/create.c (dump_file0): Transform file name + * src/extract.c (extract_archive): safer_name_suffix and + stripped_prefix_len are now called by decode_header + * src/list.c (print_header): Update displayable name selection. + * src/tar.c: New option --transform + New option --show-transformed-names generalizes + --show-stored-names. The latter is retained as an alias. + +2006-05-31 Sergey Poznyakoff + + * src/incremen.c (make_directory): Fix initialization of struct + directory. + +2006-05-25 Sergey Poznyakoff + + * doc/tar.texi: Document use of globbing patterns. + * src/tar.c (parse_opt): Add comment before --preserve case. + +2006-05-24 Sergey Poznyakoff + + * NEWS: Update + * doc/tar.texi: Update + * configure.ac (AM_INIT_AUTOMAKE): Use tar-ustar option. Raise + version requirement to 1.9 + * src/common.h (struct name): Refactured + (warn_regex_usage): New variable. + (dump_file): First argument is const char*. + (name_init,name_add): Removed + (name_add_name,name_add_dir): New functions + (name_next): Return const char*. + * src/create.c: (dump_file,dump_file0): First argument is const + char*. All callers updated. + * src/names.c: Rewritten handling of member names in the command + line. Tar no longer attempts to guess globbing patterns, instead + it relies on --wildcard option. + (init_names): Removed. + (struct name_elt): New structure. + (name_array): Change type to struct name_elt. All references updated + (name_add_name,name_add_dir): New functions + (name_next_elt): New function + (name_next): Rewritten using name_next_elt. + (namelist_match): Rewritten pattern matching using + exclude_fnmatch. + (names_notfound): Warn if globbing patterns were used without + --wildcards option + * src/tar.c (options): Move globbing-related options into a + separate group. Set -l as an alias to --check-links, as required + by UNIX98 + (struct tar_args): New fields + wildcards,matching_flags,include_anchored + (MAKE_EXCL_OPTIONS,MAKE_INCL_OPTIONS): New macros + (parse_opt): Use x2nrealloc to grow archive_name_array. + Use MAKE_EXCL_OPTIONS,MAKE_INCL_OPTIONS to create appropriate + fnmatch options, and name_add_name,name_add_dir to handle member + name and -C arguments. + (decode_options): Likewise + (main): Remove call to init_names. + + * tests/append.at, tests/append01.at, tests/extrac01.at, + tests/options.at, tests/options02.at, tests/same-order01.at, + tests/same-order02.at: Make AT_SETUP more readable. + +2006-05-23 Sergey Poznyakoff + + * src/buffer.c (change_tape_menu): Fix typo (uninitialized + variable) introduced yesterday. + +2006-05-22 Sergey Poznyakoff + + * doc/tar.texi: Use @var{file_name} instead of @var{file name} + * src/buffer.c (change_tape_menu): Break the loop after obtaining + new archive name. Check for empty input line. + +2006-05-15 Sergey Poznyakoff + + * tests/atlocal.in (XFAILFILE): New variable + * tests/version.at: Create $XFAILFILE on failure + * tests/testsuite.at (AT_TAR_CHECK): Declare expected failure if + $XFAILFILE exists. + +2006-05-13 Sergey Poznyakoff + + * THANKS: Update + * src/buffer.c (read_header0): Use read_header_primitive to avoid + clubbering current_tar_info. All callers updated. + * src/common.h (read_header_primitive): New function + * src/extract.c (extract_volhdr): New function + (prepare_to_extract): Use extract_volhdr as extractor for volume + names. + * src/list.c (read_header_primitive): New function + (read_header): Front end for read_header_primitive + * tests/chtype.at: New file + * tests/volsize.at: New file + * tests/Makefile.am (TESTSUITE_AT): Add chtype.at, volsize.at + (check-full): New target. + * tests/atlocal.in (TEST_DATA_URL,STAR_DATA_URL) + (STAR_TESTSCRIPTS): Provide default values. + (tarball_prereq): New function + * tests/testsuite.at (AT_TARBALL_PREREQ): New defun + (AT_STAR_PREREQ): Rewrite using tarball_prereq + Include chtype.at and volsize.at + * tests/volume.at: Add keywords. + + * tests/star/gtarfail.at, tests/star/gtarfail2.at, + tests/star/multi-fail.at, tests/star/pax-big-10g.at, + tests/star/ustar-big-2g.at, tests/star/ustar-big-8g.at + (AT_STAR_PREREQ): Provide md5 sum. + + * lib/.cvsignore: Update + +2006-05-08 Sergey Poznyakoff + + * tests/testsuite.at (AT_SORT_PREREQ, AT_UNPRIVILEGED_PREREQ): New + defines + + * tests/extrac04.at, tests/incr03.at, tests/listed02.at, + tests/pipe.at, tests/rename01.at, tests/rename02.at, + tests/rename03.at, tests/same-order01.at: Call + AT_SORT_PREREQ. Remove fd 2 redirection after calls to sort + * ignfail.at: Call AT_UNPRIVILEGED_PREREQ + +2006-05-08 Sergey Poznyakoff + + Listed incremental backups: keep more information about + directories. Handle renamed directories more effectively + (initial implementation, more updates to follow). + Source tree before this point is tagged + alpha_1_15_90_incremental_1. + + * NEWS: Update + * configure.ac: Raise version number to 1.15.91 + * src/common.h (rename_directory,append_incremental_renames): New + functions. + * src/extract.c (rename_directory): New function + * src/incremen.c (struct directory.contents, flags): New members + (nfs,found,new): Remove. Replaced by appropriate bitmask values in + `flags' field. All uses updated. + (directory_meta_table): New table. + (hash_directory): Rename to hash_directory_name + (compare_directories): Rename to compare_directory_names + (hash_directory_meta,compare_directory_meta,find_directory_meta): + New functions + (compare_dirents): Removed + (note_directory): Get 7th argument: directory contents. + All callers updated + (dumpdir_locate,makedumpdir): New functions + (scan_directory): Rewritten. Use makedumpdir to create a sorted + dumpdir array. This makes the obstack argument unnecessary. Besides, + ALL_CHILDREN flag is set only for new directories. + (procdir): Change return type to struct directory. Return + immediately if the directory was already initialized. Discover + directory renames using directory_meta_table. + (append_incremental_renames): New function. + (read_directory_file, write_directory_file): Use new snapshot file + format. + * src/names.c (collect_and_sort_names): Update dir_contents of the + first non-fake name entry when in listed incremental mode. + + * tests/incr03.at: New testcase + * tests/rename01.at: New testcase + * tests/rename02.at: New testcase + * tests/rename03.at: New testcase + * tests/Makefile.am: Add + incr03.at,rename01.at,rename02.at,rename03.at + * tests/testsuite.at: Likewise. + * tests/listed02.at: Update for the new behavior + * tests/multiv04.at (AT_KEYWORDS): Add missing incremental kw. + +2006-05-02 Sergey Poznyakoff + + * src/buffer.c (try_new_volume): Attempt to continue if the name + is apparently truncated in a GNU format volume. + + * tests/comprec.at, tests/delete01.at, tests/delete02.at, + tests/delete04.at, tests/delete05.at, tests/extrac05.at, + tests/listed01.at, tests/multiv01.at, tests/multiv02.at, + tests/pipe.at, tests/same-order01.at, tests/same-order02.at, + tests/sparse01.at, tests/sparse03.at: Always use genfile --file, + this enables extra error checking. + + * tests/multiv03.at: Attempt to extract a member with truncated + file name from the archive. + + * src/buffer.c (_open_archive): Remove unnecessary argument to + check_compressed_archive. + +2006-04-25 Sergey Poznyakoff + + * tests/sparse01.at, tests/sparse02.at, tests/sparse03.at, + tests/sparsemv.at, tests/sparsemvp.at: Skip the test if the file + system does not support sparse files. + * doc/tar.texi (@copying): Remove the reference to not existing + invariant section. + +2006-04-11 Sergey Poznyakoff + + * src/extract.c (extract_dir): Fix toggling existing directory + permissions (Debian bug #361077). Use parts of patch provided by + Ian Jackson . + * src/compare.c: Minor changes + * src/incremen.c (directory.new): New member + (note_directory,find_directory: Use make_directory to create + struct directory entries + (procdir): Avoid duplicating directories in the incremental + backup map. + * tests/Makefile.am (TESTSUITE_AT): Add extrac06.at + * tests/testsuite.at: Include extrac06.at + +2006-03-18 Ralf Wildenhues (trivial change) + + * tests/atlocal.in (PATH): Add build-aux from the source tree, + not the build tree. + +2006-03-13 Sergey Poznyakoff + + * THANKS: Add Benno Schulenberg + +2006-03-13 Jim Meyering + + * tests/listed02.at: Sort the two lines of stderr from the + first `tar -v --listed-incremental'. They would come out + reversed and provoke a test failure on a tmpfs + file system. + +2006-03-13 Benno Schulenberg + + * doc/tar.texi: Minor fixes. + * src/tar.c (options): Consistently begin help messages with a + lowercase letter. + +2006-03-12 Sergey Poznyakoff + + * tests/Makefile.am (AM_CPPFLAGS): Define LOCALEDIR + +2006-03-07 Paul Eggert + + * src/buffer.c (record_buffer_aligned): New var. + (init_buffer): Use it to ensure that the buffer is aligned. + This doesn't result in any measurable performance improvement + on my host (Debian GNU/Linux 3.1 stable, with default block size), + but I assume it does help on some hosts. + + * lib/.cvsignore: Sort. + +2006-03-04 Sergey Poznyakoff + + * tests/shortrec.at: Use -f - to read from stdin. + +2006-02-21 Sergey Poznyakoff + + * doc/tar.texi: Fix typo: --to-command instead of --to-program + +2006-02-20 Paul Eggert + + * tests/multiv04.at (split directory members in a MV archive): + Don't use %X in an awk printf format; this doesn't work with + Solaris 10 /usr/bin/awk. Use %x instead. + +2006-02-20 Sergey Poznyakoff + + * src/create.c (split_long_name): Fix maximum length estimation. + Patch by Jim Lowe. + * tests/Makefile.am (lustar01.at,lustar02.at,lustar03.at): New + tests. + * tests/atlocal.in: Add build-aux to the PATH + * tests/long01.at: Remove mkhier, use AT_TAR_MKHIER instead + * tests/longv7.at: Reword test title + * tests/lustar01.at: New test + * tests/lustar02.at: New test + * tests/lustar03.at: New test + * tests/testsuite.at (AT_TAR_MKHIER): New macro + (lustar01.at,lustar02.at,lustar03.at): New tests. + +2006-02-20 Paul Eggert + + * bootstrap: Don't claim lib/Makefile.am is generated automatically + from itself. + + Avoid installation glitches on Solaris 8 with Sun C 5.4. + * lib/.cvsignore: Add system-ioctl.h. + * lib/Makefile.tmpl (noinst_HEADERS): Add system-ioctl.h. + * src/buffer.c: Include system-ioctl.h. + * src/compare.c: Likewise. + * src/delete.c: Likewise. + * src/system.c: Include , . + * src/tar.c: Include . + +2006-02-19 Sergey Poznyakoff + + * src/buffer.c (add_chunk_header): Free st.orig_file_name after + calling finish_header(). + (new_volume): Prompt the user for archive name if unable to open + next archive. + + * src/create.c (dump_file0): Restore file_count_links, + accidentally removed on 2005-11-29. + * configure.ac: Raise version number to 1.15.90 + * NEWS: Likewise. + +2006-02-08 Sergey Poznyakoff + + * src/tar.c (tar_set_quoting_style): Provide second argument to + the format spec: program_invocation_short_name. Reported by Jim + Meyering. + +2006-02-07 Paul Eggert + + * gnulib.modules: Add closeout, exitfial. + * lib/.cvsignore: Add __fpending.c, __fpending.h, closeout.c, + closeout.h. + * src/buffer.c: Incluse closeout.h. + (_open_archive): Use freopen rather than fopen, so + that stdlis is always either stdout or stderr. Use + close_stdout_set_file_name to report its name. + * src/tar.c: Include closeout.h and exitfail.h. + (parse_opt, usage): Call close_stdout as appropriate, to check for + write errors. + (decode_options): Exit with status TAREXIT_FAILURE, not 1. + (main): Set exit_failure, to exit with proper status on memory + allocation failure and the like. + Use close_stdout rather than rolling our own test. + + * NEWS: --version now outputs copyright etc., to conform to the + GNU coding standards. Remove --license. + * gnulib.modules: Add version-etc-fsf. + * doc/tar.texi: Document the change. + * lib/.cvsignore: Add version-etc-fsf.c, version-etc.c, version-etc.h. + * scripts/Makefile.am (SED_CMD): Update PAKCAGE_NAME, not PACKAGE. + * scripts/backup.in: Remove --license. Change --version to conform + to GCS. + * scripts/restore.in: Likewise. + * scripts/backup.sh.in (license): Output briefer license in the + style of coreutils, for consistency with other changes. + * src/tar.c: Include . + (LICENSE_OPTION): Remove. + (options): Remove --license. + (license): Remove. + (parse_opt): Use version_etc instead of rolling it ourselves. + Remove --license. + * tests/version.at (tar --version): Check only the first line of + output. + + * ChangeLog, NEWS, src/common.h, src/extract.c, src/incremen.c: + * src/list.c, src/names.c, src/tar.h, src/xheader.c: + Update copyright year to 2006. + +2006-02-07 Jim Meyering + + * src/xheader.c (sparse_map_decoder): Fix misleading diagnostic. + +2006-01-31 Sergey Poznyakoff + + * src/common.h (get_gnu_dumpdir): Remove prototype + (is_dumpdir): New function + * src/extract.c (prepare_to_extract): Use is_dumpdir member to + check for dumpdirs. + * src/incremen.c (get_gnu_dumpdir): Static + (is_dumpdir): New function + (purge_directory): Use is_dumpdir + * src/list.c (list_archive): Use is_dumpdir + Do not wrap skip_member in mv_begin/mv_end, the function itself + takes care of it. + (decode_header): Set stat_info->is_dumpdir + (skip_member): Do nothing if skipped is true + * src/tar.h (struct tar_stat_info): New members is_dumpdir and skipped. + +2006-01-22 Sergey Poznyakoff + + * src/tar.c (decode_options): Refuse using --delete with + compression options. + +2006-01-18 Sergey Poznyakoff + + * NEWS: Updated. + * configure.ac (DEFAULT_QUOTING_STYLE): New configuration variable + * doc/tar.texi: Initial documentation for --quoting-style, + --quote-chars and --no-quote-chars option. + * src/tar.c: Implement new options --quoting-style, --quote-chars + and --no-quote-chars. + +2006-01-09 Paul Eggert + + * bootstrap: Default to pserver, and switch to cvs.sv.gnu.org, + to accommodate recent changes to the GNU CVS server. + * lib/.cvsignore: Add argp-pin.c, mkdirat.c, openat-priv.h. + +2005-12-14 Sergey Poznyakoff + + * src/names.c (name_scan): Take an additional argument requesting + exact matching. + * src/common.h (name_scan): Change prototype. + * src/delete.c, src/incremen.c, src/update.c: Update invocations + of name_scan. + +2005-12-13 Sergey Poznyakoff + + * src/common.h (struct name): New member `explicit'. Remove unused + member `isdir'. + * src/incremen.c (procdir): If name_scan() returns something, + check if it was explicitely given in the command line + * src/names.c (addname,add_hierarchy_to_namelist): Initialize + explicit member appropriately. + + * src/incremen.c (procdir): If --one-file-system is given and a + directory is found to be on another device, *and* this directory + is explicitely given in the command line, then do not omit it. + +2005-12-11 Sergey Poznyakoff + + * NEWS: Update + * doc/tar.texi: Document --delay-directory-restore option. + (Configuring Help Summary): Document usage of ARGP_HELP_FMT + variable to customize help output. + * src/common.h (delay_directory_restore_option): New global. + * src/extract.c (directories_first): Replaced by + delay_directory_restore_option. All uses changed. + * src/tar.c (options,parse_opt): New options + --delay-directory-restore and --no-delay-directory-restore + +2005-12-09 Sergey Poznyakoff + + * src/buffer.c (open_archive): Add default case to shut up gcc. + * src/common.h (set_file_atime): Add prototype. + * src/create.c (to_chars_subst): Remove unused variable + Make sure useful result code is returned. + * src/incremen.c (read_directory_file): Fix format string + Thanks Eric Blake for reporting. + +2005-12-08 Sergey Poznyakoff + + * doc/tar.texi (Current status): Renamed to 'Changes' and moved to + appendices. + (Large or Negative Values): Rewritten + * src/common.h (gid_to_chars, major_to_chars, minor_to_chars) + (mode_to_chars, off_to_chars, size_to_chars, time_to_chars) + (uid_to_chars, uintmax_to_chars): Return bool + * src/create.c (gid_to_chars, major_to_chars, minor_to_chars) + (mode_to_chars, off_to_chars, size_to_chars, time_to_chars) + (uid_to_chars, uintmax_to_chars): Return bool + (to_chars): Return bool + (start_header): Check return values of convertion routines. Fail + if unable to store data in the header. + +2005-12-07 Sergey Poznyakoff + + * doc/tar.texi: Following the discussion with Karl Berry, + discontinue using @value{} substitutions for Texinfo commands. + Properly index all long options. Print a + separate long option index. + * doc/value.texi: Remove @set's + + * doc/tar.texi: Update --info-script documentation + Resolve some more FIXMEs. + * scripts/dump-remind.in: Use TAR_VOLUME instead of reading volno + file. + * src/buffer.c (new_volume): Update invocation + (change_tape_menu): New function. Disable '!' command if given + --restrict option. + * src/common.h (sys_exec_info_script): Update declaration + (restrict_option): New global + * src/system.c (sys_exec_info_script): The script can supply new + archive name to use by writing it to file descriptor 3. + * src/tar.c (options): Add --restrict option. Use macros for + option grouping. + (license): Print full list of copyright years + * NEWS: Update + +2005-12-06 Eric Blake (trivial changes) + + * configure.ac (DENSITY_LETTER): Fix m4 overquoting. + * .cvsignore: Ignore .bootstrap. + +2005-12-06 Sergey Poznyakoff + + * doc/tar.texi: Document --to-command and --info-script + options. Add missing xrefs. + * src/buffer.c (new_volume): Use sys_exec_info_script() instead of + system(). + * src/common.h (archive_format_string,subcommand_string) + (sys_exec_info_script): New prototypes. + * src/system.c (sys_exec_info_script): New function. + * src/tar.c (archive_format_string): Remove static qualifier. + (subcommand_string): New function. + +2005-12-01 Sergey Poznyakoff + + * src/extract.c: 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 + (extract_dir): Obtain root_device here, to make sure it works + correctly with -C. + + * src/incremen.c (purge_directory): Skip the member and return if + the archive is not in incremental format. + * tests/incr02.at: New testcase + * tests/Makefile.am: Add incr02.at + * tests/testsuite.at: Likewise + + * THANKS: Add Guerkan Karaman. + * NEWS: Update + +2005-11-30 Paul Eggert + + * doc/tar.texi (Option Summary): Rewrite the + --atime-preserve=system description in response to Ian Turner's + proposed patch. + +2005-11-30 Ian Turner + + * doc/tar.texi (Extracting Specific Files): Remove obsolescent + FIXME. + +2005-11-29 Paul Eggert + + * NEWS: New option --atime-preserve=system, which uses O_NOATIME. + * THANKS: Add Ian Turner. + + * 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. + + * lib/.cvsignore: Add malloc.h, regcomp.c, regex.c, regex.h, + regex_internal.c, regex_internal.h, regexc.c; used by rpmatch. + +2005-11-29 Ian Turner + + 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. + +2005-11-29 Paul Eggert + + * THANKS: Convert back to UTF-8, sort (using LC_ALL=C on Debian + stable), and consistently use tabs rather than spaces. + +2005-11-27 Sergey Poznyakoff + + * src/xheader.c: Remove parts of code prematurely introduced + yesterday. Thanks Eric Blake. + +2005-11-26 Sergey Poznyakoff + + * src/xheader.c (xheader_format_name): Fix memory leak. + +2005-11-11 Sergey Poznyakoff + + * gnulib.modules: Add rpmatch + * lib/stdopen.h, lib/stdopen.c: New file. Imported from coreutils. + * lib/Makefile.tmpl: Add stdopen.h, stdopen.c + * po/POTFILES.in: Add rpmatch.c + * src/tar.c (confirm): Rewritten using rpmatch. + (decode_options): Minor optimizations + (main): Call stdopen() to ensure the first three descriptors are + open. + + * tests/multiv01.at, tests/multiv02.at, tests/multiv03.at, + tests/multiv04.at, tests/sparsemv.at, tests/sparsemvp.at, + tests/star/multi-fail.at: Close stdin so that if something fails + causing tar to ask for the next volume, it won't hang the + testsuite. + + * 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. @@ -27,13 +1022,13 @@ 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 @@ -63,7 +1058,19 @@ of related tests in groups. * doc/tar.texi: Update - + +2005-11-07 Paul Eggert + + * src/xheader.c (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): + (xheader_store): Likewise. + * src/common.h (xheader_store): Likewise. + 2005-11-07 Sergey Poznyakoff and Paul Eggert @@ -129,6 +1136,13 @@ 2005-11-06 Paul Eggert + * NEWS: Minor language and white space fixes. + + * 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. + * src/xheader.c (strtoimax, strtoumax): Remove decls; now done in system.h. @@ -6811,8 +7825,8 @@ See ChangeLog.1 for earlier changes. -Copyright (C) 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005 Free Software -Foundation, Inc. +Copyright (C) 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006 +Free Software Foundation, Inc. This file is part of GNU tar.