Parent Directory | Revision Log
Links to HEAD: | (view) (download) (annotate) |
Sticky Tag: |
remove all files; README-use-git: add this one file
Version 1.22
Add xz support. * src/buffer.c, src/suffix.c: Add support for xz compression. * src/tar.c: New option --xz, for compression/decompression using xz. Re-assign -J as a short equivalent of --xz. * doc/tar.texi, NEWS: Document --xz
Do not try to drain the input pipe before closing the archive. * src/buffer.c (close_archive): Remove call to sys_drain_input_pipe. Pass hit_eof as the second argument to sys_wait_for_child. * src/common.h (sys_drain_input_pipe): Remove (sys_wait_for_child): Declare second argument. * src/system.c (sys_drain_input_pipe): Remove. (sys_wait_for_child): Take two arguments. The second one helps to decide whether to tolerate child termination on SIGPIPE.
* src/buffer.c (_write_volume_label): Fix typo, which prevented `-V label -M' from working.
* src/buffer.c (short_read): Remove !read_full_records condition, which was always false on a first record and thus disabled record size autodetection. Thanks Ed Leaver for the patch. (_gnu_flush_read): Handle blocking_factor == 1. * tests/sparsemv.at: Reflect changes to buffer.c. * tests/sparsemvp.at: Likewise. * tests/volsize.at: Likewise. * NEWS: Update. * THANKS: Add Ed Leaver.
* src/common.h (transform_symlinks_option): New global. * src/create.c (dump_file0): Transform symlink targets only if explicitly required. Thanks Cyril Strejc for reporting the problem. * src/tar.c (parse_opt): New options --transform-symlinks and --no-transform-symlinks. New alias --xform to the --transform option. * doc/tar.texi: Document --transform-symlinks * NEWS: Update. * THANKS: Update. * src/names.c (name_gather): Use xzalloc. * src/buffer.c (short_read): Move record size detection before the loop.
Untabify
Fix multivolume archive creation when volume length=record size. * src/tar.c (decode_options): Do not allow volume length less than record size. * src/buffer.c (_gnu_flush_write): Compensate for the effect of eventual flush_archive occurring in the middle of buffer move. Increment records_written only if _flush_write was able to write something. * tests/multiv06.at: New testcase. * tests/Makefile.am, test/testsuite.at: Add tests/multiv06.at
* configure.ac, NEWS: Version 1.20.90 * doc/tar.texi: Document -J, --no-auto-compress, etc. * src/buffer.c (ct_tar): New constant. (magic): Add lzop support. Proposed by Kevin Day <thekevinday@gmail.com>. (check_compressed_archive): Do not use autodetect if the compression program was specified explicitly. Fall back to analyzing archive name, if the autodetection fails. * src/suffix.c: Add .lzo * src/tar.c: New options --lzop and --no-auto-compress. New short option -J (alias for --lzma).
Bugfixes. * src/buffer.c (try_new_volume): Print more information with error diagnostics. (_gnu_flush_write): Improve error checking. Adjust real_s_sizeleft before calling new_volume to avoid creating malformed multivolume headers. * tests/delete05.at, tests/gzip.at, tests/ignfail.at, tests/longv7.at, tests/lustar01.at, tests/lustar02.at, tests/shortfile.at: Update to match new diagnostic wording (see 2008-05-06). * NEWS: Update.
* doc/tar.texi: Update Back-Cover text to reflect new GNU wording. 2007-12-17 Paul Eggert <eggert@cs.ucla.edu> Exit with nonzero status if a close fails on an archive. Problem (and initial trivial fix) * src/buffer.c (close_archive, new_volume): close_error, not close_warn.
(check_compressed_archive): Do not bail out if the file is too short, set boolean flag, passed as an argument instead. This fixes a bug introduced on 2007-08-24. See also tests/shortupd.at.
(magic): Fix lzma option
(checkpoint, do_checkpoint): Remove. (_flush_write, simple_flush_read, _gnu_flush_read): Use checkpoint_run.
(magic): Add an entry for new lzma format. Proposed by Lasse Collin
Don't include <getline.h>. No longer needed.
(check_compressed_archive): Detect files smaller than 512 bytes.
Relicense under GPLv3
(buffer_write_global_xheader): New function Update to use new xheader calls.
(_open_archive): Make sure stdlis is set to stderr when we are writing archive to stdout (unless --index-file is used). Bug introduced on 2006-07-06.
(new_volume): Initialize current_block
(_open_archive): Remove stdlis initialization
(print_total_stats): Add default case
(total_blocks_deleted): New variable (set_start_time): Set volume_start_time and last_stat_time as well (set_volume_start_time): New function (compute_duration): Do not call set_start_time, update last_stat_time instead. Use it in calculation instead of start_time, which is now set only once, upon startup. (print_total_written): Removed. (print_total_stats): New function for printing byte/speed statistics. (_open_archive): Detect attempts to update compressed archives. (_gnu_flush_write): Always update prev_written. (open_archive): Call set_volume_start_time.
Implement more flexible checkpoint style
(change_tape_menu): Fix typo (uninitialized variable) introduced yesterday.
(change_tape_menu): Break the loop after obtaining new archive name. Check for empty input line
(read_header0): Use read_header_primitive to avoid clubbering current_tar_info. All callers updated.
(try_new_volume): Attempt to continue if the name is apparently truncated in a GNU format volume.
(_open_archive): Remove unnecessary argument to check_compressed_archive.
* src/buffer.c (record_buffer_aligned): New var. (init_buffer): Use it to ensure that the buffer is aligned. This doesn't result in any measurable performance improvement on my host (Debian GNU/Linux 3.1 stable, with default block size), but I assume it does help on some hosts.
Avoid installation glitches on Solaris 8 with Sun C 5.4. * lib/.cvsignore: Add system-ioctl.h. * lib/Makefile.tmpl (noinst_HEADERS): Add system-ioctl.h. * src/buffer.c: Include system-ioctl.h. * src/compare.c: Likewise. * src/delete.c: Likewise. * src/system.c: Include <getline.h>, <setenv.h>. * src/tar.c: Include <getline.h>.
(new_volume): Prompt the user for archive name if unable to open next archive.
(add_chunk_header): Free st.orig_file_name after calling finish_header()
* gnulib.modules: Add closeout, exitfial. * lib/.cvsignore: Add __fpending.c, __fpending.h, closeout.c, closeout.h. * src/buffer.c: Incluse closeout.h. (_open_archive): Use freopen rather than fopen, so that stdlis is always either stdout or stderr. Use close_stdout_set_file_name to report its name. * src/tar.c: Include closeout.h and exitfail.h. (parse_opt, usage): Call close_stdout as appropriate, to check for write errors. (decode_options): Exit with status TAREXIT_FAILURE, not 1. (main): Set exit_failure, to exit with proper status on memory allocation failure and the like. Use close_stdout rather than rolling our own test.
(open_archive): Add default case to shut up gcc.
(new_volume): Update invocation (change_tape_menu): New function. Disable '!' command if given --restrict option.
(new_volume): Use sys_exec_info_script() instead of system().
(flush_write,flush_read): Change data type. (flush_archive): Compute actual buffer fill level before calling low level function. (close_archive): Call flush_archive again if the first call resulted in partially filled buffer. (try_new_volume): Rewritten handling of initial headers. (add_chunk_header): New function. Write an additional header before the continuation chunk. The purpose of the header is to allow third-party tars to extract the member. (simple_flush_write): Take an argument. (_gnu_flush_write): Correctly handle partially filled buffers.
(try_new_volume): Bugfix. Always check continued_file_name. If it is absent, the volume is out of sync. (add_multi_volume_header): Create GNU.volume.filename keyword in the extended header.
Rewritten in a more modular fashion to provide GNU extensions (multi-volume archives and archive labels) in pax format. (volume_label,continued_file_name,continued_file_size) (continued_file_offset): New globals. (save_name,save_totsize,save_sizeleft): Make static (mv_begin,mv_end,mv_total_size,mv_size_left): New functions (open_archive,flush_write,flush_read): Rewritten
Carefully crafted invalid headers can cause buffer overrun. Invalid header fields go undiagnosed. Some valid time strings are ignored. * NEWS: Better support for full-resolution time stamps. The -v option now prints time stamps only to 1-minute resolution. * gnulib.modules: Add utimens. * lib/.cvsignore: Add imaxtostr.c, inttostr.c, inttostr.h, offtostr.c, umaxtostr.c, utimens.c, utimens.h. Remove paxconvert.c. * lib/Makefile.tmpl (libtar_a_SOURCES): Remove paxconvert.c. * lib/paxconvert.c: Remove; superseded by umaxtostr.c. * po/POTFILES.in: Remove lib/paxconvert.c. Add lib/xalloc-die.c, lib/obstack.c. * src/buffer.c (set_start_time, compute_duration, start_time): Use gettime rather than rolling our own code. * src/common.h (OLDGNU_NAME_FIELD_SIZE, MAXOCTAL11, MAXOCTAL7): Remove. (newer_ctime_option): Remove. (timespec_lt): New function. (OLDER_STAT_TIME): Use it. (string_to_chars): First arg is char const *, not char *. (tartime): Time arg is now struct timespec. New bool arg. All callers changed. (code_ns_fraction): New decl. (sys_stat_nanoseconds): Remove decl. (get_stat_atime, get_stat_ctime, get_stat_mtime): New functions. (set_stat_atime, set_stat_ctime, set_stat_mtime): New functions. * src/compare.c: Include utimens.h rather than rolling our own. (diff_dir, diff_file, diff_link, diff_symlink, diff_special): Prototype. (diff_dumpdir, diff_multivol): Prototype. (diff_file): Support higher-resolution time stamps. * src/create.c: Include utimens.h rather than rolling our own. (MAX_OCTAL_VAL): New macro. (tar_copy_str, string_to_chars): Don't bother to zero-fill; the destination is already zeroed. (string_to_chars): First arg is char const *. (start_private_header): Use MINOR_TO_CHARS, not MAJOR_TO_CHARS, for minor device number. (write_header_name, dump_hard_link, dump_file0): Simplify test for old GNU format. (start_header): Put in placeholders for uid, etc., even when using extended headers, for benefit of older "tar" implementations. Don't assume uintmax_t is wider than 32 bits. Output extended header for mtime if needed. (dump_regular_finish, dump_file0): Support extended time stamp resolution. * src/extract.c: Include utimens.h rather than rolling our own. (check_time): Support extended time stamp resolution. * src/list.c: Include <inttostr.h>. (tartime): Use umaxtostr rather than stringify_uintmax_t_backwards. * src/xheader.c: Include <inttostr.h>. Do not include <xstrtol.h>. (strtoimax) [!HAVE_DECL_STRTOIMAX && !defined strtoimax]: New decl. (strtoumax) [!HAVE_DECL_STRTOUMAX && !defined strtoumax]: New decl. (BILLION, LOG10_BILLION): New constants. (to_decimal): Remove; superseded by inttostr. All callers changed to use umaxtostr. (xheader_format_name): Don't assume pids and uintmax_t values fit in 63 bytes (!) when printed. (decode_record): Don't bother to check for ERANGE; an out of range value must be treater than len_max anyway. If the length is out of range, output it in the diagnostic. (format_uintmax): Remove; all callers changed to use umaxtostr. (xheader_print): Don't assume sizes can be printed in 99 bytes (!). (out_of_range_header): New function. (decode_time): Use it. (code_time): Accept struct timespec, not time_t and unsigned long. All callers changed. Size sbuf properly, and remove unnecessary check. Don't assume time stamps can fit in 199 bytes. Handle negative time stamps. Handle fractional time stamps more consistently. Don't output unnecessary trailing zeros. (decode_time): Yield struct timespec, not time_t and unsigned long. All callers changed. Handle negative time stamps. Truncate towards minus infinity consistently. Improve overflow checks, and output a better diagnostic on overflow. (code_num): Don't assume uintmax_t can be printed in 99 bytes (!). (decode_num): New function, for better diagnostics. (atime_coder, atime_decoder, gid_decoder, ctime_coder): (ctime_decoder, mtime_coder, mtime_decoder, size_decoder): (uid_decoder, sparse_size_decoder, sparse_numblocks_decoder): (sparse_offset_decoder, sparse_numbytes_decoder): Use decode_num, etc., instead of xstrtoumax, etc. * 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.
Update invocations of safer_name_suffix()
Update FSF postal mail address.
* 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.
(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.
(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.
Do not use 8-bit chars in comments
Removed unused variables.
(short_read): Use ngettext() (new_volume): use quote().
(open_compressed_archive): Do not attemt to determine compression type if handling multi-volume archive
Minor improvement: reset hit_eof in open_compressed_archive
(check_compressed_archive): Check remote archves as well
Bugfix. Changes introduced 2004-11-26 broke extraction from stdin.
(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 introduced 2004-05-11,2004-03-22.
Started merging with cpio into paxutils.
When computing write rate do not take into account the time needed to verify the archive(s). The bug reported by John L. Males <jlmales@yahoo.com> (set_start_time,compute_duration): New functions. (print_total_written): Use the result of compute_duration(). (close_archive): Call compute_duration.
(flush_write): Limit filenames of the members that straddle multivolume archive boundary to 100 characters.
(record_buffer): New var. (open_archive): Don't use valloc; on older or buggy hosts, you can't free the result. Use page_aligned_alloc instead. Record the pointer to be freed into record_buffer. (close_archive): Free record_buffer.
(seek_archive): New function
(open_archive): Removed assignment to read_full_records_option.
Merge recent gnulib changes, and remove some lint.
(open_archive): Clear read_full_records_option if reading from a pipe. (short_read): Display warning about the deduced record size if version > 1
(flush_read): Bugfix: the condition at line 714 included || (status > 0 && !read_full_records_option) which is grossly wrong, since even if new_volume() below succeeds, the subsequent call to rmtread will overwrite the chunk of data already read in the buffer and thus spoil everything.
(new_volume,check_label_pattern): Changed return type. (time_to_start_writing): Changed data type (file_to_switch_to): Removed. Variable never assigned to. (open_archive) Moved option compatibility checks to tar.c Other minor changes.
(short_read): Issue a warning on short reads.
Minor changes
Moved system dependencies to system.c
Use ngettext where appropriate.
Use current_stat_info
(flush_read): Fixed behavior on short reads right after opening the new archive (multiv01.sh test). (new_volume): Special handling for "-".
(print_total_written): Adjust to new human.h interface. (child_open_for_compress): Do not increase size to BLOCKSIZE. (open_archive): Open index file name. Strip trailng slahes from file names. (flush_write): Set size to 0 if not saving names. (flush_write, flush_read): Use safer_name_suffix rather than inline code.
(flush_read): Don't diagnose partial blocks before end of file; just ignore them silently.
(write_archive_buffer, close_archive): If an archive is a socket, treat it like a FIFO.
(records_read, records_written): New vars. (write_archive_to_stdout): Now bool, not int. (open_archive, flush_write, flush_read): Keep records_read and records_written up to date.
(new_volume): Stop if the script exits with an error.
(<time.h>): Do not include; system.h now does this. (time): Remove decl; likewise. (child_open_for_uncompress): Use new full_write semantics. (flush_write): Use ISSLASH instead of testing for '/'. (flush_read): Likewise.
(flush_read): If read_full_records_option, try to fill the input buffer, as --delete -f - needs this.
(check_label_pattern): Make sure header name is a string before passing it to fnmatch. (init_volume_number): Check for global_volno overflow. (new_volume): Check for global_volno overflow.
(_GNU_SOURCE): Remove; autoconf now does this. (child_open_for_compress, child_open_for_uncompress, close_archive): Propagate any failure of the compression process back to "tar". (open_archive, flush_write, flush_read, close_archive): Do not allocate an array of size PATH_MAX, as PATH_MAX might be (size_t) -1. Instead, allocate an array with the size that's needed. (open_archive): Don't bother checking S_ISCHR of /dev/null. (backspace_output): Don't try to backspace past start of archive. (close_archive): Remove special case for DELETE_SUBCOMMAND.
Update copyright year.
(archive_write_error): Add noreturn attribute to decl. (xclose): Use close_error. (xdup2): Regularize messages with rest of tar. (archive_write_error): Use write_fatal_details. (flush_read): Don't read past EOF. (flush_archive, close_archive, new_volume): Use close_warn.
(xclose, xdup2, child_open_for_compress, child_open_for_uncompress, archive_write_error, archive_read_error, flush_archive, close_archive, init_volume_number, new_volume): Don't assume that gettext preserves errno. (xdup2): Don't report errno if dup returns an unexpected nonnegative value. (open_archive): Reject multivolume verify attempts a bit earlier. Rename local variable `access', in case it's defined by system header. (open_archive, backspace_output): Use `Cannot' uniformly, instead of `Could not' sometimes and `Cannot' others. (open_archive, flush_read, flush_archive, close_archive, new_volume): Quote arbitrary strings in diagnostics. (read_error): Set archive to STDOUT_FILENO temporarily when writing archive buffer. (init_volume_number): Check for input and output errors in volno_file. (new_volume): Use new fatal_exit function to exit, and new xfork function to fork.
Remove bogus errno FIXMEs.
(write_error): Read error is an error, not just a warning.
(print_total_written): Use a format compatible with Amanda 2.4.1p1.
(<human.h>): Include. (print_total_written): Also print human-readable byte count, and bytes/s. (open_archive, flush_write): Use start_time, not current time. (flush_read): Report about garbage bytes ignored at end of archive, but act on non-garbage bytes (instead of ignoring them). (new_volume): Use WARN for warnings.
Lint cleanup. (open_archive): Use American spelling in diagnostic.
Comment fix.
indenting fixes.
(time): Don't declare if defined. (child_open_for_compress): Undo previous change. (close_archive): Use waitpid, POSIX-style, instead of old BSD style. (new_volume): Likewise.
(_GNU_SOURCE): Define. (<fnmatch.h>): Include unconditionally. (child_open_for_compress): Dup after closing, to avoid possible file descriptor exhaustion. (flush_write): Use FILESYSTEM_PREFIX_LEN instead of MSDOS ifdef. (flush_read): Likewise.
(new_volume): Invoke apply_delayed_set_stat before exiting.
(total_written): Remove; replaced with prev_written + bytes_written. (prev_written): New var. (init_total_written): New function. (print_total_written): Use TARLONG_FORMAT instead of print_tarlong.
(is_regular_file): Don't succeed on files that we can't access due to permissions problems. (open_archive): Fix wording on fatal error message. Don't bother to stat /dev/null if the archive is not a character special device.
Rename full_read to safe_read.
Add braces to pacify gcc -Wall.
(child_open_for_compress): Use portable modes. (child_open_for_uncompress, open_archive): Likewise. (backspace_output): Use portable whence values. (close_archive): Likewise. Remove ending_file_option.
(new_volume): Don't put ^G in message to be internationalized; \a doesn't work with msgfmt. Fix copyright notice.
Handle EINTR correctly; use STDIN_FILENO instead of 0, etc.
(write_archive_buffer): New function. (child_open_for_compress, flush_write, flush_read): Use it to write buffers. (open_archive): Report error if fstat of archive fails. Improve efficiency of check for /dev/null. Also, fix some corner cases with remote archives and /dev/null checking. (close_archive): Test for input fifo only if not remote. Truncate output archive only if it's not remote.
(backspace_output, close_archive): Cast rmtlseek position arg to off_t, for benefit of K&R compilers with long long.
Implement -E (ending-file) option.
(record_start_block, save_totsize, save_sizeleft, real_s_totsize, real_s_sizeleft, current_block_ordinal): Now off_t. (write_error): Arg is now ssize_t. (child_pid): Now pid_t. (available_space_after): Now size_t. (child_open_for_compress, child_open_for_uncompress, flush_write, open_archive, flush_write, write_error, flush_read, close_archive): Use pid_t, ssize_t, size_t when appropriate. Remove now-useless casts. Use unsigned long to print *_t types, except use STRINGIFY_BIGINT for off_t.
GNU tar 1.12
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
Initial revision
This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, select a symbolic revision name using the selection box, or choose 'Use Text Field' and enter a numeric revision.
savannah-hackers-public@gnu.org | ViewVC Help |
Powered by ViewVC 1.1.26 |