X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=ChangeLog;h=3dbd67a7c62b6e45de5e00e1abb3e07adb2dbda8;hb=daa269958ad8d50ef8154ccb65e58acaf7a6dd99;hp=bb3a1013b9b2d5b18b5629c9298e3a7269c93a59;hpb=1a44d77d50f4fb37c0410eed04b82303624ea2ec;p=debian%2Ftar diff --git a/ChangeLog b/ChangeLog index bb3a1013..3dbd67a7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,12 +1,1384 @@ +2013-10-06 Sergey Poznyakoff + + Version 1.27 + + * NEWS: Update. + * configure.ac: Update. + +2013-10-06 Sergey Poznyakoff + + Minor fixes. + + * src/names.c: Include argp.h + * tests/testsuite.at (AT_XATTRS_UTILS_PREREQ) + (AT_SELINUX_UTILS_PREREQ,AT_ACLS_UTILS_PREREQ) + (AT_CAPABILITIES_UTILS_PREREQ) + (AT_XATTRS_PREREQ,AT_SELINUX_PREREQ) + (AT_ACLS_PREREQ): Use POSIX-compatible syntax for + mktemp. + * tests/incr08.at: Fix find usage. + +2013-10-05 Sergey Poznyakoff + + Xfail the remfiles09b test. + + * tests/remfiles09b.at: Turn into expected failure. + +2013-10-05 Nathan Stratton Treadway + + Tiny change + + * scripts/tar-snapshot-edit: Mention --show-snapshot-field-ranges + option + +2013-10-05 Pavel Raiskup + + Tiny change + + * configure.ac (RSH): Define as AC_ARG_VAR. + +2013-10-05 Sergey Poznyakoff + + Fix namespace contamination in testsuite. + + * tests/append01.at: Use m4_pushdef/m4_popdef to define local + macros. + * tests/delete03.at: Likewise. + * tests/exclude06.at: Likewise. + * tests/incr04.at: Likewise. + * tests/link03.at: Likewise. + * tests/long01.at: Likewise. + * tests/longv7.at: Likewise. + * tests/lustar01.at: Likewise. + * tests/lustar02.at: Likewise. + * tests/lustar03.at: Likewise. + * tests/multiv05.at: Likewise. + * tests/sparse04.at: Likewise. + +2013-10-05 Nathan Stratton Treadway + + Provide comprehensive testcases for various file removal modes. + + * tests/Makefile.am: Add new testcases. + * tests/testsuite.at: Likewise. + * tests/incr09.at: Add description. + * tests/remfiles04a.at: New file. + * tests/remfiles05.at: Rename to ... + * tests/remfiles04b.at: ... this. + * tests/remfiles04.at: Rename to ... + * tests/remfiles04c.at: ... this. + * tests/remfiles05a.at: New file. + * tests/remfiles05b.at: New file. + * tests/remfiles06.at: Rename to ... + * tests/remfiles05c.at: ... this. + * tests/remfiles06a.at: New file. + * tests/remfiles06b.at: New file. + * tests/remfiles06c.at: New file. + * tests/remfiles07a.at: New file. + * tests/remfiles07b.at: New file. + * tests/remfiles07c.at: New file. + * tests/remfiles08a.at: New file. + * tests/remfiles08b.at: New file. + * tests/remfiles08c.at: New file. + * tests/remfiles08.at: Rename to ... + * tests/remfiles09a.at: ... this. + * tests/remfiles09b.at: New file. + * tests/remfiles07.at: Rename to ... + * tests/remfiles09c.at: ... this. + +2013-10-03 Sergey Poznyakoff + + Tiny changes. + + * src/misc.c: Fix comments, rename wd.cwd to wd.abspath (Nathan + Stratton + Treadway); + * src/tar.c (options): Reword description of the --starting-file + and + --preserve-order options. + (decode_options): Both --starting-file and --preserve-order + have meaning + only when used together with an archive reading command. (Pavel + Raiskup). + +2013-10-01 Sergey Poznyakoff + + Revamp tar_getcwd/normalize_filename stuff. + + The changes are based on the discussion with Nathan. + + * src/common.h (normalize_filename): Take two arguments. All + callers updated. + (tar_getcwd): Replaced with .. + (tar_getcdpath): New proto. + * src/misc.c (normalize_filename): Take two arguments. + (chdir_arg): Populate cwd along with creating the + structure. + (tar_getcwd): Removed. + (tar_getcdpath): New function. + + * tests/incr09.at: New test case. + * tests/Makefile.am: Add new tests. + * tests/testsuite.at: Likewise. + +2013-09-27 Sergey Poznyakoff + + Bugfix + + * tests/remfiles08.at: Restore missing find + +2013-09-26 Sergey Poznyakoff + + Use relative addressing in deferred unlinks. + + * src/common.h (tar_dirname): New function. + * src/misc.c (normalize_filename_x): Make extern. + (tar_dirname): New function. + (tar_getcwd): Take into account absoulte pathnames. + * src/unlink.c (deferred_unlink) : New member; keeps the + value of chdir_current at the moment of structure allocation. + (flush_deferred_unlinks): Use chdir_do and relative addressing. + (queue_deferred_unlink): Initialize dir_idx. + * tests/Makefile.am: Add new tests. + * tests/testsuite.at: Add new tests. + * tests/remfiles06.at: Fix description. + * tests/remfiles07.at: Fix description. + * tests/remfiles08.at: New test case. + +2013-09-25 Nathan Stratton Treadway + + Improve tar-snapshot-edit + + Support architecture-specific field ranges for the "-c" function. + Better handle negative or larger-than-32-bit field values even + when running in 32-bit Perl (for the default "print a summary" + function) + +2013-09-25 Sergey Poznyakoff + + Improve tar_getcwd + + * src/common.h (tar_getcwd): Return pointer is const. + * src/misc.c (wd) : New member. + (chdir_arg): Initialize cwd. + (tar_getcwd): Use cwd member to cache the result. Take into + account absolute pathnames, + (normalize_filename): Don't free the value + returned from tar_getcwd. + * src/names.c (name_next_elt): Remove leftover call chdir(). + * tests/Makefile.am: Add new tests. + * tests/testsuite.at: Likewise. + + * tests/incr08.at: New testcase. + * tests/remfiles04.at: New testcase. + * tests/remfiles05.at: New testcase. + * tests/remfiles06.at: New testcase. + * tests/remfiles07.at: New testcase. + +2013-09-24 Sergey Poznyakoff + + Fix normalize_filename. + + The function did not take into account eventual -C options, which + in particular led to various problems when using -C and + --remove-files + together. + + * src/common.h (namebuf_add_dir,namebuf_finish) + (tar_getcwd): New prototypes. + * src/misc.c (namebuf_add_dir,namebuf_finish) + (tar_getcwd): New functions. + (normalize_filename): Use tar_getcwd. + +2013-09-23 Sergey Poznyakoff + + Changes for compatibility with Slackware installation scripts. + + * src/buffer.c (short_read): the "Record size" message + is controlled by the WARN_RECORD_SIZE warning_option bit. + * src/common.h (keep_directory_symlink_option): New global. + (WARN_RECORD_SIZE): New constant. + (WARN_VERBOSE_WARNINGS): Add WARN_RECORD_SIZE. + * src/extract.c (extract_dir): If keep_directory_symlink_option is + set, follow symlinks to directories. + * src/suffix.c (compression_suffixes): Add support for txz + suffix. + * src/tar.c (KEEP_DIRECTORY_SYMLINK_OPTION): New constant. + (options): New option --keep-directory-symlink. + (parse_opt): Handle this option. + * src/warning.c: Implement "record-size" warning control. + + * NEWS: Update. + * doc/tar.texi: Document new features. + +2013-09-21 Sergey Poznyakoff + + Fix error message (complements 0ea6e686) + + * src/tar.c (set_subcommand_option): Mention --delete in the + error message. + +2013-09-15 Sergey Poznyakoff + + Improve the incr07 test + +2013-09-15 Nathan Stratton Treadway + + Implement the --show-snapshot-field-ranges option + + * src/common.h (show_snapshot_field_ranges): New prototype. + * src/incremen.c (show_snapshot_field_ranges): New function. + * src/tar.c: New option --show-snapshot-field-ranges. + * doc/snapshot.texi: Document the --show-snapshot-field-ranges + option. + * doc/tar.texi: Likewise. + +2013-09-15 Sergey Poznyakoff + + Take into account chdir_fd when extracting from incremental dumps. + + * src/common.h (tar_savedir): New prototype. + * src/misc.c (tar_savedir): New function. + (remove_any_file): Use tar_savedir. + * src/incremen.c (try_purge_directory): Use tar_savedir. + * src/update.c (update_archive): Use tar_savedir. + * tests/incr07.at: New testcase. + * tests/Makefile.am (TESTSUITE_AT): Add new test. + * tests/testsuite.at: Likewise. + * THANKS: Updated. + +2013-09-15 Sergey Poznyakoff + + Minor fix + + * src/tar.c (main): Mention --delete in the error message. + * THANKS: Update + +2013-09-13 Paul Eggert + + * src/names.c (file_list_name): Properly prototype. + +2013-09-13 Paul Eggert + + tar: don't warn about zero timestamps + + * src/extract.c (check_time): Suppress warniing when t.tv_sec + == 0. + Problem reported by Denis Excoffier. + +2013-08-19 Pavel Raiskup + + Minor fix in the testsuite. + + * tests/T-cd.at: sort the 'tar cf' output. + +2013-08-17 Sergey Poznyakoff + + Improve error diagnostics + + * src/names.c (file_list_name): New static function. + (add_file_id): If a filelist is being read twice, print the names + of the files that caused it. + * tests/T-rec.at: New test case. + * tests/Makefile.am: Add new file. + * tests/testsuite.at: Include new file. + +2013-08-16 Sergey Poznyakoff + + Revamp initial name collection functions to ensure proper + argument ordering. + + * src/names.c (NELT_NOOP): New constant + (name_elt) : New members. + (name_array,allocated_entries,entries,scanned): Remove. + (check_name_alloc): Remove function. + (name_elt_alloc): New static. + (name_list_adjust,name_list_advance): New functions. + (name_add_name,name_add_dir) + (name_add_file): Use new allocation functions. + (read_next_name): Advance list head pointer as necessary + before returning. + (name_next_elt): Read elements from list. + * tests/T-cd.at: New file. + * tests/T-mult.at: New file. + * tests/T-nest.at: New file. + * tests/Makefile.am: Add new testcases. + * tests/testsuite.at: Likewise. + +2013-08-16 Sergey Poznyakoff + + Don't treat attempts to read an already read file list as + fatal errors. + + * src/names.c (add_file_id): Report error and return 1 if the file + has already been read. + (read_next_name): Don't try to open file if add_file_id returns 1. + (name_next_elt): Simplify conditional. + +2013-08-16 Sergey Poznyakoff + + Minor change. + + * src/names.c (name_next_elt): Simplify conditional. + +2013-08-15 Pavel Raiskup + + Fix use of uninitialized memory + + * src/names.c (name_add_file): Initialize the ep->v.file.fp + pointer + after structure allocation. + +2013-08-05 Sergey Poznyakoff + + Minor changes + + * src/names.c (handle_option): Use program_invocation_short_name + instead of the constant string. + (read_next_name): Remove unused variable. + +2013-08-04 Sergey Poznyakoff + + Update the docs. + + * doc/tar.texi: Parsing of the options found in the file list + follows the same rules as for command line. Remove the obsolete + description. This complements 26538c9b. + +2013-08-04 Sergey Poznyakoff + + Fix interacton of --verbose and --append. + + * src/buffer.c (_open_archive): don't overwrite existing archive + if given the --verify option. + * tests/append04.at: New file. + * tests/Makefile.am: Add new testcase. + * tests/testsuite.at: Add new testcase. + * THANKS: Update. + +2013-08-04 Sergey Poznyakoff + + Bugfix. + + * src/names.c (read_name_from_file): Fix a typo. Remove + unused variable. + +2013-08-04 Sergey Poznyakoff + + Reduce memory consuption when handling the -T option. + + The commit cdb27293 made the -T option more flexible, but + incurred a very considerable memory overhead by storing + all file names in the argument array. In case of very + big file lists this caused tar to run out of memory. This + was reported by Christian Wetzel + on March 14, 2013 + (http://lists.gnu.org/archive/html/bug-tar/2013-03/msg00018.html). + + On the other hand, Michal Žeidl discovered that tar misfunctioned + when given empty file lists or lists with the trailing newline + misssing in the last entry. This was reported by Pavel Raiskup + on July 23 + (http://lists.gnu.org/archive/html/bug-tar/2013-07/msg00009.html + and + msg00010.html). + + This change fixes both issues. + + * src/common.h (name_add_file,request_stdin): New prototype. + (more_options): New prototype. + * src/names.c (NELT_FILE): New entry type. + (name_elt) : New union member. + (name_add_file): New function. + (read_name_from_file): New function, a rewrite of + the same function from tar.c + (read_next_name,copy_name): New static functions. + (name_next_elt): Handle NELT_FILE entries. + * src/tar.c (request_stdin): Make extern. + (read_name_from_file,add_file_id) + (update_argv): Removed. + (parse_opt): Change handling of the -T option. + (more_options): New function. + + * tests/T-null.at: Rewrite test. + * tests/T-zfile.at: New file. + * tests/T-nonl.at: New file. + * tests/Makefile.am: Add new testcases. + * tests/testsuite.at: Likewise. + + * THANKS: Update. + +2013-06-29 Sergey Poznyakoff + + Fix the compatibility check for the --occurrence option. + + * src/tar.c (SUBCL_OCCUR): New class. + (subcommand_class): Update. + (decode_options): Accept the --occurrence option + with any subcommand from the SUBCL_OCCUR class. + +2013-06-29 Pavel Raiskup + + testsuite: do not resist on file order in archive + + On my Fedora 19 box, the exclude08 & exclude11 tests failed before + this fix. The reason was that the directory traversing chosen the + file order differently than the testsuite expected. + + * tests/exclude08.at: Sort the tarball content output. + * tests/exclude09.at: Likewise. + * tests/exclude10.at: Likewise. + * tests/exclude11.at: Likewise. + * tests/exclude12.at: Likewise. + * tests/exclude13.at: Likewise. + * tests/exclude14.at: Likewise. + * tests/exclude15.at: Likewise. + * tests/exclude16.at: Likewise. + +2013-06-29 Sergey Poznyakoff + + Improve checks for incompatible options. + + * src/common.h (READ_LIKE_SUBCOMMAND): Remove define. + * src/tar.c (IS_SUBCOMMAND_CLASS): New macro. + (decode_options): Use IS_SUBCOMMAND_CLASS in checking + option compatibility. + Accept the --verify option only with subcommands that + write to the archive. + + * tests/opcomp01.at: New test case. + * tests/opcomp02.at: New test case. + * tests/opcomp03.at: New test case. + * tests/opcomp04.at: New test case. + * tests/opcomp05.at: New test case. + * tests/opcomp06.at: New test case. + * tests/Makefile.am: Add new testcases. + * tests/testsuite.at: Likewise. + +2013-06-28 Paul Eggert + + tar: port to Mingw Shell + + * src/extract.c (extract_symlink) [!HAVE_SYMLINK]: + Fix typo by replacing WARN_SYMBOLIC_CAST with WARN_SYMLINK_CAST. + Problem reported by kaka in + . + +2013-05-06 Paul Eggert + + maint: revert previous change + + It wasn't actually needed. Reported by Stefano Lattarini in + . + * configure.ac (AM_GNU_GETTEXT_VERSION): Decrease from 0.18.2 + back to 0.16. + +2013-04-25 Paul Eggert + + maint: port to bleeding-edge Automake by assuming Gettext 0.18.2 + + Reported by Stefano Lattarini in + . + * configure.ac (AM_GNU_GETTEXT_VERSION): Increase from 0.16 + to 0.18.2. + README-alpha says that we do not make any efforts to accommodate + older versions of Gettext. + +2013-04-25 Paul Eggert + + tar: port to --without-xattrs --enable-gcc-warnings + + Reported by Pavel Raiskup in + . + * src/xattrs.c (xattrs__fd_set) [!HAVE_XATTRS]: Omit. + +2013-04-25 Paul Eggert + + doc: port to texinfo 5 + + * doc/tar.texi (Reports, assumptions, Mixing): + Put FIXMEs at line start. + +2013-03-12 Sergey Poznyakoff + + Continue extracting from a separate volume after skipping a + partial member. + + Reported by Göran Udeborg on 2013-03-09. + + * src/extract.c (extract_skip): New function. + (prepare_to_extract): Set extractor to extract_skip if starting + at a partial member. + +2013-03-12 Sergey Poznyakoff + + Fix interaction of various --exclude-tag options with + --listed-incremental. + + * src/incremen.c (procdir): Set directory->tagfile in + the exclusion_tag_contents case. + (makedumpdir): Mark all entries as ignored if directory->tagfile + is set. + Free new_dump before returning. + (maketagdumpdir): New function. + (scan_directory): If directory->children is set to + NO_CHILDREN and directory->tagfile is set, create a + dumpdir consisting of the tagfile only. + + * tests/exclude08.at: New testcase. + * tests/exclude09.at: New testcase. + * tests/exclude10.at: New testcase. + * tests/exclude11.at: New testcase. + * tests/exclude12.at: New testcase. + * tests/exclude13.at: New testcase. + * tests/exclude14.at: New testcase. + * tests/exclude15.at: New testcase. + * tests/exclude16.at: New testcase. + * tests/Makefile.am: Add new tests. + * tests/testsuite.at: Include new tests. + * tests/atlocal.in (mkexcltest): New function. + * tests/chtype.at: Update keywords. + * tests/filerem01.at: Likewise. + * tests/filerem02.at: Likewise. + * tests/incremental.at: Likewise. + * tests/multiv04.at: Likewise. + +2013-02-20 Paul Eggert + + tar: remove lint + + * lib/wordsplit.c (_wsplit_error): Mark with printf attribute. + (expvar): "Use" defstr to pacify GCC. + * src/system.c (xexec): Now _Noreturn, to pacify GCC. + (run_decompress_program): Add cast to pacify GCC. + (sys_exec_command, sys_exec_info_script, + sys_exec_checkpoint_script): + Remove unused variables. + +2013-02-10 Sergey Poznyakoff + + Pass command line arguments to external commands. + + Any option taking a command name as its argument accepts + additional arguments as well. + + * lib/wordsplit.c: New file. + * lib/wordsplit.h: New file. + * lib/Makefile.am: Add new files. + * src/system.c (xexec): New function. + (run_decompress_program): Use wordsplit. + (sys_child_open_for_compress,sys_exec_command) + (sys_exec_info_script) + (sys_exec_checkpoint_script): Use xexec to invoke external + command. + + * NEWS: Update. + * doc/tar.texi: Update. + +2013-01-29 Nathan Stratton Treadway + + tar: improve compile-time diagnostics + + * src/misc.c (sysinttostr, strtosysint): Improve #error wording. + +2013-01-27 Paul Eggert + + tar: improve quality of diagnostics with incrementals + + Inspired by a prototype by Nathan Stratton Treadway in + . + * src/incremen.c (read_num): Rewrite by merging read_negative_num + and read_unsigned_num. Use strtosysint rather than rolling this + stuff ourselves. Change return type to bool. All uses changed. + (read_negative_num, read_unsigned_num): Remove. + (read_num, read_timespec, read_incr_db_2): Improve quality of + diagnostics, e.g., by supplying byte offset of error. + +2013-01-26 Paul Eggert + + tar: fix bug with sparse files with effective size of 8 GiB + or more + + Reported by Pavel Raiskup in + . + * NEWS: Document the fix. + * src/sparse.c (pax_start_header): New function. + (pax_dump_header_0, pax_dump_header_1): Use it. + +2012-12-31 Paul Eggert + + maint: update copyrights for 2013 and as per current GNU standards + +2012-12-31 Paul Eggert + + maint: remove unnecessary file + + * src/configure.in: Remove. This file has been obsolete for + a while. + +2012-12-24 Paul Eggert + + maint: don't enable warnings by default unless GCC 4.6 or later + + * configure.ac (gl_GCC_VERSION_IFELSE): New macro, from coreutils. + (gl_gcc_warnings): By default, disable warnings for GCC versions + before 4.6. This works around a failure when building from git on + Ubuntu 10, reported privately by Nathan Stratton Treadway. + +2012-12-23 Paul Eggert + + Handle incremental format 2 with negative numbers, too. + + * src/incremen.c (read_unsigned_num): Last arg is intmax_t *, not + uintmax_t, for consistency with other readers. All callers + changed. + Avoid signed integer overflow. + (read_num): + +2012-12-23 Paul Eggert + + Fix some problems with negative and out-of-range integers. + + Original problem reported for HP-UX LVM v2.2 by Michael White in + . + This patch fixes some other gotchas that I noticed. + * gnulib.modules: Add extern-inline. + * src/common.h: Use _GL_INLINE_HEADER_BEGIN, + _GL_INLINE_HEADER_END. + (COMMON_INLINE, max, min): New macros. + (represent_uintmax, valid_timespec): New inline functions. + (SYSINT_BUFSIZE): New constant. + (sysinttostr, strtosysint, decode_timespec): New decls. + * src/create.c (start_private_header): Silently bring the time_t + value into range; it is now the caller's responsibility to deal + with any overflow error. Use uid 0 and gid 0 rather than the + user's uid/gid, since the faked header isn't "owned" by the user + and the uid/gid could in theory be out of range. Leave major and + minor zeroed. + (FILL): Remove. + (write_gnu_long_link): Let start_private_header zero things out. + * src/create.c (write_gnu_long_link, write_extended): + * src/xheader.c (xheader_write_global): + Use start_time, not current time; no point hammering on the clock. + * src/compare.c (diff_multivol): Check that offset, size are + in range. + * src/incremen.c (read_incr_db_01, write_directory_file_entry): + Allow negative time_t, dev_t, and ino_t. + * src/list.c (max): Remove (moved to common.h). + (read_header): Check that size is in range. + (from_header): Return intmax_t, not uintmax_t, to allow negative. + All callers changed. At compile time, check assumptions about + intmax_t and uintmax_t. Use bool for booleans. Avoid overflow + hassles on picky hosts. + (mode_from_header): Last arg is now bool *, not unsigned *. + All callers changed. + (simple_print_header): Do not assume UID, GID fit in 'long'. + * src/list.c (from_header): + * src/xheader.c (out_of_range_header): + Arg is now a plain minimum value, not minus minval converted to + uintmax_t. All callers changed. + * src/misc.c (COMMON_INLINE): New macro. + (sysinttostr, strtosysint, decode_timespec): New functions. + * src/sparse.c (oldgnu_add_sparse, oldgnu_fixup_header) + (star_fixup_header): + Check for offset overflow. + (decode_num): Clear errno before calling strtoumax. + * src/tar.c (expand_pax_option): Don't discard nanoseconds. + * src/xheader.c (assign_time_option): Allow negative time_t. + (decode_record): Simplify, since out-of-range string is guaranteed + to produce a value exceeding len_max. + (xheader_read): Last arg is off_t, not size_t. + Caller should diagnose negative arg, as needed. + Check that it's in range. + (enum decode_time_status): Remove. + (_decode_time): Remove, folding into decode_time. + (decode_time): Return bool, not enum decode_time_status. + Rely on decode_timespec to do most of the work. + (code_signed_num): New function. + (code_num): Use it. + (decode_signed_num): New function. + (decode_num): Use it. + (gid_coder, gid_decoder, uid_coder, uid_decoder, + sparse_map_decoder) + (sparse_map_decoder): Code and decode negative values. + (sparse_map_decoder): Improve check for out-of-range values. + * tests/time01.at: New file. + * tests/Makefile.am (TESTSUITE_AT): Add it. + * tests/testsuite.at: Include it. + +2012-12-22 Paul Eggert + + Port use of mkdirat etc. to Solaris 10. + + * gnulib.modules (fchmodat, fchownat, fstatat, mkdirat, unlinkat): + Add. These were split out in gnulib, so we now need to request + them separately. mkdirat, for example, is not in Solaris 10. + +2012-12-22 Paul Eggert + + Port ACL configuration to Solaris 10. + + * configure.ac (with_posix_acls): Fix misspellings. + Stop checking at the first failure, to speed up 'configure'. + +2012-12-19 Paul Eggert + + tar: remove unused externs, or make them static + + * src/buffer.c (record_buffer_aligned, flush_write_ptr, + flush_read_ptr) + (duration): + * src/list.c (recent_global_header): + * src/unlink.c (deferred_unlink_delay): + * src/transform.c (transform_flags): + * src/xattrs.c (acl_get_file_at, acl_set_file_at, + file_has_acl_at): + Now static. + * src/common.h (rmt_command_option): Remove; unused. + * src/tar.c (check_links_option, allocated_archive_names): + Move decls here from common.h; these are now static. + +2012-12-19 Paul Eggert + + * .gitignore: Regenerate. + +2012-12-19 Paul Eggert + + build: new configure option --enable-gcc-warnings + + This has a similar meaning as in other GNU applications + such as coreutils and Emacs. + * NEWS: Document it. + * .gitignore: Remove redundant build-aux. + Remove gnu, since gnu/Makefile.am is now in git. + Add gnu/.gitignore, gnu/charset.alias, gnu/*.h, gnu/*/ to cover + autogenerated files. + * bootstrap.conf (gnulib_mk): Remove. + * configure.ac: Add support for --enable-gcc-warnings, + taken from coreutils and simplified. + * gnu/Makefile.am: New file. Formerly this was autogenerated, + but the autogenerated file has been renamed to gnulib.mk, + its usual name when bootstrapping from gnulib. + This way, AM_CFLAGS can incorporate warning options. + * gnulib.modules: Add manywarnings. + * lib/Makefile.am, src/Makefile.am (AM_CFLAGS): New macro, + incorporating warning options. + * lib/attr-xattr.in.h (ENOATTR): New macro, if not already + defined. + * src/buffer.c (magic): Don't rely on incomplete initializers. + * src/common.h (report_difference): Add printf format attribute. + * src/system.c (sys_exec_command, sys_exec_info_script) + (sys_exec_checkpoint_script): + * src/tar.c (update_argv): + Add casts to char * to pacify GCC warnings about using string + literals in a char * context. + * src/xattrs.c, src/xattrs.h (xattrs_clear_setup): + Declare parameters as (void), not (). + * src/xheader.c (xheader_format_name): Initialize pptr to null, + to pacify GCC. Remove unnecessary test of nptr versus null. + +2012-12-19 Paul Eggert + + tar: don't truncate diagnostic + + * src/list.c (from_header): Fix buffer size calculation when + generating a diagnostic. + +2012-12-03 Sergey Poznyakoff + + Bugfix. + + * tests/Makefile.am: Fix double AM_CPPFLAGS + +2012-12-01 Sergey Poznyakoff + + Use AM_CPPFLAGS instead of INCLUDES. + +2012-11-19 Sergey Poznyakoff + + Housekeeping. + + * NEWS: Mention the support for POSIX ACLs, extended + attributes and SELinux context. + * THANKS: List James Antill and Pavel Raiskup. + +2012-11-19 Sergey Poznyakoff + + Fix indentation. + +2012-11-19 Pavel Raiskup + + Allow to store/extract '=' character in xattr keyword + + * src/xheader.c (xattr_decode_keyword) + (xattr_encode_keyword): New functions. + (xheader_print_n,xattr_decoder): Use them. + * tests/xattr05.at: New test case. + * tests/Makefile.am: Add new test case. + * tests/testsuite.at: Likewise. + +2012-11-19 Pavel Raiskup + + Bugfixes. + + * configure.ac: Avoid linking against -lacl when + --without-posix-acls is given. + * tests/selacl01.at: Call restorecon + * tests/selnx01.at: Likewise. + * tests/testsuite.at (AT_SELINUX_UTILS_PREREQ): Likewise. + (AT_SELINUX_PREREQ,AT_ACLS_PREREQ): Use the right _PREREQ macros. + +2012-11-19 Pavel Raiskup + + Fix bootstrapping. + + * bootstrap (gnulib_extra_files): Remove $build_aux/missing + +2012-11-19 Sergey Poznyakoff + + Various fixes. + + * src/xattrs.c: Don't mix variable declarations and statements. + Use proper data types. Remove improper use of const qualifiers. + Use x2nrealloc to reallocate memory buffers. + +2012-11-18 Sergey Poznyakoff + + Minor change. + + * src/xattrs.c: Fix indentation. Fix copyleft statement, promote + to GPLv3+. + * src/xattrs.h: Likewise + +2012-11-18 Pavel Raiskup + + Add SELinux context store/restore/list support. + + * gnulib.modules: Add selinux-at. + * src/Makefile.am (tar_LDADD): Add LIB_SELINUX. + + * src/create.c (start_header, dump_file0): Handle selinux + contexts. + * src/extract.c (delayed_set_stat) : New member. + (delayed_link) : New member. + (set_stat, delay_set_stat) + (apply_nonancestor_delayed_set_stat): Handle selinux contexts. + * src/tar.c: New options: "--selinux", "--no-selinux". + (tar_stat_destroy): Free cntx_name. + * src/tar.h (tar_stat_info) : New member. + * src/xattrs.c (xattrs_selinux_get) + (xattrs_selinux_set): New functions. + (xattrs_print_char): Honor selinux_context_option. + (xattrs_print): Print selinux context. + * src/xheader.c: Handle new keyword "RHT.security.selinux". + * tests/Makefile.am: Add new tests. + * tests/testsuite.at: Likewise. + * tests/selacl01.at: New test. + * tests/selnx01.at: New test. + +2012-11-18 Pavel Raiskup + + Support for POSIX ACLs + + * configure.ac: Check whether ACLs are available on the + host system. + * gnulib.modules: Add acl + * src/create.c (start_header): Store ACLs when creating + a POSIX archive. + (dump_file0): Handle ACLs. + * src/extract.c (delayed_set_stat) + : New members. + (delayed_link): Likewise. + (set_stat,delay_set_stat) + (apply_nonancestor_delayed_set_stat): Set ACLs. + * src/tar.c: New options: "--acls", "--no-acls" + (tar_stat_destroy): Free acls_a_ptr and acls_d_ptr fields. + * src/tar.h (tar_stat_info) + : New members. + * src/xattrs.c (xattrs_acls_get, xattrs_acls_set): New functions. + * src/xheader.c: Support new keywors: "SCHILY.acl.access" and + "SCHILY.acl.default". + * tests/Makefile.am: Add new tests. + * tests/testsuite.at: Likewise. + * tests/acls01.at: New test. + * tests/acls02.at: New test. + +2012-11-18 Pavel Raiskup + + Add basic suuport for extended attributes. + + * src/Makefile.am: Add xattrs.[ch] + * src/xattrs.c: New file. + * src/xattrs.h: New file. + * src/common.h (READ_LIKE_SUBCOMMAND): New define. + (selinux_context_option, acls_option, xattrs_option): New globals. + (xheader_xattr_init, xheader_xattr_free) + (xheader_xattr_copy, xheader_xattr_add): New protos. + (WARN_XATTR_WRITE): New mask. + * src/create.c (start_header): Handle xattrs pairs if in POSIX + format. + (dump_file0): Handle extended attributes. + * src/extract.c (delayed_set_stat,delayed_link) + : New members. + (set_xattr): New static function. + (open_output_file): Accept an additional argument indicating + whether the file has already been created. + (set_stat,delay_set_stat) + (apply_nonancestor_delayed_set_stat) + (extract_file): Handle extended attributes. + * src/list.c (decode_header, simple_print_header): Display + extended attributes. + * src/tar.c: New options --xattrs, --no-xattrs, --xattrs-include, + --xattrs-exclude + (tar_stat_destroy): Free the xattr_map storage. + * src/tar.h (xattr_array): New struct. + (tar_stat_info) : New members. + * src/warning.c: New warning control keyword "xattr-write". + * src/xheader.c (xheader_xattr_init) + (xheader_xattr_free, xheader_xattr_add) + (xheader_xattr_copy): New functions. + (struct xhdr_tab) : New member. + (locate_handler): Permit selecting the keyword based on its + prefix. + (xheader_protected_pattern_p) + (xheader_protected_keyword_p): Likewise. + (xattr_coder, xattr_decoder): New functions. + (xhdr_tab): Reflect the changes to struct xhdr_tab. + New keyword "SCHILY.xattr". + * tests/Makefile.am: Add new tests. + * tests/testsuite.at: Likewise. + (AT_CHECK_UTIL, AT_XATTRS_UTILS_PREREQ) + (AT_CAPABILITIES_UTILS_PREREQ, AT_XATTRS_PREREQ): New defuns. + * tests/xattr01.at: New test. + * tests/xattr02.at: New test. + * tests/xattr03.at: New test. + * tests/xattr04.at: New test. + * tests/capabs_raw01.at: New test. + +2012-11-18 Sergey Poznyakoff + + Prepare for implementing extended attribute support. + + This patch adds *xattr() stubs in case extended attribute + support is + not present and implements the *attrat() family of functions. + Based + on the patch by Pavel Raiskup for gnulib. + + * acinclude.m4 (TAR_HEADERS_ATTR_XATTR_H): New defun. + * configure.ac: Call TAR_HEADERS_ATTR_XATTR_H + * lib/Makefile.am: Add xattr-at.[ch], distribute attr-xattr.in.h + [!TAR_COND_XATTR_H]: Build attr/xattr.h + * lib/attr-xattr.in.h: New file. + * lib/xattr-at.c: New file. + * lib/xattr-at.h: New file. + +2012-11-14 Sergey Poznyakoff + + Fix creation of incremental archives when a subdirectory becomes + a mountpoint. + + When used with --listed-incrfental and --one-file-system, tar + was unable to cope with directories that had once been part of the + dumped system and became separate mount points afterwards. + The bug + has been reported and a fix proposed by Nathan Stratton Treadway. + + * src/incremen.c (procdir): If one_file_system_option is in + effect, + clear out dumpdir info from the directory. + * tests/Makefile.am: Add new testcase. + * tests/listed05.at: New testcase. + * tests/testsuite.at (AT_PRIVILEGED_PREREQ): New macro. + include listed05.at. + * THANKS: Update. + +2012-07-27 Jim Meyering + + maint: try to avoid unwanted chatter in ChangeLog + + * bootstrap.conf: Do not alter ChangeLog if it already exists. + +2012-07-26 Paul Eggert + + doc: improve discussion of compressed archives + + * doc/tar.texi (gzip): Don't claim that -I 'gzip --best' works. + Problem reported by Davide Brini in + . + Also, improve some of the surrounding text. + + This file is a placeholder. It will be replaced with the actual + ChangeLog + by make dist. Run make ChangeLog if you wish to create it + earlier. + +2012-06-27 Paul Eggert + + tests: fix permissions-assumption bug in test + + * tests/owner.at: Don't assume umask is 022. + Reported by Pavel Raiskup in + . + +2012-06-27 Paul Eggert + + tar: don't assume root is uid 0 + + This is not true for Tandem NonStop Kernel. See Joachim Schmitz's + comment in . + * gnulib.modules: Add root-uid. + * src/extract.c: Include . + (extr_init): Don't assume root is uid 0. + +2012-04-25 Paul Eggert + + * src/compare.c (diff_dumpdir): Omit useless 'stat'. + +2012-04-25 Paul Eggert + + * doc/tar.texi (Option Summary): Fix xref typo. + + Reported by Nathan Stratton Treadway in + . + + This file is a placeholder. It will be replaced with the actual + ChangeLog + by make dist. Run make ChangeLog if you wish to create it + earlier. + +2012-03-29 Sergey Poznyakoff + + Fix unrecognized option. + + * src/tar.c (parse_opt): Handle OLD_ARCHIVE_OPTION. + +2012-03-11 Paul Eggert + + tar: remove lint + + This lint was found by GCC 4.6.2 on Fedora 15 x86-64. + * src/buffer.c (buffer_write_global_xheader, mv_end, + set_start_time) + (compute_duration, print_total_stats, flush_read, flush_write): + * src/checkpoint.c (checkpoint_finish_compile): + * src/list.c (test_archive_label): + * src/misc.c (chdir_count): + * src/names.c (const): + * src/unlink.c (finish_deferred_unlinks): + Define with (void) instead of with (), for slightly-better C type + checking and to avoid a GCC warning. + * src/compare.c (diff_dumpdir): + * src/tar.c (parse_owner_group): Remove unused local. + * src/misc.c (chdir_do): + * src/tar.c (add_exclude_array): Rename local to avoid shadowing. + (LOW_DENSITY_NUM, MID_DENSITY_NUM, HIGH_DENSITY_NUM): + Define only if needed. + * src/update.c (update_archive): Initialize a local; this fixes + what appears to be a real bug. + +2012-02-14 Paul Eggert + + doc: suggest Bash for large-fd script + + * doc/tar.texi (Multi-Volume Archives): Suggest Bash for shell + script that might use >&10. Problem reported by Edward F + Eaglehouse in + . + +2012-01-18 Paul Eggert + + tar: quote 'like this', not `like this' + + This fixes some test failures recently introduced by gnulib + updates + prompted by recent changes to the GNU coding standards, + which now advise to use quotes 'like this' or "like this" + rather than `like this'. + * NEWS: Document this. + * README, README-hacking, doc/Makefile.am, scripts/backup.in: + * scripts/backup.sh.in, scripts/dump-remind.in: + * src/buffer.c, src/checkpoint.c, src/create.c, src/incremen.c: + * src/misc.c, src/names.c, src/sparse.c, src/transform.c: + * tests/incr02.at, tests/incremental.at, tests/multiv08.at: + * tests/sparse04.at, tests/star/README, tests/update01.at: + Quote 'like this' in comments. + * src/tar.h: + Quote "like this" in comments, when quoting English phrases rather + than code. + * configure.ac: + * scripts/xsparse.c (get_var, read_xheader, main): + * src/compare.c (diff_archive): + * src/extract.c (prepare_to_extract): + * src/tar.c (request_stdin, tar_set_quoting_style, doc, options) + (set_subcommand_option, report_textual_dates, parse_opt) + (decode_options, main): + * src/xheader.c (decx): + Quote 'like this' in diagnostics. + * doc/tar.texi (list, warnings, override) + (Selecting Archive Members, quoting styles, after, hard links) + (Sparse Recovery, Multi-Volume Archives, label): + Adjust documentation to match new output. + * tests/backup01.at, tests/incr01.at, tests/incr04.at: + * tests/label04.at, tests/label05.at, tests/link03.at: + * tests/listed02.at, tests/multiv03.at, tests/multiv05.at: + * tests/rename01.at, tests/rename02.at, tests/rename03.at: + * tests/volume.at: + Adjust tests to match new quoting behavior. + +2012-01-18 Paul Eggert + + tar: port --overwrite symlink test to GNU/Hurd + + Problem reported by Pino Toscano in + . + * gnulib.modules: Add fcntl-h, which defines + HAVE_WORKING_O_NOFOLLOW. + * src/extract.c (open_output_file): Use HAVE_WORKING_O_NOFOLLOW, + not O_NOFOLLOW, when testing whther O_NOFOLLOW works. + + This file is a placeholder. It will be replaced with the actual + ChangeLog + by make dist. Run make ChangeLog if you wish to create it + earlier. + +2012-01-11 Paul Eggert + + tar: fix core dump with --index-file=bad_path + + * src/tar.c (decode_options): Exit cleanly if index file won't + open. + Problem reported by Khanh-Dang Nguyen Thu Lam in + . + +2012-01-06 Paul Eggert + + tar: don't assume O_NONBLOCK is benign on regular files + + On Data Migration Facility (DMF), High Peformance Storage System + (HPSS), + and presumably other file systems based on hierarchical storage, + opening + a regular file with O_NONBLOCK can cause later reads to fail with + errno == EAGAIN. We need the O_NONBLOCK to avoid some security + races. + Work around the problem by using fcntl to clear the O_NONBLOCK + flag if I/O fails with that errno value. + Problem reported by Vitezslav Cizek in + . + * src/common.h (blocking_read, blocking_write): New decls. + * src/misc.c (blocking_read, blocking_write): New functions. + * src/compare.c (process_rawdata): + * src/create.c (dump_regular_file): + * src/extract.c (extract_file): + * src/sparse.c (sparse_scan_file, sparse_extract_region): + +2011-11-26 Sergey Poznyakoff + + Fix --keep-old-files option. + + The regression was introduced by 8f390db9. This patch implements + additional + option --skip-old-files, which silently skips members which + would cause + writing over existing files, and restores --keep-old-files to + its traditional + behavior. + + * NEWS: Update. + * configure.ac: Update. + * doc/tar.texi: Document the changes. + * src/common.h (SKIP_OLD_FILES): New old_files mode. + * src/extract.c (maybe_recoverable): Restore KEEP_OLD_FILES + behavior. + Handle SKIP_OLD_FILES. + * src/tar.c: New option --skip-old-files. + * tests/extrac18.at: New file. + * tests/extrac19.at: New file. + * tests/Makefile.am: Add new test cases. + * tests/testsuite.at: Likewise. + +2011-11-17 Sergey Poznyakoff + + Warn about existing files in keep-old-files mode (complements + 8f390db9). + + This is controlled by "existing-file" warning code, which is off + by default. + + * src/common.h (WARN_EXISTING_FILE): New warning code. + (WARN_VERBOSE_WARNINGS): Add WARN_EXISTING_FILE. + * src/extract.c (maybe_recoverable): warn about existing file + if WARN_EXISTING_FILE is set. + * src/warning.c: New warning type: "existing-file" + +2011-11-17 Sergey Poznyakoff + + Fix the "Creating directory:" output + + * src/list.c (print_for_mkdir): don't use unquoted name length for + computing its output width. + +2011-11-15 Sergey Poznyakoff + + Fix operation of --verify in conjunction with --listed-incremental + + * src/common.h (clear_directory_table): New proto. + * src/incremen.c (clear_directory_table): New function. + * src/compare.c (diff_dumpdir): Take a pointer to struct + tar_stat_info as argument. + Initialize its fd. + (diff_archive): Update call to diff_dumpdir. + (verify_volume): Call clear_directory_table. + +2011-10-18 Paul Eggert + + * doc/tar.texi (Option Summary, absolute): Document -P better, + + by describing how it deals with symbolic links on extraction. + +2011-09-28 Paul Eggert + + 2011-09-27 Paul Eggert + + * src/tar.c (stat_on_signal): Use SA_RESTART if available. + +2011-09-20 Paul Eggert + + * doc/tar.texi: Remove front- and back-cover texts. + + These are no longer needed for this manual, according to the + GNU maintainers guide. Update copyright date to 2011. + +2011-09-19 Sergey Poznyakoff + + Minor changes. + + * scripts/tar-snapshot-edit: License under GPLv3+. + Remove trailing whitespace. + +2011-09-19 Nathan Stratton Treadway + + Minor changes. + + * doc/snapshot.texi: Clarify the use of nfs field in 0 and + 1 formats. + Give more precise information about which versions of tar + used each + format. + +2011-09-19 Nathan Stratton Treadway + + Upgrade tar-snapshot-edit script. + + * scripts/tar-snapshot-edit: Update Perl syntax to work + correctly with more recent versions of Perl. (The original + code worked with in the v5.8 timeframe but not with + Perl v5.10.1 and later.) + Add a "-c" option to check the snapshot file for invalid + field values. + Handle NFS indicator character ("+") in version 0 and 1 files. + Preserve the original header/version line when editing version 1 + or 2 files. + Tweak output formatting. + * doc/tar-snapshot-edit.texi: Update documentation. + +2011-08-13 Paul Eggert + + tar: --owner and --group names and numbers + + The --owner and --group options now accept operands of the form + NAME:NUM, so that you can specify both symbolic name and numeric + ID for owner and group. Also, in these options, NAME no longer + needs to be present in the current host's user and group + databases; this implements Debian enhancement request 136231 + reported + by Mark W. Eichin, communicated by Thayne Harbaugh to bug-tar in + . + * NEWS, doc/tar.texi (Option Summary, override): Document + enhancement. + * src/common.h (group_name_option, owner_name_option): New decls. + * src/create.c (start_header): Don't assume owner and group names + are in current host database. + * src/tar.c (parse_owner_group): New function, for parsing + NAME:NUM. + (parse_opt): Use it. + (decode_options): Initialize owner_name_option, group_name_option. + * tests/owner.at: New file, to test this enhancement. + * tests/Makefile.am (TESTSUITE_AT): Add it. + * tests/testsuite.at: Include it. + +2011-08-13 Paul Eggert + + .gitignore: update + + * .gitignore: Add rmt. + * lib/.gitignore: New file. + +2011-07-30 Sergey Poznyakoff + + Fix the --exclude-backups option. + + * src/tar.c (add_exclude_array): Take exclude option filags in its + second argument. + (parse_opt): Register backup_file_table with the EXCLUDE_WILDCARDS + flag. + * tests/exclude07.at: New testcase. + * tests/Makefile.am (TESTSUITE_AT): Add testsuite.at. + * tests/testsuite.at: Include exclude07.at. + +2011-06-08 Paul Eggert + + tar: simplify birthtime calculations + + * src/extract.c (same_birthtime): Remove. + (extract_link, apply_delayed_links): Go back to using + timestamp_cmp + instead of same_birthtime, as this is a bit simpler. This fix + relies + on an up-to-date gnulib. + +2011-06-08 Paul Eggert + + tar: use birthtime rather than ctime when checking identity + + Without this fix, tar would sometimes mishandle the extraction of + hard links to symbolic links. Problem reported in + + by Andreas Stolcke. + * src/extract.c (struct delayed_link): Change ctime member + to birthtime. + (same_birthtime): New function. + (create_placeholder_file, extract_link, apply_delayed_links): + Use it to compare birthtimes (when available) instead of ctime. + +2011-05-26 Paul Eggert + + * doc/tar.texi (Old Options): Clarify distinction from short + options. + + Adjust other parts of the manual to use examples that parse the + same regardless of whether "-" is in front of the option clump. + See + . + +2011-03-12 Sergey Poznyakoff + + Testsuite fix. + + * tests/sparse04.at: Use the -f option. + 2011-03-12 Sergey Poznyakoff Version 1.26 + * NEWS, configure.ac: Update. * po/POTFILES.in: Remove paxexit.c (see bb971a1e). 2011-03-08 Paul Eggert --atime-preserve=replace: fix correctness and performance bugs + reported by Eric Blake in . * src/compare.c (diff_file): Do not restore atime of size-zero @@ -17,12 +1389,14 @@ 2011-02-23 Paul Eggert * doc/tar.texi: Adjust example commands and output for accuracy. + The original problem was reported by Michael Witten in . 2011-02-16 Paul Eggert tar: if (p) free (p); -> free (p); + There is no longer (since SunOS 4) any need to guard against free (NULL), so replace each "if (p) free (p);" with "free (p);". From Jim Meyering in @@ -35,6 +1409,7 @@ 2010-12-14 Sergey Poznyakoff Correctly store long sparse file names in PAX archives. + * src/sparse.c (pax_dump_header_1): Make sure the created header name is shorter than NAME_FIELD_SIZE bytes. @@ -46,6 +1421,7 @@ 2010-12-07 Paul Eggert tests: make the truncate test smaller and less buggy (tiny change) + Reported by Solar Designer in . * tests/truncate.at: Use a smaller test case, and make its @@ -55,6 +1431,7 @@ tests: skip SIGPIPE-dependent tests in environments ignoring SIGPIPE + Problem reported by Sven Joachim in . * tests/remfiles01.at: Use AT_SIGPIPE_PREREQ. @@ -65,6 +1442,7 @@ tar: work around NetBSD and Tru64 symlink incompatibility with POSIX + Problem reported by Bruno Haible in . * src/extract.c (maybe_recoverable): Also treat EFTYPE (if @@ -74,22 +1452,30 @@ 2010-11-24 Paul Eggert tar: adjust to paxutils change: paxexit.c -> paxexit-status.c + * lib/Makefile.am (libtar_a_SOURCES): paxexit.c renamed to paxexit-status.c. +2010-11-24 Paul Eggert + tar: remove unused function dir_removed_diag + * src/common.h (dir_removed_diag): Remove unused decl. * src/misc.c (dir_removed_diag): Remove unused function. 2010-11-23 Paul Eggert tar: work around FreeBSD symlink incompatibility with POSIX + * src/extract.c (maybe_recoverable): Treat EMLINK like ELOOP, for FreeBSD. Problem reported by Christian Weisgerber in . +2010-11-23 Paul Eggert + * src/names.c: tar: fix bug with --one-file-system --listed-incremental + Problem (and idea for fix) reported by Martin Weigel . * src/common.h (is_individual_file): Remove decl. @@ -101,13 +1487,19 @@ * src/names.c (individual_file_table, register_individual_file): (is_individual_file): Remove. All uses removed. +2010-11-23 Paul Eggert + tests: new test listed04 for --one-file-system --listed-incremental + * tests/Makefile.am (TESTSUITE_AT): Add listed04.at. * tests/listed04.at: New file. * tests/testsuite.at: Include it. +2010-11-23 Paul Eggert + scripts: fix option parsing + Problem reported by Dennis Wydra in . * scripts/backup.in: Accept "-l LEVEL". Be more systematic about @@ -121,17 +1513,22 @@ Issue a warning if the archive being compared contais transformed file names. + * src/common.h (transform_program_p): New proto. * src/transform.c (transform_program_p): New function. * src/compare.c (verify_volume): Warn if the archive contains transformed file names. +2010-11-15 Sergey Poznyakoff + Minor change. + * doc/tar.texi: Reword the description of decompress-program. 2010-11-15 Paul Eggert tar: fix --verify option, which broke in 1.24 + * NEWS: Document this. * src/compare.c (verify_volume): Decode the header before invoking diff_archive, as diff_archive no longer does this as of the @@ -148,12 +1545,14 @@ 2010-11-08 Jim Meyering tests: avoid spurious failure when VERSION_CONTROL envvar is set + * tests/backup01.at: Unset VERSION_CONTROL. Otherwise, when set to e.g., 'always', it would cause this test to fail. 2010-11-07 Sergey Poznyakoff Version 1.25 + * configure.ac: Version 1.25 * NEWS: Describe the changes. @@ -161,6 +1560,7 @@ Run alternative decompression programs if the principal one is not available. + Some compression programs are able to handle various compression formats (e.g. `gzip' can decompress files created by `compress', `xz' @@ -191,6 +1591,7 @@ 2010-11-02 Paul Eggert tests: fix some issues with signals, timestamps, "test" typo + * tests/extrac17.at: Add --warning=no-timestamp, to avoid bogus warning due to NFS clock skew. * tests/remfiles01.at: Discard diagnostics that some shells @@ -202,12 +1603,14 @@ 2010-11-01 Sergey Poznyakoff Fix extraction of device nodes. + * src/extract.c (extract_node): Do not mask out node type. The bug was introduced in commit ea964cce. 2010-10-28 Paul Eggert tar: don't cross struct member boundaries with OLDGNU_MAGIC + * src/create.c (write_gnu_long_link, start_header): Access header->buffer + offsetof (struct posix_header, magic), instead of header->header.magic, when reading or writing the OLDGNU_MAGIC @@ -219,7 +1622,10 @@ . * src/list.c (decode_header): Likewise. +2010-10-28 Paul Eggert + tests: port to sh variants that squirrel away file descriptors + OpenBSD /bin/sh, and some other sh variants, squirrel away file descriptors before closing them. For example, for "cat 3<&-" they first dup file descriptor 3 to a fd that is 10 or greater, then @@ -239,6 +1645,7 @@ 2010-10-27 Sergey Poznyakoff Transform file names when updating and appendig to archives. + This complements 28e91b48. * src/common.h (transform_stat_info): New prototype. @@ -250,11 +1657,15 @@ 2010-10-27 Paul Eggert tests: port to Solaris diff + * tests/extrac13.at: Don't assume that "diff -c" outputs nothing when there are no differences. This is not true on Solaris, where it outputs "No differences encounted". +2010-10-27 Paul Eggert + tar: fix -x --overwrite bug (no --dereference, ! O_NOFOLLOW) + This bug was discovered on Solaris 8. On older hosts lacking O_NOFOLLOW, tar -x --overwrite (without --dereference) follows symbolic links, causing the "extract over symlinks" test to fail. @@ -262,7 +1673,10 @@ * src/extract.c (open_output_file): If O_NOFOLLOW is needed but does not work, check for a symlink separately. +2010-10-27 Paul Eggert + tar: don't use "((" in shell scripts + * tests/extrac11.at: Replace "((" with "( (" in shell scripts, as "((" is not portable to the Korn shell, and POSIX 1003.1-2008 says that "((" is not portable. @@ -270,6 +1684,7 @@ 2010-10-26 Sergey Poznyakoff Make sure name matching occurs before name transformation. + The commit 9c194c99 altered that order. * src/list.c (transform_stat_info): New function. Split off from @@ -285,18 +1700,21 @@ 2010-10-26 Paul Eggert tar: don't assume stdin is open when testing fd limits + * tests/extrac11.at: Redirect stdin from /dev/null, in case the parent 'make' is running with stdin closed. 2010-10-26 Sergey Poznyakoff Further fixes in bootstrap. + * bootstrap: Restore the default for gnulib_path (symlink_to_dir): Re-apply 67cad07. 2010-10-26 Paul Eggert tar: fix bug with -C and extracting directories + Problem reported by Denis Excoffier in . @@ -313,6 +1731,7 @@ 2010-10-25 Sergey Poznyakoff Version 1.24 + * configure.ac, NEWS: Version 1.24 * bootstrap: Restore tar-specific code lost during last sync from gnulib (241b72ffad). @@ -321,6 +1740,7 @@ 2010-10-16 Paul Eggert tar: use more-accurate diagnostic when intermediate mkdir fails + Without this change, if tar tried to extract a file A/B/C, noticed that A/B didn't exist, attempted to mkdir A/B, and the mkdir failed, it did not diagnose the mkdir failure, but simply reported @@ -340,7 +1760,10 @@ * tests/Makefile.am (TESTSUITE_AT): Add it. * tests/testsuite.at: Include it. +2010-10-16 Paul Eggert + tests: port to NFS file servers with clock skew + Several of the tests assumed that a newly created file cannot have a time stamp dated in the future. This assumption is not true when files are served by a remote host whose clock is @@ -364,6 +1787,7 @@ gnulib: sync from latest gnulib, notably bootstrap and parse-datetime + * bootstrap: Sync from gnulib. * doc/.gitignore: Rename getdate.texi to parse-datetime.texi. * doc/Makefile.am (tar_TEXINFOS): Likewise. @@ -378,6 +1802,7 @@ 2010-09-24 Paul Eggert tar: -x -C symlink fix + * src/misc.c (chdir_do): Don't use O_NOFOLLOW when opening the argument to -C. This is for consistency with "tar -c -C FOO", and matches the new documentation. @@ -385,7 +1810,10 @@ * tests/Makefile.am (TESTSUITE_AT): Add it. * tests/testsuite.at: Include it. +2010-09-24 Paul Eggert + tar: --dereference consistency + This closes another race condition, that occurs when overwriting a symlink with a regular file. * NEWS (--dereference consistency): New section. @@ -430,6 +1858,7 @@ 2010-09-20 Paul Eggert tar: do not crash with --listed-incremental + Problem reported by Frantisek Hanzlik in via Kamil Dudka in . @@ -443,6 +1872,7 @@ 2010-09-19 Paul Eggert tar: prefer openat-style functions + This change replaces traditional functions like 'open' with the POSIX.1-2008 functions like 'openat'. Mostly this is an internal refactoring change, in preparation for further changes to close @@ -509,11 +1939,15 @@ 2010-09-18 Paul Eggert tar: add utimens.h includes + * src/extract.c: Include , needed for fdutimens prototype. * src/misc.c: Likewise. +2010-09-18 Paul Eggert + tar: switch to gnulib fdutimensat module + * gnulib.modules: Add fdutimensat. * src/common.h (fd_utimensat): Remove decl. * src/extract.c (set_stat): Call fdutimensat, not fd_utimensat. @@ -523,6 +1957,7 @@ 2010-09-17 Paul Eggert tar: extract permissions for . last + * src/common.h (must_be_dot_or_slash): New decl. * src/extract.c (mark_after_links): New function, taking code that used to be in create_placeholder_file. @@ -533,12 +1968,18 @@ * tests/Makefile.am (TESTSUITE_AT): Add it. * tests/testsuite.at: Likewise. +2010-09-17 Paul Eggert + tar: don't check for getdtablesize; use AC_CHECK_FUNCS_ONCE + * configure.ac: Don't check for getdtablesize; no longer needed. Use AC_CHECK_FUNCS_ONCE rather than AC_CHECK_FUNCS, for efficiency. +2010-09-17 Paul Eggert + tar: extract symlink attributes, close some symlink-related races + * NEWS: Describe symlink-extraction improvements. * src/extract.c (enum permstatus): Remove. (fchmod, fchown): Define dummy replacement macros if the system @@ -600,20 +2041,27 @@ 2010-09-16 Paul Eggert tar: tar -x without --incremental no longer sets atime again + * src/extract.c (set_stat): Use UTIME_OMIT rather than UTIME_NOW. The UTIME_NOW was there only to emulate the previous behavior of using the current time, and the previous behavior was there only because before we started assuming POSIX.1-2008 there was no portable way to get the effect of UTIME_NOW. +2010-09-16 Paul Eggert + tar: another --atime-preserve race fix + * src/common.h (set_file_atime): Add parentfd arg. * src/compare.c (diff_file): Use it. * src/create.c (dump_file0): Likewise. This closes yet another race condition with symbolic links. * src/misc.c (set_file_atime): Add parentfd arg. +2010-09-16 Paul Eggert + tar: --atime-preserve fixes for races etc. + This patch fixes a race condition in the --atime-preserve=replace option, which might cause tar to improperly follow a symbolic link. @@ -648,6 +2096,7 @@ 2010-09-14 Paul Eggert * configure.ac: tar: close some race conditions when extracting + * configure.ac: Check for fchmod and fchown. Don't check for utimes. * src/extract.c (fdchmod, fdchown, fdstat): New functions. @@ -658,6 +2107,7 @@ 2010-09-13 Paul Eggert tar: don't worry about fdopendir closing its argument + * NEWS: Don't mention dirfd; no longer needed. * gnulib.modules: Remove dirfd. * src/create.c (get_directory_entries): Remove the code dealing @@ -666,10 +2116,16 @@ and gnulib commit 970c9038e4cca46e1b037ae0a6d574dfae6a7327. +2010-09-13 Paul Eggert + * NEWS: Fix wording typo in previous change. + Reported by Jim Meyering. +2010-09-13 Paul Eggert + tar: live within system-supplied limits on file descriptors + * NEWS: Note the change. Mention dirfd and fdopendir. * gnulib.modules: Add dirfd and fdopendir. The code was already using fdopendir; dirfd is a new need. @@ -711,6 +2167,7 @@ 2010-09-08 Paul Eggert tar: improve documentation of reliability and security issues + * doc/tar.texi (Reliability and security, Reliability): (Permissions problems, Data corruption and repair, Race conditions): @@ -720,6 +2177,7 @@ 2010-09-06 Paul Eggert tar: more reliable directory traversal when creating archives + * NEWS: Document this. * gnulib.modules: Add openat, readlinkat. * src/common.h (open_read_flags, fstatat_flags): New global @@ -789,6 +2247,7 @@ 2010-09-05 Paul Eggert tar: remove lint discovered by Sun C compiler + * src/common.h (WARN_ALL): Don't mask with 0xffffffff; on a 32-bit host, 0xffffffff is of type 'unsigned int', which makes WARN_ALL an unsigned int value that is too large to fit into an int, and @@ -798,6 +2257,7 @@ 2010-09-04 Paul Eggert tar: restore macros that are used in some cases + * src/tar.c (LOW_DENSITY_NUM, MID_DENSITY_NUM, HIGH_DENSITY_NUM): Restore these macros, undoing the previous change to this file. The macros are used after all, in some cases. Sorry about that. @@ -805,6 +2265,7 @@ 2010-09-03 Paul Eggert tar: remove unused macros + * src/create.c (UINTMAX_TO_CHARS): Remove; no longer used. * src/tar.c (LOW_DENSITY_NUM, MID_DENSITY_NUM, HIGH_DENSITY_NUM): Likewise. @@ -814,6 +2275,7 @@ 2010-08-27 Sergey Poznyakoff Fix --remove-files in update/append mode. + * src/update.c (update_archive): Call finish_deferred_unlinks when done. @@ -821,6 +2283,7 @@ tar: avoid assumptions about root access and chmod -w in test cases + * tests/extrac07.at, tests/extrac09.at, tests/listed03.at: Use AT_UNPRIVILEGED_PREREQ, since this test requires non-root privileges. @@ -828,7 +2291,10 @@ portable to start a chmod permissions-list with "-" as it may be confused with an option. Use "chmod a-w" instead. +2010-08-26 Paul Eggert + tar: fix bug with -C and delayed setting of metadata + * src/common.h (chdir_current): New decl. * src/extract.c (struct delayed_set_stat, struct delayed_link): New member change_dir. @@ -848,6 +2314,7 @@ 2010-08-25 Sergey Poznyakoff Don't apply file transformations to volume names. + * src/list.c (decode_header): Don't apply file transformations to volume names. * tests/xform01.at: New testcase. @@ -858,13 +2325,17 @@ 2010-08-25 Paul Eggert tar: optimize -c --sparse when file is entirely sparse + * src/sparse.c (sparse_scan_file): If the file is entirely sparse, that is, if ST_NBLOCKS is zero, don't bother scanning for nonzero blocks. Idea by Kit Westneat, communicated by Bernd Schubert in . Also, omit unnecessary lseek at start of file. +2010-08-25 Paul Eggert + tar: don't assume size of a sparse file chunk fits in size_t + * src/tar.h (struct sp_array): Change numbytes from size_t to off_t. All uses changed. @@ -883,7 +2354,10 @@ * src/xheader.c (sparse_numbytes_decoder, sparse_map_decoder): Likewise. +2010-08-25 Paul Eggert + tar: use ctime, not mtime, when checking placeholders + * src/extract.c (struct delayed_link): Rename member mtime to ctime. All uses changed to use ctime rather than mtime. @@ -891,9 +2365,13 @@ 2010-08-24 Paul Eggert tar: add comment to link04.at test + * tests/link04.at: Add explanatory comment at head. +2010-08-24 Paul Eggert + tar: fix 1.23 Solaris regression related to PRIV_SYS_LINKDIR + The idea was suggested by Petr Sumbera in the thread starting here: http://lists.gnu.org/archive/html/bug-tar/2010-08/msg00000.html @@ -909,7 +2387,10 @@ Invoke priv_set_restore_linkdir before execv or execlp, so that the subprocess has the same privileges that tar originally did. +2010-08-24 Paul Eggert + tar: handle files that occur multiple times but have link count 1 + This patch was inspired by the following patch that addressed a similar problem in GNU coreutils du: http://git.savannah.gnu.org/gitweb/?p=coreutils.git;h=efe53cc72b599979ea292754ecfe8abf7c839d22 @@ -932,10 +2413,14 @@ 2010-08-23 Paul Eggert tar: use nlink_t for link counts + * src/create.c (struct link): nlink is now of type nlink_t, not size_t. +2010-08-23 Paul Eggert + tar: don't export names that aren't used elsewhere + * src/common.h (file_dumpable_p, gid_to_chars, major_to_chars): (minor_to_chars, mode_to_chars, uid_to_chars, uintmax_to_chars): (string_to_chars, dumpdir_creat0, dumpdir_create, dumpdir_free): @@ -970,7 +2455,10 @@ * src/tar.c (request_stdin): Now static. * src/xheader.c (xheader_init): Now static. +2010-08-23 Paul Eggert + tar: fix misspelled identifier "set_comression_program_by_suffix" + * src/suffix.c (set_compression_program_by_suffix): Renamed from set_comression_program_by_suffix. * src/buffer.c, src/common.h, src/tar.c: All uses changed. @@ -978,12 +2466,16 @@ 2010-08-20 Paul Eggert tar: change interdir_made from int to bool + * src/extract.c (maybe_recoverable, create_placeholder_file): Change interdir_made from int * to bool *, since the flag has just two values 0 and 1. All uses changed. This does not affect tar's behavior. +2010-08-20 Paul Eggert + tar: remove trailing white space from source files + * ChangeLog.1, ChangeLog.CVS, Makefile.am, NEWS, README: * README-hacking, directory, doc/Makefile.am, doc/dumpdir.texi: * doc/gendocs_template, doc/intern.texi, doc/mastermenu.el: @@ -1024,6 +2516,7 @@ 2010-08-19 Paul Eggert tar: update licenses to latest versions from www.gnu.org + * COPYING: Update to latest version; this is just minor formatting. * doc/fdl.texi: Update from GFDL 1.2 to 1.3. @@ -1037,6 +2530,7 @@ 2010-07-18 Paul R. Eggert tar: no need to report getcwd error if never using the result + * src/misc.c (struct wd): Rename 'saved' to 'err', with new semantics. (chdir_arg, chdir_do): Adjust to new semantics. Do not report an @@ -1046,8 +2540,11 @@ * tests/testsuite.at: Include it. * tests/Makefile.am (TESTSUITE_AT): Add it. +2010-07-18 Paul R. Eggert + tar: go back to absolutifying filenames in normalize_filename for now + * src/misc.c (normalize_filename): For now, go back to making filenames absolute, even though this causes 'tar' to fail when getcwd fails. However, do not attempt to resolve ".." as this @@ -1057,6 +2554,7 @@ 2010-07-17 Sergey Poznyakoff Allow for size suffixes in -L and --record-size options. + * src/tar.c (TAR_SIZE_SUFFIXES): New define. (parse_opt): Allow for size suffixes in arguments to -L and --record-size options. @@ -1065,6 +2563,7 @@ 2010-07-15 Paul R. Eggert tar: don't crash if getcwd fails + * src/extract.c: Don't include xgetcwd.h. (extract_dir): stat "." rather than statting getcwd's output. * src/misc.c (normalize_filename_x): Rewrite so as not to resolve @@ -1082,6 +2581,7 @@ Keep a detailed map of archive members stored in the record buffer. + A separate map (bufmap) provides information for creating multi-volume continuation headers. @@ -1119,7 +2619,10 @@ * tests/multiv08.at: New testcase. * tests/Makefile.am, tests/testsuite.at: Add multiv08.at. +2010-07-11 Sergey Poznyakoff + Version 1.23.90 + * NEWS, configure.ac: Version 1.23.90 * doc/tar.texi: Document the use of lbzip2. @@ -1127,6 +2630,7 @@ Fix exclusion of long file names when extracting from pax format archives. + * src/list.c (read_and): Call decode_header before attempting name_match. (list_archive): Remove call to decode_header. @@ -1138,18 +2642,23 @@ * tests/testsuite.at: Include exclude06.at. * tests/Makefile.am (TESTSUITE_AT): Add exclude06.at. +2010-06-28 Sergey Poznyakoff + Minor fix. + * src/buffer.c (magic): Split the character constant to help cc recognize character boundaries (7 is a valid hex character). 2010-06-27 Sergey Poznyakoff Minor fix. + * src/buffer.c (magic): Fix xz magic. 2010-06-16 Paul Eggert Remove some lint, found by gcc -W etc. + * src/common.h (label_notfound): New decl. * src/buffer.c (set_volume_start_time, compress_type): (guess_seekable_archive, open_compressed_archive, init_buffer): @@ -1192,6 +2701,7 @@ 2010-05-17 Sergey Poznyakoff Bugfix. + * src/incremen.c (make_directory): Retain the slash if it is the only character in a filename. @@ -1202,12 +2712,14 @@ 2010-04-01 Sergey Poznyakoff Fix the gzip.at test case. + * tests/gzip.at: Suppress gzip error output, as it can differ depending on its version etc. Bug reported by Ludovic Courtès. 2010-03-28 Sergey Poznyakoff New option --full-time. + * src/common.h (full_time_option): New global. * src/tar.c (FULL_TIME_OPTION): New constant. (options): New option --full-time. @@ -1220,16 +2732,23 @@ 2010-03-27 Sergey Poznyakoff Minor fixes in the testsuite. + * tests/extrac07.at: Fix a typo (invalid number of arguments before format list). * tests/link02.at: Use `ln' instead of `link'. * tests/link03.at: Likewise. +2010-03-27 Sergey Poznyakoff + Fix coredump. + * src/names.c (collect_and_sort_names): Remove entry from the table before freeing it. +2010-03-27 Sergey Poznyakoff + Fix dead loop on extracting existing symlinks with the -k option. + * src/extract.c (create_placeholder_file) (extract_link, extract_symlink) (extract_node, extract_fifo): Handle all possible @@ -1240,6 +2759,7 @@ 2010-03-20 Sergey Poznyakoff Fix undesired error exit on receiving SIGPIPE. + * src/tar.c: Do not ignore SIGPIPE. * tests/sigpipe.at: New testcase. * tests/Makefile.am, tests/testsuite.at: Add sigpipe.at @@ -1249,6 +2769,7 @@ 2010-03-17 Sergey Poznyakoff Fix --remove-files. + Tar --remove-files relied on canonicalize_file_name, which replaces symlinks in file name components with the directories they point to. Due to this, tar @@ -1270,12 +2791,14 @@ 2010-03-12 Sergey Poznyakoff Bugfixes. + * src/buffer.c (check_label_pattern): Initialize result. * tests/remfiles01.at: Skip if run with root privileges. 2010-03-11 Sergey Poznyakoff Fix `--test-label' and `--label -r' behavior. + * doc/tar.texi (Including a Label in the Archive): Revise the section. * NEWS: Update @@ -1294,26 +2817,39 @@ * tests/Makefile.am: Add new testcases. * tests/testsuite.at: Likewise. +2010-03-11 Sergey Poznyakoff + Doc fixes. + * doc/tar.texi: Consistently use lowercase `see' within sentences. More fixes spotted by Denis Excoffier. * THANKS: Update. +2010-03-11 Sergey Poznyakoff + Shut up a gcc warning message. + * src/tar.c (tar_help_filter): Use a separate const variable to hold returns from gettext. Reported by Peter Breitenlohner. +2010-03-11 Sergey Poznyakoff + Bugfix. + * src/names.c (collect_and_sort_names): Initialize prev_name. Reported by Dmitry V. Levin. 2010-03-10 Sergey Poznyakoff Version 1.23 + * configure.ac, NEWS: Update version number. +2010-03-10 Sergey Poznyakoff + Doc changes. + * NEWS: Update. * THANKS: Update. * doc/snapshot.texi, doc/snapshot.texi, @@ -1325,16 +2861,21 @@ 2010-03-08 Kamil Dudka Fix possible overflow in code_timespec (tiny change) + * src/misc.c (code_timespec): ignore invalid values of ns 2010-03-08 Sergey Poznyakoff Minor fix in the testsuite. + * tests/extrac05.at: Skip test if creating sparse file fails. +2010-03-08 Sergey Poznyakoff + Fix eventual memory override and fd exhaustion in create.c Both bugs reported by Kamil Dudka. + * src/create.c (check_exclusion_tags): Do not keep pointer to a location within tagname: it may change after xrealloc. Use byte offset instead. @@ -1344,11 +2885,13 @@ 2010-03-02 Sergey Poznyakoff Minor change. + * doc/tar.texi: Improve some wording. 2010-03-02 Antonio Diaz Diaz Add Lzip support + * configure.ac: Add TAR_COMPR_PROGRAM(lzip) * doc/tar.texi: Reflect lzip support. * src/buffer.c (compress_type) : New constant. @@ -1359,18 +2902,21 @@ 2010-03-02 Sergey Poznyakoff Minor fix. + * tests/exclude05.at: Rewrite awk invocation to avoid overflowing awk's file table on Solaris. 2010-03-02 Eric Blake Fix large file support. + * scripts/xsparse.c (read_map): Use fseeko. * src/incremen.c (write_directory_file): Likewise. 2010-03-02 Sergey Poznyakoff Bugfix + * src/buffer.c (seek_archive): Rewrite size computation to prevent it from reaching negative values. Based on report by Denis Excoffier . @@ -1378,6 +2924,7 @@ 2010-02-25 Sergey Poznyakoff Supply more information to the --to-command script. + * src/system.c (stat_to_env): Pass information about the current volume in variables TAR_ARCHIVE, TAR_VOLUME, TAR_BLOCKING_FACTOR, TAR_FORMAT. @@ -1388,6 +2935,7 @@ 2010-02-17 Sergey Poznyakoff Minor change. + * src/names.c (regex_usage_warning): Fix warning message. 2010-02-05 Sergey Poznyakoff @@ -1397,12 +2945,14 @@ 2010-02-05 Ondřej Vašík Bugfix (tiny change) + * src/xheader.c (xheader_read): Remove unnecessary call to xheader_init. 2010-01-26 Sergey Poznyakoff Enable silent build mode. + * configure.ac: Require automake 1.11, autoconf 2.63. Enable silent rules. * NEWS: Update. @@ -1411,6 +2961,7 @@ 2010-01-25 Sergey Poznyakoff Read POSIX multivolume archives split at the header boundary. + * src/common.h (read_header_mode): New enum. (read_header): Change type of the 3rd argument. * src/list.c (read_header): Change type of the 3rd argument. @@ -1430,6 +2981,7 @@ 2010-01-24 Sergey Poznyakoff Minor change. + * NEWS: Update. * doc/tar.texi: Update. * src/create.c (finish_header): Minor change. @@ -1437,17 +2989,22 @@ 2010-01-24 Rob Vermaas Bugfix (tiny change). + * src/tar.c (format_default_settings)[REMOTE_SHELL]: Fix misplaced comma. 2010-01-24 Sergey Poznyakoff Minor fix. + * src/incremen.c (read_incr_db_01) (read_directory_file): Initialize bufsize to 0. Suggested by noordsij@cs.helsinki.fi. +2010-01-24 Sergey Poznyakoff + Improve handling of --test-label. + * src/list.c (print_volume_label): New function. (print_header): Call print_volume_label. (test_archive_label): New function. @@ -1466,7 +3023,10 @@ (parse_opt): Set subcommand if --test-label is given. (main): Handle TEST_LABEL_SUBCOMMAND. +2010-01-24 Sergey Poznyakoff + Fix listing of volume labels (in particular in PAX archives). + * src/buffer.c (match_volume_label): Call set_volume_label. (check_label_pattern): Get label string as argument. @@ -1511,6 +3071,7 @@ 2010-01-22 Sergey Poznyakoff Fix prefix length calculation in ustar mode. + * src/create.c (split_long_name): Fix prefix length calculation. (write_ustar_long_name): Improve ustar mode compatibility @@ -1519,6 +3080,7 @@ 2009-10-14 Sergey Poznyakoff Rewrite update algorithm. + * src/common.h (namebuf_t): New typedef. (namebuf_create, namebuf_free) (namebuf_name): New prototypes. @@ -1543,7 +3105,10 @@ * tests/testsuite.at: Likewise. * tests/update.at (AT_KEYWORDS): Add update00. +2009-10-14 Sergey Poznyakoff + Minor changes. + * src/tar.c (main): Ignore SIGPIPE. * src/system.c (sys_child_open_for_compress) (sys_child_open_for_uncompress): Reset SIGPIPE @@ -1551,13 +3116,17 @@ * tests/remfiles01.at: Avoid race conditions. * tests/remfiles02.at: Likewise. +2009-10-14 Sergey Poznyakoff + Bugfix. + * src/buffer.c (_open_archive): Call guess_seekable_archive only if the call to open_compressed_archive succeeded. 2009-10-10 Sergey Poznyakoff Improve previous changes. + * acinclude.m4: Fix typos. * gnulib.modules: Add xvasprintf. * src/common.h: Include xvasprintf.h. @@ -1569,8 +3138,11 @@ (parse_opt): Use *_PROGRAM defines instead of hardcoded program names. +2009-10-10 Sergey Poznyakoff + Allow installers to specify alternative program names for compression programs. + This adds --with-gzip, --with-bzip2 etc. switches to the configure, so that one can do, e.g. ./configure --with-bzip2=lbzip2 and have @@ -1587,6 +3159,7 @@ 2009-10-09 Sergey Poznyakoff Minor fix. + * src/buffer.c (magic): Fix `xz' entry: add the name of the program. * src/suffix.c (compression_suffixes, nsuffixes): Mark as static. @@ -1595,6 +3168,7 @@ Provide a way to explicitly set mtime for extended header ustar blocks. + * src/tar.c (struct textual_date): ts is a copy of the structure, not a pointer to it. Date is a copy as well, hence the `const' is taken away. @@ -1616,7 +3190,10 @@ * NEWS: Update * doc/tar.texi: Document the changes. +2009-10-07 Sergey Poznyakoff + Use file's mtime as mtime for its extended header. + This makes two pax archives binary equivalent if they have the same contents and care is taken to make extended headers otherwise reproducible, e.g. by using: @@ -1634,7 +3211,10 @@ Use current time stamp as mtime for global headers. (xheader_write): Take time_t as 3rd param. +2009-10-07 Sergey Poznyakoff + Fix bugs in handling the --remove-files option. + Make sure the files are deleted only if they were succesfully stored to the archive. @@ -1670,6 +3250,7 @@ 2009-10-04 Sergey Poznyakoff Fix bug in OLDGNU format creation. + See tests/append02.at for a detailed description * src/common.h (MODE_FROM_HEADER): Take additional argument. @@ -1685,6 +3266,7 @@ 2009-09-16 Sergey Poznyakoff Restore extra help output. + * src/tar.c (tar_list_quoting_styles): Change first argument to struct obstack. (format_default_settings): New function. @@ -1698,6 +3280,7 @@ 2009-09-08 Sergey Poznyakoff Improve command line option handling. + * gnulib.modules: Add argp-version-etc and progname, use getopt-gnu instead of getopt. * src/tar.c (HANG_OPTION, USAGE_OPTION) @@ -1710,8 +3293,11 @@ (decode_options): Call argp_version_setup. Do not use ARGP_NO_HELP flag in the call to argp_parse. +2009-09-08 Sergey Poznyakoff + Avoid overwriting exit_status with a value indicating less important condition. + * src/tar.c (set_exit_status): New function. * src/common.h (set_exit_status): New prototype. * src/compare.c: Use set_exit_status instead of @@ -1724,7 +3310,10 @@ * src/incremen.c (scan_directory): Use file_removed_diag instead of stat_diag. +2009-09-08 Sergey Poznyakoff + Automatic detection of seekable archives. + * src/buffer.c (guess_seekable_archive): New function. (_open_archive): Call guess_seekable_archive for archives open for reading. @@ -1741,6 +3330,7 @@ 2009-08-27 Sergey Poznyakoff Fix testcases. + * tests/extrac08.at: Ensure a predictable umask value. * tests/xform-h.at (xform): do not depend on file name ordering. @@ -1748,6 +3338,7 @@ 2009-08-13 Sergey Poznyakoff Fix interaction between --listed-incremental and -C + * src/incremen.c (read_directory_file): Execute eventual -C dir after opening the snapshot file. (collect_and_sort_names): Remove call to chdir_do @@ -1758,6 +3349,7 @@ Update for new exclude module from gnulib. Add testcases by Phil Proudman. + * src/names.c (is_pattern): Remove. (regex_usage_warning): Use fnmatch_pattern_has_wildcards instead of @@ -1779,6 +3371,7 @@ 2009-08-09 Sergey Poznyakoff Minor fixes. + * src/misc.c (file_removed_diag): Set exit code to TAREXIT_DIFFERS. @@ -1786,7 +3379,10 @@ Minor fixes +2009-08-08 Sergey Poznyakoff + Fix handling of files removed during incremental dumps. + Changes to src/create.c and src/incremen.c are partially based on patch from Alexander Peslyak . @@ -1825,8 +3421,11 @@ * NEWS: Update. * doc/tar.texi: Minor fix. +2009-08-08 Sergey Poznyakoff + Optimize searches for directory structures by keeping a pointer to struct directory in struct name. + * src/common.h (struct name): New member `directory' replaces dir_contents. Rearrange members. (rebase_directory): Change signature. @@ -1868,12 +3467,16 @@ 2009-08-07 Sergey Poznyakoff Minor fixes. + * src/common.h (rebase_directory): New prototype. * src/incremen.c (rebase_directory): Use replace_prefix. * src/names.c (collect_and_sort_names): Abort if hash_insert fails. +2009-08-07 Sergey Poznyakoff + Improve listed incremental dumps. + The modified algorithm tries to avoid dumping the same directory twice and ensures the order of the directories in the resulting archive is the same, whatever their order @@ -1940,7 +3543,10 @@ Forgotten to push src/warning.c +2009-08-05 Sergey Poznyakoff + Implement the --warning option. + * src/warning.c: New file. * src/Makefile.am: Add warning.c * src/common.h: Provide definitions for warning classes. @@ -1964,6 +3570,7 @@ Fix backup handling and restoring file modes of existing directories + * NEWS, THANKS: Update * src/extract.c (extract_dir): reset status to 0 if the directory already exists. @@ -1978,6 +3585,7 @@ 2009-07-30 Sergey Poznyakoff Fix hard links recognition with -c --remove-files + * src/create.c (dump_hard_link): Always look up in the link table if remove_files_option is set. Patch suggested by Theodore Ts'o . @@ -1986,7 +3594,10 @@ * tests/Makefile.am (TESTSUITE_AT): Add link02.at and link03.at * tests/testsuite.at: Include link02.at and link03.at +2009-07-30 Sergey Poznyakoff + Fix handling of hard link targets by -c --transform + * src/create.c (file_count_links): Transform link target before the look up. * tests/xform-h.at: New test case. @@ -1996,6 +3607,7 @@ 2009-06-23 Sergey Poznyakoff Minor fix. + * src/extract.c (file_newer_p): Do not report error on ENOENT 2009-06-19 Sergey Poznyakoff @@ -2011,6 +3623,7 @@ Fix Solaris bug where chmod fails if we don't have PRIV_SYS_LINKDIR + * gnulib.modules: Add priv-set. * src/extract.c (set_mode, extract_archive): Restore PRIV_SYS_LINKDIR on chmod failure. @@ -2019,18 +3632,21 @@ 2009-06-18 Sergey Poznyakoff Ensure default behavior for SIGPIPE + * src/tar.c (main): Install default handler for SIGPIPE. Proposed by Bastian Blank. 2009-06-18 Eric Blake Follow autoconf recommendation for TESTSUITEFLAGS. + * tests/Makefile.am (check-local, installcheck-local): Honor TESTSUITEFLAGS. 2009-06-18 Sergey Poznyakoff Fix handling of sub-subprocess returns. + * src/system.c (wait_for_grandchild): New function. (sys_child_open_for_compress) (sys_child_open_for_uncompress): Use wait_for_grandchild @@ -2039,6 +3655,7 @@ 2009-05-25 Sergey Poznyakoff Report record size only if the archive refers to a device. + * Makefile.am (INCLUDES): Add ../lib, for rmt-command.h * src/buffer.c (short_read): Report the actual record size only if the archive descriptor refers to a device. @@ -2049,6 +3666,7 @@ 2009-05-14 Sergey Poznyakoff Do not issue errors on existing files when given the -k option + * Makefile.am (dist-hook): Fix rule. * src/extract.c (maybe_recoverable): Return three-state value. (extract_dir): Skip extraction if maybe_recoverable indicates so. @@ -2057,6 +3675,7 @@ 2009-05-12 Eric Blake Avoid undefined behavior + * src/xheader.c (xheader_set_keyword_equal): Pass correct type to ctype macros. * src/transform.c (run_case_conv): Likewise. @@ -2068,6 +3687,7 @@ 2009-03-12 Sergey Poznyakoff Bugfixes. + * bootstrap (symlink_to_dir): Fix symlink calculation. * doc/tar.texi: Minor fixes by Victor Villa and Stepan Kasal. @@ -2077,6 +3697,27 @@ Migrate to Git +Currently the ChangeLog is generated automatically from the Git +revision history, but from 1997 to 2009 the ChangeLog file was +maintained by hand, under CVS. This file records the older log. + +Copyright 1997-2001, 2003-2009, 2013 Free Software Foundation, Inc. + +This file is part of GNU tar. + +GNU tar is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 3 of the License, or +(at your option) any later version. + +GNU tar is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . + 2009-03-05 Sergey Poznyakoff * src/incremen.c: --no-recursive works with --incremental. @@ -10885,26 +12526,6 @@ See ChangeLog.1 for earlier changes. ----- - - Copyright (C) 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007 - Free Software Foundation, Inc. - - This file is part of GNU tar. - - GNU tar is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3, or (at your option) - any later version. - - GNU tar is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - 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., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. Local Variables: mode: change-log