X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=ChangeLog;h=14e01a7a69a6abb2c9a6b0f586c00eb15bb94344;hb=d659cbaccdc1f3279c49107cf15f15a639738529;hp=c1e77f7d6bf2f79f5be1fb5449767caef336c844;hpb=87a7b31a82a6ef8ee1b7bd8b5fc4cedfe5693cb0;p=chaz%2Ftar diff --git a/ChangeLog b/ChangeLog index c1e77f7..14e01a7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,443 @@ -2005-02-04 Sergey Poznyakoff +2005-06-21 Paul Eggert + + 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 . + (tartime): Use umaxtostr rather than stringify_uintmax_t_backwards. + * src/xheader.c: Include . + Do not include . + (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 + + 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 + + * src/create.c (dump_file0): Check for is_avoided_name() + first. Fixes bug reported by Martin Lohmeier + + * tests/update.at: New file + * tests/Makefile.am (TESTSUITE_AT): Add update.at + * tests/testsuite.at: Likewise + +2005-06-13 Sergey Poznyakoff + + * configure.ac (AC_STRUCT_ST_BLKSIZE) + (AC_STRUCT_ST_BLOCKS): Removed. Handled by system.m4. + +2005-06-02 Paul Eggert + + * src/names.c (excluded_name): excluded_filename -> + excluded_file_name, because the name was changed in gnulib. + +2005-05-30 Sergey Poznyakoff + + * src/tar.c (read_name_from_file,update_argv): Automatically + detect nul-terminated list files. + * NEWS: Updated + +2005-05-27 Sergey Poznyakoff + + * scripts/backup.sh.in: Bugfixes. + +2005-05-26 Sergey Poznyakoff + + * scripts/backup.in: Minor fixes + * scripts/backup.sh.in (mt_begin,mt_rewind) + (mt_offline,mt_status): Use $MT to invoke mt + (init_common): Set --rsh-command option for mt if TAPE_FILE is a + remote archive. + * doc/tar.texi: Document new backup scripts behavior + +2005-05-22 Sergey Poznyakoff + + * lib/.cvsignore: Updated + * lib/Makefile.tmpl: Add new paxutils files + * po/POTFILES.in: Likewise + * src/buffer.c: Update invocations of safer_name_suffix() + * src/create.c: Likewise + * src/extract.c: Likewise + * src/xheader.c: Likewise + * src/common.h: Include paxlib.h instead of paxerror.h + (safer_name_suffix,removed_prefixes_p): Removed. The functions are + imported from paxutils + * src/names.c (hash_string_hasher,hash_string_compare) + (hash_string_insert,hash_string_lookup,removed_prefixes_p) + (safer_name_suffix): Moved to paxutils + +2005-05-19 Sergey Poznyakoff + + * bootstrap (copy_files): Accept optional third argument: a prefix + to be appended to destination file names. + Import paxutils/paxlib files. + * configure.ac: Remove checking for LIB_SETSOCKOPT, it is handled + by paxutils. + * lib/Makefile.tmpl (libtar_a_SOURCES): Add paxerror.c paxexit.c + paxconvert.c + * po/POTFILES.in: Likewise. + * src/common.h: Remove defines and declarations imported from + paxutils + * src/misc.c: Likewise + * src/list.c (stringify_uintmax_t_backwards): Moved to paxutils + +2005-05-17 Paul Eggert + + * src/misc.c (remove_any_file): Fix typo in previous change. + +2005-05-14 Paul Eggert + + Port to Solaris 10's treatment of unlinking directories. + * gnulib-modules: Add unlinkdir. + * lib/.cvsignore: Add unlinkdir.h, unlinkdir.c. + * src/common.h (we_are_root): Remove extern decl; it's now static. + * src/extract.c (we_are_root): Now static. + * src/misc.c: Include . + (remove_any_file): Use cannot_unlink_dir () rather than we_are_root. + + * ChangeLog, ChangeLog.1, Makefile.am, NEWS, PORTS, README, + README-alpha, TODO, bootstrap, configure.ac, doc/Makefile.am, + doc/convtexi.pl, doc/fdl.texi, doc/gendocs_template, + lib/Makefile.tmpl, lib/prepargs.c, lib/waitpid.c, po/POTFILES.in, + scripts/Makefile.am, scripts/backup-specs, scripts/backup.in, + scripts/backup.sh.in, scripts/restore.in, src/Makefile.am, + src/arith.h, src/buffer.c, src/common.h, src/compare.c, + src/create.c, src/delete.c, src/extract.c, src/incremen.c, + src/list.c, src/mangle.c, src/misc.c, src/names.c, src/sparse.c, + src/system.c, src/tar.c, src/tar.h, src/update.c, src/utf8.c, + src/xheader.c, tests/Makefile.am, tests/append.at, + tests/append01.at, tests/comprec.at, 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/gzip.at, tests/ignfail.at, tests/incremental.at, + tests/link01.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/old.at, tests/options.at, tests/options02.at, tests/pipe.at, + tests/recurse.at, tests/same-order01.at, tests/same-order02.at, + tests/shortrec.at, tests/sparse01.at, tests/sparse02.at, + tests/testsuite.at, tests/truncate.at, tests/version.at, + tests/volume.at, tests/star/gtarfail.at, tests/star/gtarfail2.at, + tests/star/multi-fail.at, tests/star/pax-big-10g.at, + tests/star/quicktest.sh, tests/star/ustar-big-2g.at, + tests/star/ustar-big-8g.at: + Update FSF postal mail address. + +2005-05-12 Sergey Poznyakoff + + * NEWS: Updated + * THANKS: Updated + * bootstrap: Install files from paxutils/doc + * doc/Makefile.am (tar_TEXINFOS): Add genfile.texi + * doc/tar.texi (Genfile): New appendix + * src/compare.c (diff_file): diff_handle was not initialized + * src/create.c (dump_regular_file): Correctly pad archive members + that shrunk during archiving. Repored by Frank Heckenbach. + * src/extract.c (file_newer_p): Return false if file does not + exist + (prepare_to_extract): Correct warning wording. + * tests/truncate.at: New test case + * tests/Makefile.am: Add truncate.at + * tests/testsuite.at: Likewise. + + * doc/.cvsignore: Updated + * lib/.cvsignore: Updated + * tests/.cvsignore: Updated + +2005-05-02 Paul Eggert + + * tests/multivol04.at: Tell awk to read from /dev/null. + + Adjust to recent gnulib changes. + * lib/.cvsignore: Add dup-safer.c, fd-safer.c, unistd-safer.h. + * src/common.h (initial_umask): New var. + * src/create.c (start_ueader): Use it, and adjust to new modechange + API. + (hash_link): unsigned -> size_t parameters and result. + * src/incremen.c (hash_directory): Likewise. + * src/names.c (hash_string_hasher): Likewise. + * src/tar.c (parse_opt): Set it, and adjust to new modechange API. + +2005-04-19 Sergey Poznyakoff + + * tests/Makefile.am: Add shortrec.at. + +2005-04-18 Paul Eggert + + * src/buffer.c (reading_from_pipe): Remove. All uses removed. + (short_read): Don't warn about short reads; they're normal. + * tests/shortrec.at: New file. + * tests/testsuite.at: Include it. + + * bootstrap (gnulib_modules): Don't create a file modlist.tmp, as + it is sometimes left behind as a garbage file (maybe due to the + multiple traps?). + +2005-04-14 Sergey Poznyakoff + + * src/list.c: Handle Solaris 'X' type flag + * src/tar.h (SOLARIS_XHDTYPE): New define + +2005-04-06 Sergey Poznyakoff + + * src/tar.c: Minor fixes to text messages. Proposed by Benno + Schulenberg. + * src/extract.c: Likewise + (extract_file): Assign orig_file_name + to save_name uniformly over the program. This fixes matching + directory names at the start of an archive volume. + * src/buffer.c (flush_write): Warn when the name of the archive + straddling volume boundary is longer than 100 characters. Earlier + behavior was to issue a fatal error. + (struct zip_magic): Reverted part of changes from 2005-04-04. + They make the maintenance too costly. Removing `unsigned' + qualifier from `magic' member should be enough. + * src/compare.c (diff_init): Read directory file if in listed + incremental. This prevents spurious 'Contents differ' diagnostics. + (diff_archive): Minor fixes to text messages + (diff_file,diff_dumpdir,diff_multivol): Assign orig_file_name + to save_name uniformly over the program. This fixes matching + directory names at the start of an archive volume. + * src/create.c: Assign orig_file_name + to save_name uniformly over the program. This fixes matching + directory names at the start of an archive volume. + * src/list.c: Likewise + + * tests/multiv03.at: Modified to match the new behavior + * tests/multiv04.at: New file. Test splittind directory members between + the archive volumes. + * tests/Makefile.am: Add multiv04.at + * tests/testsuite.at: Likewise. + +2005-04-04 Paul Eggert + + * configure.ac (AC_CONFIG_AUX_DIR): Rename from config to build-aux, + for reasons discussed in the thread beginning at + . + * .cvsignore: Remove config; add build-aux. + + * src/buffer.c (struct zip_magic): Use char arrays, not pointers. + The unsigned char * pointer ran afoul of pedantic C compilers, and + we didn't need pointers anyway. Put the size field before the + data to avoid unnecessary padding. All uses changed. + (magic) Make it const, since it doesn't change. All uses changed. + +2005-04-02 Paul Eggert + + * src/xheader.c (decode_record): Don't dump core when given + a corrupted extended header. Problem reported by Jim Meyering. + Also, check for other ways that the header might be invalid, + e.g., missing newline at end. Do not allow keys with nulls. + Allow blanks before and after length, as POSIX requires. + Do not allow leading "-" in length. Check for length overflow. + (xheader_decode, xheader_decode_global): Let decode_record + check for exhaustion of record. + (xheader_read): Null-terminate the extended record; + decode_record relies on this. + +2005-03-21 Paul Eggert + + * bootstrap (TP_URL): Change from + to + to avoid + some redirection glitches. + Use "trap - 0" rather than "trap 0" to fix a POSIX-conformance bug. + * doc/.cvsignore: Change "tar.info" to "tar.info*". Sort. + * lib/.cvsignore: Add intprops.h (new gnulib file). + +2005-03-04 Sergey Poznyakoff + + * src/list.c (print_header): Print UID/GID in case of + empty user/group name. This could occur when dumping + files belonging to non-existing users and when listing + broken archives. + Reported by Igor Lautar. + + * src/create.c: Correctly parse empty uname/gname + * src/sparse.c (sparse_scan_file): Bugfix. offset had + incorrect type. + + * scripts/backup.in: Use `head -n 1'. Provide missing + argument to ${MT_STATUS}. Proposed by Jan Merka. + * scripts/backup.sh.in: Likewise. Fixed typo in + MT_OFFLINE assignment. + * scripts/restore.in (restore_fs): Use root_fs + +2005-02-15 Sergey Poznyakoff + + * src/create.c: Replace strdup with xstrdup + * src/names.c: Likewise + * src/tar.c: Likewise + + * tests/append01.at: Added reference to bug-tar archive + * tests/listed02.at: Use -print with find. + +2005-02-11 Sergey Poznyakoff + + * THANKS: Added Tim Adye. Fixed UTF. + * src/list.c (read_header): Removed assignment to + oldgnu_header.isextended. It was breaking append mode. + + * tests/append01.at: New test. + * tests/Makefile.am: Added append01.at + * tests/testsuite.at: Likewise + +2005-02-06 Sergey Poznyakoff + + * gnulib.modules: New file. List of required gnulib + modules. + * bootstrap: Merge list of required modules from + paxutils with that from tar proper. + * src/tar.c: Various fixes in help and diagnostic messages. + +2005-02-05 Sergey Poznyakoff + + * src/common.h (EXTRACT_OVER_PIPE): New macro + * src/compare.c: Code clean up. + * src/extract.c (extract_archive): Do not check for + EXTRACT_OVER_PIPE, decode_options() does this. + * src/misc.c (exec_error,fork_error,dup2_error) + (pipe_error): Removed unneeded functions. + * src/system.c (sys_exec_command): Use xclose, xpipe, + xfork, xdup2 and exec_fatal. + * src/tar.c (options): Improved sorting. Document --backup=off. + (decode_options): Clear backup_option if necessary. + +2005-02-05 Sergey Poznyakoff + + Initial implementation of --to-command option proposed + by Hansjoerg Lipp. + + * bootstrap: Get setenv module from gnulib + * src/buffer.c: Do not use 8-bit chars in comments + * src/common.h (to_command_option) + (ignore_command_error_option): New globals + (sys_exec_command,sys_wait_command): New commands + * src/extract.c (extract_file): Handle to_command_option + Fix error recovery: decrease `size' by `written', not + by `count', otherwise tar misses the next header + Do not diagnose write error if to_command_option + is set, since the command may have exited prematurely. + It would be better to check for sigpipe, though. + (prepare_to_extract): Handle to_command_option + * src/misc.c (exec_error, fork_error, dup_error) + (pipe_error): New functions + * src/system.c (sys_exec_command) + (sys_wait_command): New functions + * src/tar.c: Handle new options --to-command, + --ignore-command-error + * THANKS: Added Hansjoerg Lipp + +2005-02-03 Paul Eggert + + * src/list.c (from_header): New arg OCTAL_ONLY, normally false. + All uses changed. Fix typo that sometimes suppressed all "Archive + contains obsolescent base-64 headers" warnings, not just the first + one. + (tar_checksum): Accept only octal checksums, since they aren't + supposed to overflow into weird formats. + + Adjust to gnulib changes. + * lib/.cvsignore: Add chdir-long.c, chdir-long.h, memrchr.c, + memrchr.h, openat.c, openat.h. Remove pathmax.h (added by + mistake, perhaps?), sysexit.h (my typo), xstrdup.c (gnulib removed + this file). Sort entries. + +2005-02-04 Sergey Poznyakoff + + * src/extract.c: Further rewrite. + * src/buffer.c: Removed unused variables. + * src/list.c: Likewise + * src/tar.c (update_argv): Changed type to void * src/common.h (OLDGNU_NAME_FIELD_SIZE): New constant * src/create.c (start_private_header,write_header_name) @@ -20,7 +459,7 @@ * tests/same-order01.at: sort ls output * tests/sparse01.at (RE_CHECK): Added missing space - + * tests/sparse02.at: Test extracting sparse files over a pipe. * tests/Makefile.am: Added sparse02.at * tests/testsuite.at: Likewise @@ -41,9 +480,9 @@ Exit with code 1 if any of autotools fails. * lib/Makefile.tmpl: Insert Emacs magic to the first line. * tests/Makefile.am: Add append.at - + * m4/.cvsignore: Ignore all *.m4 files - + 2005-01-18 Sergey Poznyakoff Rewritten handling of -T (--files-from) option. Now it @@ -51,7 +490,7 @@ for: 1) any valid tar options (including another -T) to be used in the file 2) any number of -T options to be given in command line - + * configure.ac: Raised version number to 1.15.2 * src/common.h: Include obstack.h (files_from_option): Removed @@ -61,7 +500,7 @@ * src/incremen.c: Remove inclusion of obstack.h * src/xheader.c: Likewise. * src/misc.c (stat_fatal): New function - * src/names.c (name_file): Removed variable. + * src/names.c (name_file): Removed variable. (read_name_from_file): Removed function. All callers changed. (name_close): Removed function. All callers changed. * src/tar.c: New options --unquote (--no-unquote) and @@ -70,7 +509,7 @@ (parse_opt): Rewritten handling of -T option. Handle hidden --HANG option for debugging purposes. (decode_options): Init unquote_option to true. Init argv_stk. - Remove unneded references to files_from_option + Remove unneeded references to files_from_option * doc/tar.texi: Document new options. Moved rendition macros and option value definitions into @@ -78,7 +517,7 @@ * doc/rendition.texi: New file * doc/value.texi: New file * doc/Makefile.am: Updated - + 2005-01-13 Paul Eggert * tests/testsuite.at (RE_CHECK): Use "join - file", not @@ -203,7 +642,7 @@ 2004-12-17 Sergey Poznyakoff * src/delete.c (delete_archive_members): Bugfix: when - attempting to delete an unexisting member, the last + attempting to delete an nonexistent member, the last blocking_factor blocks were zeroed. 2004-12-14 Paul Eggert @@ -232,8 +671,8 @@ * src/buffer.c (hit_eof): Changed type to boolean (read_full_records,reading_from_pipe): New variables (check_compressed_archive,open_compressed_archive): New functions - (open_archive): Autodetect compressed archives and act accodingly. - Set reading_from_pipe. This fixes contraversial set of changes + (open_archive): Autodetect compressed archives and act accordingly. + Set reading_from_pipe. This fixes controversial set of changes introduced 2004-05-11,2004-03-22. * src/list.c (tar_checksum): New function (read_header): Use tar_checksum(). @@ -750,7 +1189,7 @@ * configure.ac: Raised version number to 1.14 * NEWS: Updated. * tests/after: Added copyleft statement - * tests/before: Added copyleft statemente + * tests/before: Added copyleft statement * tests/preset.in: Added copyleft statement Tar 1.14 is released. Sources up to this point are tagged @@ -889,8 +1328,8 @@ 2004-04-20 Sergey Poznyakoff * configure.ac: Fixed test for iconv_t - * src/rmt.h: Bugfix by Jürgen Weigert - * THANKS: Add Jürgen Weigert + * src/rmt.h: Bugfix by Jürgen Weigert + * THANKS: Add Jürgen Weigert * tests/star/README: Fixed typo 2004-04-04 Paul Eggert @@ -1175,7 +1614,7 @@ * tests/after: Rewritten * tests/before: Rewritten * tests/preset.in: Rewritten - * tests/delete03.sh: Accomodate for the new testsuite logic + * tests/delete03.sh: Accommodate for the new testsuite logic * tests/gzip.sh: Likewise * tests/incremen.sh: Likewise * tests/listed01.sh: Likewise @@ -1816,7 +2255,7 @@ * TODO: Updated * src/common.h (strip_path_elements): New variable. * src/extract.c (extract_archive): Implemented --strip-path - * src/names.c (cut_path_elements): New functon. + * src/names.c (cut_path_elements): New function. * src/tar.c: New option --strip-path=NUM. (decode_options) Assign boolean values to bool variables. @@ -3770,7 +4209,7 @@ * m4/mbstate_t.m4: Include stdio.h before wchar.h, to work around a bug in glibc 2.1.3. - * lib/xmalloc.c: Fix inaccorate comment for xrealloc. + * lib/xmalloc.c: Fix inaccurate comment for xrealloc. 2000-06-19 Paul Eggert @@ -5964,8 +6403,8 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU tar; see the file COPYING. If not, write to -the Free Software Foundation, Inc., 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. +the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +Boston, MA 02110-1301, USA. Local Variables: mode: change-log