]> Dogcows Code - chaz/tar/blobdiff - ChangeLog
Merge changes from gnulib for file system sub-second time stamps.
[chaz/tar] / ChangeLog
index bd3d4def124fe7b502f4ea20ad32a188d9945631..dcc627a53c9b9214d4b2611375a0dd549c9a433d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,260 @@
+2005-09-16  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Merge changes from gnulib for file system sub-second time stamps.
+       * configure.ac: Remove checks for struct stat.st_spare1, struct
+       stat.st_atim.tv_nsec, struct stat.st_atimespec.tv_nsec, struct
+       stat.st_atimensec, as gnulib now does this for us.
+       Similarly for LIB_CLOCK_GETTIME.
+       * gnulib.modules: Add stat-time.
+       * lib/.cvsignore: Add stat-time.h.
+       * src/common.h: Include stat-time.h.
+       (timespec_lt): Remove.  All callers changed to use timespec_cmp.
+       (get_stat_atime, get_stat_ctime, get_stat_mtime):
+       (set_stat_atime, set_stat_ctime, set_stat_mtime):
+       Remove; now defined by stat-time.h.
+
+2005-09-14  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       * src/incremen.c (list_dumpdir): New function. Used to dump
+       contents of GNUTYPE_DUMPDIR blocks.
+       * src/common.h (list_dumpdir): Likewise.
+       * src/list.c (list_archive): Use list_dumpdir() to display
+       GNUTYPE_DUMPDIR blocks. Do that only if two or more -v options are
+       given.
+
+2005-09-12  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * lib/.cvsignore: Adjust to current gnulib and modules used.
+       Add getdelim.c, getdelim.h, mbchar.c, mbchar.h, mbuiter.h, memchr.c,
+       pipe-safer.c, size_max.h, strdup.c, strdup.h, strnlen.h, strnlen1.c,
+       strnlen1.h, unistd--.h.
+       Remove getndelim2.c, getndelim2.h, pathmax.h, sysexits.h, xstrdup.c.
+
+       Treat fishy-looking hard links like fishy-looking symlinks.
+       * src/extract.c (struct delayed_set_stat): Rename after_symlinks
+       member to after_links.  All uses changed.
+       (struct delayed_link): Renamed from struct delayed_symlink.
+       All uses changed.  New member is_symlink.
+       (delayed_link_head): Renamed from delayed_symlink_head.  All uses
+       changed.
+       (create_placeholder_file): New function, taken from extract_symlink.
+       (extract_link): Create placeholders for fishy-looking hard links.
+       (extract_symlink): Move code into create_placeholder_file.
+       (apply_delayed_links): Renamed from apply_delayed_symlinks.
+       All uses changed.  Create both hard links and symlinks.
+
+2005-09-03  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * README-alpha: Modernize description of software required for
+       developers.
+
+2005-09-03  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       * gnulib.modules: Add strdup
+       * src/incremen.c (purge_directory): Do not dereference symbolic
+       links. Bug reported by Ralph Corderoy <ralph@inputplus.co.uk> and
+       David Brown <davidb@davidb.org>
+       * tests/incr01.at: New test.
+       * tests/Makefile.am: Add incr01.at
+       * tests/testsuite.at: Likewise
+       * THANKS: Updated
+
+2005-08-17  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       * src/incremen.c (read_directory_file): Use strtoumax to read
+       snapshot file contents.
+       (write_directory_file_entry): Use umaxtostr().
+
+2005-07-31  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       * src/create.c (file_dumpable_p,dump_file0): Fix handling of
+       sparse files to /dev/null with --totals option.
+       * tests/update.at: Remove dependency on file order.
+
+2005-07-08  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
+
+       * doc/tar.texi: Fix typo.
+
+2005-07-07  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
+
+       * tests/pipe.at: Pipe the output from `tar xfv' through sort.
+
+2005-06-25  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
+
+       * src/sparse.c (tar_sparse_init): Fill structure with zeros. Call
+       sparse_select_optab(). All callers updated.
+       (sparse_member_p, sparse_fixup_header): Use tar_sparse_init().
+
+2005-06-23  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
+
+       * src/sparse.c (pax_sparse_member_p): Checking member size
+       vs. file size is not reliable enough. Use sparse_map_avail.
+
+       * tests/star/gtarfail.at: Adapt to the new output format
+       * tests/star/gtarfail2.at: Likewise
+       * tests/star/multi-fail.at: Likewise
+       * tests/star/pax-big-10g.at: Likewise
+       * tests/star/ustar-big-2g.at: Likewise
+       * tests/star/ustar-big-8g.at: Likewise
+
+       * tests/sparse03.at: New test.
+       * tests/Makefile.am: Add sparse03.at
+       * tests/testsuite.at: Likewise
+
+       * src/xheader.c (size_decoder): Do not set archive_file_size.
+
+       Fix bugs introduced yesterday:
+
+       * src/sparse.c (tar_sparse_init):  Initialize
+       dimped_size to 0.
+       (sparse_scan_file): Initialize archive_file_size to 0. The
+       variable keeps size of the file *as stored in the archive*, not
+       the size reported by stat.
+
+2005-06-22  Paul Eggert  <eggert@cs.ucla.edu>
+
+       A sweep of the sparse code prompted by a bug report by Jim Meyering.
+       * src/sparse.c: Include <inttostr.h>.
+       (struct tar_sparse_file): offset and dumped_size are off_t, not
+       size_t.  optab is now const *.
+       (dump_zeros): Return bool success flag, not off_t.
+       All callers changed.
+       Use a constant-zero buffer rather than clearing a buffer each time.
+       Don't mess up if write fails.
+       (dump_zeros, check_sparse_region):
+       Don't assume off_t is no wider than size_t.
+       (tar_sparse_init): Don't bother clearing a field that is already clear.
+       (zero_block_p): First arg is const *, not *.
+       (clear_block, SPARSES_INIT_COUNT): Remove.
+       (sparse_add_map): First arg is now struct start_stat_info *, not
+       struct tar_sparse_file *.  All callers changed.
+       Use x2nrealloc to check for size_t overflow.
+       (parse_scan_file): Cache commonly-used parts of file.
+       Use an auto buffer, not a static one.
+       Don't bother clearing the buffer; not needed.
+       Don't bother clearing items that are already clear.
+       (oldgnu_optab, star_optab, pax_optab): Now const.
+       (sparse_dump_region): Don't bother clearing the buffer before
+       reading into it; just clear the parts that aren't read into.
+       (sparse_dump_file): Clear the whole local variable 'file'.
+       (diff_buffer): Remove; now a local var.
+       (check_sparse_region): Don't bother clearing buffer before
+       reading into it.  Don't assume off_t is promoted to long.
+       (oldgnu_get_sparse_info, star_get_sparse_info):
+       Use an auto status, not static.
+       * src/tar.h (struct tar_stat_info): had_trailing_slash is
+       now bool, not int.
+       * src/xheader.c (sparse_offset_coder, sparse_numbytes_coder):
+       Rewrite to avoid cast.
+       (sparse_offset_decoder, sparse_numbytes_decoder):
+       Diagnose excess entries rather than crashing.
+
+2005-06-22  Jim Meyering  <jim@meyering.net>
+
+       * src/common.h (timespec_lt): Add a return type: bool.
+
+2005-06-21  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Further improvements inspired by Jim Meyering's fixes.
+
+       * NEWS: Better support for full-resolution time stamps.
+       The -v option now prints time stamps only to 1-minute resolution.
+       * gnulib.modules: Add utimens.
+       * lib/.cvsignore: Add imaxtostr.c, inttostr.c, inttostr.h,
+       offtostr.c, umaxtostr.c, utimens.c, utimens.h.  Remove paxconvert.c.
+       * lib/Makefile.tmpl (libtar_a_SOURCES): Remove paxconvert.c.
+       * lib/paxconvert.c: Remove; superseded by umaxtostr.c.
+       * po/POTFILES.in: Remove lib/paxconvert.c.  Add lib/xalloc-die.c,
+       lib/obstack.c.
+       * src/buffer.c (set_start_time, compute_duration, start_time):
+       Use gettime rather than rolling our own code.
+       * src/common.h (OLDGNU_NAME_FIELD_SIZE, MAXOCTAL11, MAXOCTAL7): Remove.
+       (newer_ctime_option): Remove.
+       (timespec_lt): New function.
+       (OLDER_STAT_TIME): Use it.
+       (string_to_chars): First arg is char const *, not char *.
+       (tartime): Time arg is now struct timespec.  New bool arg.
+       All callers changed.
+       (code_ns_fraction): New decl.
+       (sys_stat_nanoseconds): Remove decl.
+       (get_stat_atime, get_stat_ctime, get_stat_mtime): New functions.
+       (set_stat_atime, set_stat_ctime, set_stat_mtime): New functions.
+       * src/compare.c: Include utimens.h rather than rolling our own.
+       (diff_dir, diff_file, diff_link, diff_symlink, diff_special):
+       Prototype.
+       (diff_dumpdir, diff_multivol): Prototype.
+       (diff_file): Support higher-resolution time stamps.
+       * src/create.c: Include utimens.h rather than rolling our own.
+       (MAX_OCTAL_VAL): New macro.
+       (tar_copy_str, string_to_chars): Don't bother to zero-fill;
+       the destination is already zeroed.
+       (string_to_chars): First arg is char const *.
+       (start_private_header): Use MINOR_TO_CHARS, not MAJOR_TO_CHARS,
+       for minor device number.
+       (write_header_name, dump_hard_link, dump_file0):
+       Simplify test for old GNU format.
+       (start_header): Put in placeholders for uid, etc., even when
+       using extended headers, for benefit of older "tar" implementations.
+       Don't assume uintmax_t is wider than 32 bits.
+       Output extended header for mtime if needed.
+       (dump_regular_finish, dump_file0):
+       Support extended time stamp resolution.
+       * src/extract.c: Include utimens.h rather than rolling our own.
+       (check_time): Support extended time stamp resolution.
+       * src/list.c: Include <inttostr.h>.
+       (tartime): Use umaxtostr rather than stringify_uintmax_t_backwards.
+       * src/xheader.c: Include <inttostr.h>.
+       Do not include <xstrtol.h>.
+       (strtoimax) [!HAVE_DECL_STRTOIMAX && !defined strtoimax]: New decl.
+       (strtoumax) [!HAVE_DECL_STRTOUMAX && !defined strtoumax]: New decl.
+       (BILLION, LOG10_BILLION): New constants.
+       (to_decimal): Remove; superseded by inttostr.  All callers changed
+       to use umaxtostr.
+       (xheader_format_name): Don't assume pids and uintmax_t values
+       fit in 63 bytes (!) when printed.
+       (decode_record): Don't bother to check for ERANGE; an out of range
+       value must be treater than len_max anyway.
+       If the length is out of range, output it in the diagnostic.
+       (format_uintmax): Remove; all callers changed to use umaxtostr.
+       (xheader_print): Don't assume sizes can be printed in 99 bytes (!).
+       (out_of_range_header): New function.
+       (decode_time): Use it.
+       (code_time): Accept struct timespec, not time_t and unsigned long.
+       All callers changed.  Size sbuf properly, and remove unnecessary check.
+       Don't assume time stamps can fit in 199 bytes.
+       Handle negative time stamps.  Handle fractional time stamps
+       more consistently.  Don't output unnecessary trailing zeros.
+       (decode_time): Yield struct timespec, not time_t and unsigned long.
+       All callers changed.
+       Handle negative time stamps.  Truncate towards minus infinity
+       consistently.  Improve overflow checks, and output a better
+       diagnostic on overflow.
+       (code_num): Don't assume uintmax_t can be printed in 99 bytes (!).
+       (decode_num): New function, for better diagnostics.
+       (atime_coder, atime_decoder, gid_decoder, ctime_coder):
+       (ctime_decoder, mtime_coder, mtime_decoder, size_decoder):
+       (uid_decoder, sparse_size_decoder, sparse_numblocks_decoder):
+       (sparse_offset_decoder, sparse_numbytes_decoder):
+       Use decode_num, etc., instead of xstrtoumax, etc.
+
+2005-06-21  Jim Meyering  <jim@meyering.net>
+
+       Carefully crafted invalid headers can cause buffer overrun.
+       Invalid header fields go undiagnosed.
+       Some valid time strings are ignored.
+
+       * src/xheader.c (sparse_numblocks_decoder): Remove unchecked use
+       of `calloc'.  Use xcalloc instead.
+       (decode_time, gid_decoder, size_decoder, uid_decoder):
+       (sparse_size_decoder, sparse_offset_decoder, sparse_numblocks_decoder):
+       Ensure that the result of calling xstrtoumax is no larger than
+       the maximum value for the target type.  Upon any failure, exit with
+       a diagnostic.
+       (sparse_numblocks_decoder): Avoid buffer overrun/heap corruption:
+       use x2nrealloc, rather than `n *= 2' and xrealloc(p, n,....
+       (decode_time): Rewrite to accept time strings like
+       1119018481.000000000.  Before, such strings were always ignored.
+
 2005-06-13  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
 
        * src/create.c (dump_file0): Check for is_avoided_name()
@@ -6,7 +263,7 @@
        * tests/update.at: New file
        * tests/Makefile.am (TESTSUITE_AT): Add update.at
        * tests/testsuite.at: Likewise
-       
+
 2005-06-13  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
 
        * configure.ac (AC_STRUCT_ST_BLKSIZE)
This page took 0.024653 seconds and 4 git commands to generate.