From 656aac21868b525322040ceccd82328aff7ff97c Mon Sep 17 00:00:00 2001 From: MSVSphere Packaging Team Date: Mon, 7 Oct 2024 21:19:49 +0300 Subject: [PATCH] import tar-1.34-7.el9 --- .gitignore | 1 + .tar.metadata | 1 + SOURCES/tar-1.28-atime-rofs.patch | 34 + .../tar-1.28-document-exclude-mistakes.patch | 97 ++ SOURCES/tar-1.28-loneZeroWarning.patch | 43 + SOURCES/tar-1.28-vfatTruncate.patch | 52 + SOURCES/tar-1.29-wildcards.patch | 107 ++ SOURCES/tar-1.30-disk-read-error.patch | 51 + SOURCES/tar-1.30-padding-zeros.patch | 175 ++++ SOURCES/tar-1.33-fix-capabilities-test.patch | 34 + SOURCES/tar-1.34-CVE-2022-48303.patch | 30 + ...ile-changed-as-we-read-it-less-often.patch | 164 ++++ SOURCES/tar-1.34.tar.xz.sig | 7 + SPECS/tar.spec | 911 ++++++++++++++++++ 14 files changed, 1707 insertions(+) create mode 100644 .gitignore create mode 100644 .tar.metadata create mode 100644 SOURCES/tar-1.28-atime-rofs.patch create mode 100644 SOURCES/tar-1.28-document-exclude-mistakes.patch create mode 100644 SOURCES/tar-1.28-loneZeroWarning.patch create mode 100644 SOURCES/tar-1.28-vfatTruncate.patch create mode 100644 SOURCES/tar-1.29-wildcards.patch create mode 100644 SOURCES/tar-1.30-disk-read-error.patch create mode 100644 SOURCES/tar-1.30-padding-zeros.patch create mode 100644 SOURCES/tar-1.33-fix-capabilities-test.patch create mode 100644 SOURCES/tar-1.34-CVE-2022-48303.patch create mode 100644 SOURCES/tar-1.34-Warn-file-changed-as-we-read-it-less-often.patch create mode 100644 SOURCES/tar-1.34.tar.xz.sig create mode 100644 SPECS/tar.spec diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2a66123 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/tar-1.34.tar.xz diff --git a/.tar.metadata b/.tar.metadata new file mode 100644 index 0000000..4dfe0a9 --- /dev/null +++ b/.tar.metadata @@ -0,0 +1 @@ +bb9d853e10d0753fe9063914401a7e164d51a0f0 SOURCES/tar-1.34.tar.xz diff --git a/SOURCES/tar-1.28-atime-rofs.patch b/SOURCES/tar-1.28-atime-rofs.patch new file mode 100644 index 0000000..f32114a --- /dev/null +++ b/SOURCES/tar-1.28-atime-rofs.patch @@ -0,0 +1,34 @@ +From 71769b9ea3c12b7fbb39fee2e9f4a4c1c36c0d0b Mon Sep 17 00:00:00 2001 +From: rpm-build +Date: Mon, 28 Jul 2014 08:13:31 +0200 +Subject: [PATCH 4/9] utime & read-only FS + +Ignore errors from setting utime() for source file on read-only +file-system. + +Resolves: #500742 + +Upstream bugreport (still downstream): +http://lists.gnu.org/archive/html/bug-tar/2009-06/msg00016.html + +--- + src/create.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/src/create.c b/src/create.c +index e2f4ede..f644f23 100644 +--- a/src/create.c ++++ b/src/create.c +@@ -1824,7 +1824,8 @@ dump_file0 (struct tar_stat_info *st, char const *name, char const *p) + } + else if (atime_preserve_option == replace_atime_preserve + && fd && (is_dir || original_size != 0) +- && set_file_atime (fd, parentfd, name, st->atime) != 0) ++ && set_file_atime (fd, parentfd, name, st->atime) != 0 ++ && errno != EROFS ) + utime_error (p); + } + +-- +1.9.3 + diff --git a/SOURCES/tar-1.28-document-exclude-mistakes.patch b/SOURCES/tar-1.28-document-exclude-mistakes.patch new file mode 100644 index 0000000..73f4ed3 --- /dev/null +++ b/SOURCES/tar-1.28-document-exclude-mistakes.patch @@ -0,0 +1,97 @@ +From 18112ded916cf62b3bd3c0ffb9530e4ade3d2209 Mon Sep 17 00:00:00 2001 +From: rpm-build +Date: Mon, 28 Jul 2014 08:16:33 +0200 +Subject: [PATCH 7/9] Document exclude mistakes with + +.. usually with --no-wildcards-match-slash & --anchored options. + +Upstream bugreport (still downstream): +http://www.mail-archive.com/bug-tar@gnu.org/msg04488.html + +Related: #903666 + +--- + doc/tar.texi | 67 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 67 insertions(+) + +diff --git a/doc/tar.texi b/doc/tar.texi +index a000f3f..2695d22 100644 +--- a/doc/tar.texi ++++ b/doc/tar.texi +@@ -8051,6 +8051,73 @@ The following table summarizes pattern-matching default values: + @item Exclusion @tab @option{--wildcards --no-anchored --wildcards-match-slash} + @end multitable + ++@subsubsection Wildcard matching confusion ++Using of @option{--[no-]anchored} and @option{--[no-]wildcards-match-slash} ++was proven to make confusion. The reasons for this are probably different ++default setting for inclusion and exclusion patterns (in general: you shouldn't ++rely on defaults if possible) and maybe also because when using any of these two ++options, the position on command line matters (these options should be placed ++prior to the member name on command line). ++ ++@noindent ++Consider following directory structure: ++ ++@smallexample ++$ find path/ | sort ++path/ ++path/file1 ++path/file2 ++path/subpath ++path/subpath/file1 ++path/subpath/file2 ++path/subpath2 ++path/subpath2/file1 ++path/subpath2/file2 ++@end smallexample ++ ++@noindent ++To archive full directory @samp{path} except all files named @samp{file1} may be ++reached by any of the two following commands: ++ ++@smallexample ++$ tar -cf a.tar --no-wildcards-match-slash --no-anchored path \ ++ --exclude='*/file1' ++$ tar -cf a.tar --wildcards-match-slash path --exclude='*/file1' ++@end smallexample ++ ++@noindent ++Note that the @option{--wildcards-match-slash} and @option{--no-anchored} may be ++omitted as it is default for @option{--exclude}. Anyway, we usually want just ++concrete file (or rather subset of files with the same name). Assume we want ++exclude only files named @samp{file1} from the first subdirectory level. ++Following command obviously does not work (it still excludes all files having ++@samp{file1} name): ++ ++@smallexample ++$ tar -cf a.tar --no-wildcards-match-slash path \ ++ --exclude='*/file1' | sort ++@end smallexample ++ ++@noindent ++This is because the @option{--no-anchored} is set by default for exclusion. ++What you need to fix is to put @option{--anchored} before pathname: ++ ++@smallexample ++$ tar -cvf a.tar --no-wildcards-match-slash --anchored path \ ++ --exclude='*/file1' | sort ++path/ ++path/file2 ++path/subpath1/ ++path/subpath1/file1 ++path/subpath1/file2 ++path/subpath2/ ++path/subpath2/file1 ++path/subpath2/file2 ++@end smallexample ++ ++@noindent ++Similarly you can exclude second level by specifying @samp{*/*/file1}. ++ + @node quoting styles + @section Quoting Member Names + +-- +1.9.3 + diff --git a/SOURCES/tar-1.28-loneZeroWarning.patch b/SOURCES/tar-1.28-loneZeroWarning.patch new file mode 100644 index 0000000..c142ea3 --- /dev/null +++ b/SOURCES/tar-1.28-loneZeroWarning.patch @@ -0,0 +1,43 @@ +From 60d08c6d82f0c33a6704c79afd416902eb8c663f Mon Sep 17 00:00:00 2001 +From: rpm-build +Date: Mon, 28 Jul 2014 08:08:50 +0200 +Subject: [PATCH 1/9] Stop issuing lone zero block warnings (downstram) + +Resolves: #135601 + +--- + src/list.c | 11 +++++++++++ + 1 file changed, 11 insertions(+) + +diff --git a/src/list.c b/src/list.c +index b4277e0..0c7a740 100644 +--- a/src/list.c ++++ b/src/list.c +@@ -240,6 +240,14 @@ read_and (void (*do_something) (void)) + + if (!ignore_zeros_option) + { ++ /* ++ * According to POSIX tar specs, this is wrong, but on the web ++ * there are some tar specs that can trigger this, and some tar ++ * implementations create tars according to that spec. For now, ++ * let's not be pedantic about issuing the warning. ++ */ ++#if 0 ++ + char buf[UINTMAX_STRSIZE_BOUND]; + + status = read_header (¤t_header, ¤t_stat_info, +@@ -249,6 +257,9 @@ read_and (void (*do_something) (void)) + WARNOPT (WARN_ALONE_ZERO_BLOCK, + (0, 0, _("A lone zero block at %s"), + STRINGIFY_BIGINT (current_block_ordinal (), buf))); ++#endif ++ status = read_header (¤t_header, ¤t_stat_info, ++ read_header_auto); + break; + } + status = prev_status; +-- +1.9.3 + diff --git a/SOURCES/tar-1.28-vfatTruncate.patch b/SOURCES/tar-1.28-vfatTruncate.patch new file mode 100644 index 0000000..734fbc4 --- /dev/null +++ b/SOURCES/tar-1.28-vfatTruncate.patch @@ -0,0 +1,52 @@ +From 90f446f9b04ab820a99b9408e68c01dc6b57056c Mon Sep 17 00:00:00 2001 +From: rpm-build +Date: Mon, 28 Jul 2014 08:10:10 +0200 +Subject: [PATCH 2/9] vfat-like FS & sparse (still downstream) + +Fix extracting sparse files to a file system like vfat, when +ftruncate may fail to grow the size of a file. Still downstram, +(do we need this now? ftruncate & vfat works is now OK). + +Resolves: #179507 + +Upstream bugreport: +http://lists.gnu.org/archive/html/bug-tar/2006-02/msg00000.html + +--- + src/system.c | 19 ++++++++++++++++++- + 1 file changed, 18 insertions(+), 1 deletion(-) + +diff --git a/src/system.c b/src/system.c +index 9414233..37e9a3e 100644 +--- a/src/system.c ++++ b/src/system.c +@@ -243,8 +243,25 @@ sys_compare_links (struct stat *link_data, struct stat *stat_data) + int + sys_truncate (int fd) + { ++ struct stat st; + off_t pos = lseek (fd, (off_t) 0, SEEK_CUR); +- return pos < 0 ? -1 : ftruncate (fd, pos); ++ ++ if ( pos < 0) ++ return -1; ++ ++ if ( ftruncate(fd, pos) && errno == EPERM ) { ++ /* wrapper around ftruncate: ++ * ftruncate may fail to grow the size of a file with some OS and filesystem ++ * combinations. Linux and vfat/fat is one example. If this is the case do ++ * a write to grow the file to the desired length. ++ */ ++ if( (fstat( fd, &st ) == -1) || ++ (st.st_size >= pos) || ++ (lseek( fd, pos - 1, SEEK_SET) == (off_t)-1) || ++ (write( fd, "\0", 1) == -1) ) ++ return -1; ++ } ++ return 0; + } + + /* Return nonzero if NAME is the name of a regular file, or if the file +-- +1.9.3 + diff --git a/SOURCES/tar-1.29-wildcards.patch b/SOURCES/tar-1.29-wildcards.patch new file mode 100644 index 0000000..40f9425 --- /dev/null +++ b/SOURCES/tar-1.29-wildcards.patch @@ -0,0 +1,107 @@ +From ae0730a98f7269a7bf7adb6047aa421939b290b7 Mon Sep 17 00:00:00 2001 +From: rpm-build +Date: Mon, 28 Jul 2014 08:12:14 +0200 +Subject: [PATCH] wildcard defaults (downstram; compatibility) + +Change inclusion defaults of tar to "wildcards --anchored +--wildcards-match-slash" for compatibility reasons. + +Resolves: #206841 +--- + doc/tar.texi | 5 ++++- + src/names.c | 15 +++++---------- + tests/exclude01.at | 1 + + 3 files changed, 10 insertions(+), 11 deletions(-) + +diff --git a/doc/tar.texi b/doc/tar.texi +index a8969e0..0185157 100644 +--- a/doc/tar.texi ++++ b/doc/tar.texi +@@ -8439,7 +8439,7 @@ The following table summarizes pattern-matching default values: + + @multitable @columnfractions .3 .7 + @headitem Members @tab Default settings +-@item Inclusion @tab @option{--no-wildcards --anchored --no-wildcards-match-slash} ++@item Inclusion @tab @option{--wildcards --anchored --wildcards-match-slash} + @item Exclusion @tab @option{--wildcards --no-anchored --wildcards-match-slash} + @end multitable + +@@ -12915,6 +12915,9 @@ version of this document is available at + @table @asis + @item Use of globbing patterns when listing and extracting. + ++Note: Following is true for original unpatched GNU tar. ++For compatibility reasons, the old behavior was preserved. ++ + Previous versions of GNU tar assumed shell-style globbing when + extracting from or listing an archive. For example: + +diff --git a/src/names.c b/src/names.c +index 037b869..d96ad71 100644 +--- a/src/names.c ++++ b/src/names.c +@@ -146,7 +146,7 @@ static struct argp_option names_options[] = { + {"no-wildcards", NO_WILDCARDS_OPTION, 0, 0, + N_("verbatim string matching"), GRID_MATCH }, + {"wildcards-match-slash", WILDCARDS_MATCH_SLASH_OPTION, 0, 0, +- N_("wildcards match '/' (default for exclusion)"), GRID_MATCH }, ++ N_("wildcards match '/' (default)"), GRID_MATCH }, + {"no-wildcards-match-slash", NO_WILDCARDS_MATCH_SLASH_OPTION, 0, 0, + N_("wildcards do not match '/'"), GRID_MATCH }, + +@@ -195,8 +195,7 @@ names_parse_opt (int key, char *arg, struct argp_state *state) + /* Wildcard matching settings */ + enum wildcards + { +- default_wildcards, /* For exclusion == enable_wildcards, +- for inclusion == disable_wildcards */ ++ default_wildcards, /* enable_wildcards */ + disable_wildcards, + enable_wildcards + }; +@@ -214,7 +213,7 @@ static int include_anchored = EXCLUDE_ANCHORED; + | recursion_option) + + #define INCLUDE_OPTIONS \ +- (((wildcards == enable_wildcards) ? EXCLUDE_WILDCARDS : 0) \ ++ (((wildcards != disable_wildcards) ? EXCLUDE_WILDCARDS : 0) \ + | include_anchored \ + | matching_flags \ + | recursion_option) +@@ -1234,8 +1233,7 @@ regex_usage_warning (const char *name) + + /* Warn about implicit use of the wildcards in command line arguments. + (Default for tar prior to 1.15.91, but changed afterwards) */ +- if (wildcards == default_wildcards +- && fnmatch_pattern_has_wildcards (name, 0)) ++ if (0 && fnmatch_pattern_has_wildcards (name, 0)) + { + warned_once = 1; + WARN ((0, 0, +@@ -1618,10 +1616,7 @@ collect_and_sort_names (void) + + if (name->found_count || name->directory) + continue; +- if (name->matching_flags & EXCLUDE_WILDCARDS) +- /* NOTE: EXCLUDE_ANCHORED is not relevant here */ +- /* FIXME: just skip regexps for now */ +- continue; ++ + chdir_do (name->change_dir); + + if (name->name[0] == 0) +diff --git a/tests/exclude01.at b/tests/exclude01.at +index c3cd10b..c590047 100644 +--- a/tests/exclude01.at ++++ b/tests/exclude01.at +@@ -61,6 +61,7 @@ testdir/dir2/file2 + testdir/dir3/ + NEXT + testdir/dir1/* ++testdir/dir1/file1 + NEXT + testdir/dir1/* + NEXT +-- +2.5.5 + diff --git a/SOURCES/tar-1.30-disk-read-error.patch b/SOURCES/tar-1.30-disk-read-error.patch new file mode 100644 index 0000000..d2ad3f6 --- /dev/null +++ b/SOURCES/tar-1.30-disk-read-error.patch @@ -0,0 +1,51 @@ +From: Ondrej Dubaj +Date: Tue, 13 Apr 2021 11:47:32 +0200 +Subject: [PATCH] do not report read disk error as file shrank + +diff --git a/src/create.c b/src/create.c +index 181f7d9..7be10a9 100644 +--- a/src/create.c ++++ b/src/create.c +@@ -1097,7 +1097,7 @@ dump_regular_file (int fd, struct tar_stat_info *st) + size_left -= count; + set_next_block_after (blk + (bufsize - 1) / BLOCKSIZE); + +- if (count != bufsize) ++ if (count == 0) + { + char buf[UINTMAX_STRSIZE_BOUND]; + memset (blk->buffer + count, 0, bufsize - count); +diff -rup tar-1.34/tests/Makefile.am.old tar-1.34/tests/Makefile.am +--- tar-1.34/tests/Makefile.am.old 2022-06-27 09:21:40.881574517 +0000 ++++ tar-1.34/tests/Makefile.am 2022-06-27 09:23:31.444574517 +0000 +@@ -247,7 +247,6 @@ TESTSUITE_AT = \ + sptrdiff01.at\ + time01.at\ + time02.at\ +- truncate.at\ + update.at\ + update01.at\ + update02.at\ +diff -rup tar-1.34/tests/Makefile.in.old tar-1.34/tests/Makefile.in +--- tar-1.34/tests/Makefile.in.old 2022-06-27 09:21:48.626574517 +0000 ++++ tar-1.34/tests/Makefile.in 2022-06-27 09:22:03.127574517 +0000 +@@ -1622,7 +1622,6 @@ TESTSUITE_AT = \ + sptrdiff01.at\ + time01.at\ + time02.at\ +- truncate.at\ + update.at\ + update01.at\ + update02.at\ +diff --git a/tests/testsuite.at b/tests/testsuite.at +index 2a83757..52f73a6 100644 +--- a/tests/testsuite.at ++++ b/tests/testsuite.at +@@ -424,7 +424,6 @@ m4_include([comprec.at]) + m4_include([shortfile.at]) + m4_include([shortupd.at]) + +-m4_include([truncate.at]) + m4_include([grow.at]) + m4_include([sigpipe.at]) + m4_include([comperr.at]) diff --git a/SOURCES/tar-1.30-padding-zeros.patch b/SOURCES/tar-1.30-padding-zeros.patch new file mode 100644 index 0000000..1a00c84 --- /dev/null +++ b/SOURCES/tar-1.30-padding-zeros.patch @@ -0,0 +1,175 @@ +From 910d9ff829bbdfaf1455cdb2b1813507bcb855ec Mon Sep 17 00:00:00 2001 +From: Ondrej Dubaj +Date: Tue, 13 Apr 2021 11:47:32 +0200 +Subject: [PATCH] add padding message, when read error occurs and tar is + padding with zeros + +--- + lib/paxerror.c | 44 ++++++++++++++++++++++++++++++-------------- + lib/paxlib.h | 4 ++-- + src/common.h | 2 +- + src/create.c | 2 +- + src/misc.c | 6 +++--- + src/sparse.c | 6 +++--- + 6 files changed, 40 insertions(+), 24 deletions(-) + +diff --git a/lib/paxerror.c b/lib/paxerror.c +index 134cef3..929a741 100644 +--- a/lib/paxerror.c ++++ b/lib/paxerror.c +@@ -173,29 +173,45 @@ read_error (char const *name) + } + + void +-read_error_details (char const *name, off_t offset, size_t size) ++read_error_details (char const *name, off_t offset, size_t size, bool padding) + { + char buf[UINTMAX_STRSIZE_BOUND]; + int e = errno; +- ERROR ((0, e, +- ngettext ("%s: Read error at byte %s, while reading %lu byte", +- "%s: Read error at byte %s, while reading %lu bytes", +- size), +- quotearg_colon (name), STRINGIFY_BIGINT (offset, buf), +- (unsigned long) size)); ++ if (padding) ++ ERROR ((0, e, ++ ngettext ("%s: Read error at byte %s, while reading %lu byte; padding with zeros", ++ "%s: Read error at byte %s, while reading %lu bytes; padding with zeros", ++ size), ++ quotearg_colon (name), STRINGIFY_BIGINT (offset, buf), ++ (unsigned long) size)); ++ else ++ ERROR ((0, e, ++ ngettext ("%s: Read error at byte %s, while reading %lu byte", ++ "%s: Read error at byte %s, while reading %lu bytes", ++ size), ++ quotearg_colon (name), STRINGIFY_BIGINT (offset, buf), ++ (unsigned long) size)); + } + + void +-read_warn_details (char const *name, off_t offset, size_t size) ++read_warn_details (char const *name, off_t offset, size_t size, bool padding) + { + char buf[UINTMAX_STRSIZE_BOUND]; + int e = errno; +- WARN ((0, e, +- ngettext ("%s: Warning: Read error at byte %s, while reading %lu byte", +- "%s: Warning: Read error at byte %s, while reading %lu bytes", +- size), +- quotearg_colon (name), STRINGIFY_BIGINT (offset, buf), +- (unsigned long) size)); ++ if (padding) ++ WARN ((0, e, ++ ngettext ("%s: Warning: Read error at byte %s, while reading %lu byte; padding with zeros", ++ "%s: Warning: Read error at byte %s, while reading %lu bytes; padding with zeros", ++ size), ++ quotearg_colon (name), STRINGIFY_BIGINT (offset, buf), ++ (unsigned long) size)); ++ else ++ WARN ((0, e, ++ ngettext ("%s: Warning: Read error at byte %s, while reading %lu byte", ++ "%s: Warning: Read error at byte %s, while reading %lu bytes", ++ size), ++ quotearg_colon (name), STRINGIFY_BIGINT (offset, buf), ++ (unsigned long) size)); + } + + void +diff --git a/lib/paxlib.h b/lib/paxlib.h +index d4251d1..ccf826b 100644 +--- a/lib/paxlib.h ++++ b/lib/paxlib.h +@@ -94,10 +94,10 @@ void open_error (char const *); + void open_fatal (char const *) __attribute__ ((noreturn)); + void open_warn (char const *); + void read_error (char const *); +-void read_error_details (char const *, off_t, size_t); ++void read_error_details (char const *, off_t, size_t, bool); + void read_fatal (char const *) __attribute__ ((noreturn)); + void read_fatal_details (char const *, off_t, size_t) __attribute__ ((noreturn)); +-void read_warn_details (char const *, off_t, size_t); ++void read_warn_details (char const *, off_t, size_t, bool); + void readlink_error (char const *); + void readlink_warn (char const *); + void rmdir_error (char const *); +diff --git a/src/common.h b/src/common.h +index bbe167e..34a30ec 100644 +--- a/src/common.h ++++ b/src/common.h +@@ -713,7 +713,7 @@ int chdir_count (void); + + void close_diag (char const *name); + void open_diag (char const *name); +-void read_diag_details (char const *name, off_t offset, size_t size); ++void read_diag_details (char const *name, off_t offset, size_t size, bool padding); + void readlink_diag (char const *name); + void savedir_diag (char const *name); + void seek_diag_details (char const *name, off_t offset); +diff --git a/src/create.c b/src/create.c +index 712ee18..181f7d9 100644 +--- a/src/create.c ++++ b/src/create.c +@@ -1090,7 +1090,7 @@ dump_regular_file (int fd, struct tar_stat_info *st) + if (count == SAFE_READ_ERROR) + { + read_diag_details (st->orig_file_name, +- st->stat.st_size - size_left, bufsize); ++ st->stat.st_size - size_left, bufsize, true); + pad_archive (size_left); + return dump_status_short; + } +diff --git a/src/misc.c b/src/misc.c +index eccf6f9..28c6f44 100644 +--- a/src/misc.c ++++ b/src/misc.c +@@ -1069,15 +1069,15 @@ open_diag (char const *name) + } + + void +-read_diag_details (char const *name, off_t offset, size_t size) ++read_diag_details (char const *name, off_t offset, size_t size, bool padding) + { + if (ignore_failed_read_option) + { + if (WARNING_ENABLED(WARN_FAILED_READ)) +- read_warn_details (name, offset, size); ++ read_warn_details (name, offset, size, padding); + } + else +- read_error_details (name, offset, size); ++ read_error_details (name, offset, size, padding); + } + + void +diff -rup tar-1.34/src/sparse.c.old tar-1.34/src/sparse.c +--- tar-1.34/src/sparse.c.old 2022-06-27 09:15:48.580574517 +0000 ++++ tar-1.34/src/sparse.c 2022-06-27 09:18:28.500574517 +0000 +@@ -424,7 +424,7 @@ sparse_dump_region (struct tar_sparse_fi + (file->stat_info->sparse_map[i].offset + + file->stat_info->sparse_map[i].numbytes + - bytes_left), +- bufsize); ++ bufsize, false); + return false; + } + else if (bytes_read == 0) +@@ -619,7 +619,7 @@ check_sparse_region (struct tar_sparse_f + { + read_diag_details (file->stat_info->orig_file_name, + beg, +- rdsize); ++ rdsize, false); + return false; + } + else if (bytes_read == 0) +@@ -674,7 +674,7 @@ check_data_region (struct tar_sparse_fil + (file->stat_info->sparse_map[i].offset + + file->stat_info->sparse_map[i].numbytes + - size_left), +- rdsize); ++ rdsize, false); + return false; + } + else if (bytes_read == 0) diff --git a/SOURCES/tar-1.33-fix-capabilities-test.patch b/SOURCES/tar-1.33-fix-capabilities-test.patch new file mode 100644 index 0000000..5835c2d --- /dev/null +++ b/SOURCES/tar-1.33-fix-capabilities-test.patch @@ -0,0 +1,34 @@ +From: Pavel Raiskup +Date: Tue, 16 Feb 2021 08:10:22 +0100 +Subject: [PATCH] Related discussion in the Fedora pull-request: + https://src.fedoraproject.org/rpms/tar/pull-request/8 + +Upstream report: +https://www.mail-archive.com/bug-tar@gnu.org/msg05943.html + +* tests/capabs_raw01.at: Newer systems (currently e.g. Fedora 34) +print getcap output in format CAP=VAL, not CAP+VAL. +--- + tests/capabs_raw01.at | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/tests/capabs_raw01.at b/tests/capabs_raw01.at +index a1d9411..d3da923 100644 +--- a/tests/capabs_raw01.at ++++ b/tests/capabs_raw01.at +@@ -45,10 +45,10 @@ rm -rf dir + tar --xattrs --xattrs-include='*' -xf archive.tar + + # Newer systems print = instead of + here +-getcap dir/file | sed 's/+/=/' ++getcap dir/file | sed -e 's/+/=/' -e 's|dir/file = |dir/file |' + ], + [0], +-[dir/file = cap_chown=ei ++[dir/file cap_chown=ei + ]) + + AT_CLEANUP +-- +2.26.0 + diff --git a/SOURCES/tar-1.34-CVE-2022-48303.patch b/SOURCES/tar-1.34-CVE-2022-48303.patch new file mode 100644 index 0000000..1b6c8db --- /dev/null +++ b/SOURCES/tar-1.34-CVE-2022-48303.patch @@ -0,0 +1,30 @@ +From 3da78400eafcccb97e2f2fd4b227ea40d794ede8 Mon Sep 17 00:00:00 2001 +From: Sergey Poznyakoff +Date: Sat, 11 Feb 2023 11:57:39 +0200 +Subject: [PATCH] Fix boundary checking in base-256 decoder + +* src/list.c (from_header): Base-256 encoding is at least 2 bytes +long. +--- + src/list.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/src/list.c b/src/list.c +index 9fafc425..86bcfdd1 100644 +--- a/src/list.c ++++ b/src/list.c +@@ -881,8 +881,9 @@ from_header (char const *where0, size_t digs, char const *type, + where++; + } + } +- else if (*where == '\200' /* positive base-256 */ +- || *where == '\377' /* negative base-256 */) ++ else if (where <= lim - 2 ++ && (*where == '\200' /* positive base-256 */ ++ || *where == '\377' /* negative base-256 */)) + { + /* Parse base-256 output. A nonnegative number N is + represented as (256**DIGS)/2 + N; a negative number -N is +-- +2.38.1 + diff --git a/SOURCES/tar-1.34-Warn-file-changed-as-we-read-it-less-often.patch b/SOURCES/tar-1.34-Warn-file-changed-as-we-read-it-less-often.patch new file mode 100644 index 0000000..654d679 --- /dev/null +++ b/SOURCES/tar-1.34-Warn-file-changed-as-we-read-it-less-often.patch @@ -0,0 +1,164 @@ +From 7819e9ce26a6331f7a347c59cebfd5c6a8902ea3 Mon Sep 17 00:00:00 2001 +From: Lukas Nykryn +Date: Thu, 15 Aug 2024 14:19:58 +0200 +Subject: [PATCH] =?UTF-8?q?Warn=20=E2=80=9Cfile=20changed=20as=20we=20read?= + =?UTF-8?q?=20it=E2=80=9D=20less=20often?= +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +* src/create.c (dump_file0): Remove an fstatat call that is +unnecessary because the file wasn’t read so we can treat the first +fstatat as atomic. Warn “file changed” when the file’s size, +mtime, user ID, group ID, or mode changes, instead of when the +file’s size or ctime changes. Also, when such a change happens, +do not change exit status if --ignore-failed-read. Finally, don’t +attempt to change atime back if it didn’t change. +--- + doc/tar.texi | 10 ++++++---- + src/create.c | 54 ++++++++++++++++++++++++++++++++++++---------------- + 2 files changed, 44 insertions(+), 20 deletions(-) + +diff --git a/doc/tar.texi b/doc/tar.texi +index b66b163..dd5a272 100644 +--- a/doc/tar.texi ++++ b/doc/tar.texi +@@ -2854,7 +2854,7 @@ Ignore exit codes of subprocesses. @xref{Writing to an External Program}. + @opsummary{ignore-failed-read} + @item --ignore-failed-read + +-Do not exit unsuccessfully merely because an unreadable file was encountered. ++Do not exit unsuccessfully merely because reading failed. + @xref{Ignore Failed Read}. + + @opsummary{ignore-zeros} +@@ -4638,7 +4638,8 @@ Disable all warning messages. + @item file-changed + @samp{%s: file changed as we read it} + @item failed-read +-Suppresses warnings about unreadable files or directories. This ++Suppresses warnings about read failures, which can occur if files ++or directories are unreadable, or if they change while being read. This + keyword applies only if used together with the @option{--ignore-failed-read} + option. @xref{Ignore Failed Read}. + @end table +@@ -5761,11 +5762,12 @@ Disable SELinux context support. + @table @option + @item --ignore-failed-read + @opindex ignore-failed-read +-Do not exit with nonzero on unreadable files or directories. ++Do not exit with nonzero if there are mild problems while reading. + @end table + + This option has effect only during creation. It instructs tar to +-treat as mild conditions any missing or unreadable files (directories). ++treat as mild conditions any missing or unreadable files (directories), ++or files that change while reading. + Such failures don't affect the program exit code, and the + corresponding diagnostic messages are marked as warnings, not errors. + These warnings can be suppressed using the +diff --git a/src/create.c b/src/create.c +index e2816fc..2b3001d 100644 +--- a/src/create.c ++++ b/src/create.c +@@ -1650,8 +1650,6 @@ dump_file0 (struct tar_stat_info *st, char const *name, char const *p) + { + union block *header; + char type; +- off_t original_size; +- struct timespec original_ctime; + off_t block_ordinal = -1; + int fd = 0; + bool is_dir; +@@ -1694,10 +1692,11 @@ dump_file0 (struct tar_stat_info *st, char const *name, char const *p) + return; + } + +- st->archive_file_size = original_size = st->stat.st_size; ++ struct stat st1 = st->stat; ++ st->archive_file_size = st->stat.st_size; + st->atime = get_stat_atime (&st->stat); + st->mtime = get_stat_mtime (&st->stat); +- st->ctime = original_ctime = get_stat_ctime (&st->stat); ++ st->ctime = get_stat_ctime (&st->stat); + + #ifdef S_ISHIDDEN + if (S_ISHIDDEN (st->stat.st_mode)) +@@ -1747,7 +1746,7 @@ dump_file0 (struct tar_stat_info *st, char const *name, char const *p) + if (is_dir || S_ISREG (st->stat.st_mode) || S_ISCTG (st->stat.st_mode)) + { + bool ok; +- struct stat final_stat; ++ struct stat st2; + + xattrs_acls_get (parentfd, name, st, 0, !is_dir); + xattrs_selinux_get (parentfd, name, st, fd); +@@ -1815,31 +1814,54 @@ dump_file0 (struct tar_stat_info *st, char const *name, char const *p) + errno = - parentfd; + ok = false; + } +- else +- ok = fstatat (parentfd, name, &final_stat, fstatat_flags) == 0; + } + else +- ok = fstat (fd, &final_stat) == 0; ++ ok = fstat (fd, &st2) == 0; + + if (! ok) + file_removed_diag (p, top_level, stat_diag); + } + +- if (ok) ++ if (ok && fd) + { +- if ((timespec_cmp (get_stat_ctime (&final_stat), original_ctime) != 0 +- /* Original ctime will change if the file is a directory and +- --remove-files is given */ +- && !(remove_files_option && is_dir)) +- || original_size < final_stat.st_size) ++ /* Heuristically check whether the file is the same in all ++ attributes that tar cares about and can easily check. ++ Although the check is not perfect since it does not ++ consult file contents, it is typically good enough. ++ Do not check atime which is saved only to replace it later. ++ Do not check ctime where changes might be benign (e.g., ++ another process creates a hard link to the file). */ ++ ++ /* If the file's user ID, group ID or mode changed, tar may ++ have output the wrong info for the file. */ ++ ok &= st1.st_uid == st2.st_uid; ++ ok &= st1.st_gid == st2.st_gid; ++ ok &= st1.st_mode == st2.st_mode; ++ ++ /* Likewise for the file's mtime, but skip this check if it ++ is a directory possibly updated by --remove-files. */ ++ if (! (is_dir && remove_files_option)) ++ ok &= ! timespec_cmp (get_stat_mtime (&st1), ++ get_stat_mtime (&st2)); ++ ++ /* Likewise for the file's size, but skip this check if it ++ is a directory as tar does not output directory sizes. ++ Although dump_regular_file caught regular file shrinkage, ++ it shouldn't hurt to check for shrinkage again now; ++ plus, the file may have grown. */ ++ if (!is_dir) ++ ok &= st1.st_size == st2.st_size; ++ ++ if (!ok) + { + WARNOPT (WARN_FILE_CHANGED, + (0, 0, _("%s: file changed as we read it"), + quotearg_colon (p))); +- set_exit_status (TAREXIT_DIFFERS); ++ if (! ignore_failed_read_option) ++ set_exit_status (TAREXIT_DIFFERS); + } + else if (atime_preserve_option == replace_atime_preserve +- && fd && (is_dir || original_size != 0) ++ && timespec_cmp (st->atime, get_stat_atime (&st2)) != 0 + && set_file_atime (fd, parentfd, name, st->atime) != 0 + && errno != EROFS ) + utime_error (p); +-- +2.45.2 + diff --git a/SOURCES/tar-1.34.tar.xz.sig b/SOURCES/tar-1.34.tar.xz.sig new file mode 100644 index 0000000..7b8e880 --- /dev/null +++ b/SOURCES/tar-1.34.tar.xz.sig @@ -0,0 +1,7 @@ +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1 + +iEYEABECAAYFAmAnuBMACgkQNgKwf1XQxzJIVgCfR5Z7coRkU2+aOW4KNhumGl/1 +jn4AoI9OuQPpyzZN1CIwejDYxbV7u59P +=mfma +-----END PGP SIGNATURE----- diff --git a/SPECS/tar.spec b/SPECS/tar.spec new file mode 100644 index 0000000..4c89acc --- /dev/null +++ b/SPECS/tar.spec @@ -0,0 +1,911 @@ +%bcond_without selinux +%bcond_without check + +Summary: GNU file archiving program +Name: tar +Epoch: 2 +Version: 1.34 +Release: 7%{?dist} +License: GPLv3+ +URL: https://www.gnu.org/software/tar/ + +Source0: https://ftp.gnu.org/gnu/tar/tar-%{version}.tar.xz +Source1: https://ftp.gnu.org/gnu/tar/tar-%{version}.tar.xz.sig + +# Note that all patches are documented in patch files (git format-patch format) +Patch1: tar-1.28-loneZeroWarning.patch +Patch2: tar-1.28-vfatTruncate.patch +Patch3: tar-1.29-wildcards.patch +Patch4: tar-1.28-atime-rofs.patch +Patch9: tar-1.28-document-exclude-mistakes.patch +Patch10: tar-1.33-fix-capabilities-test.patch +Patch11: tar-1.30-padding-zeros.patch +Patch12: tar-1.30-disk-read-error.patch +Patch13: tar-1.34-CVE-2022-48303.patch +Patch14: tar-1.34-Warn-file-changed-as-we-read-it-less-often.patch + +BuildRequires: make +BuildRequires: gcc +BuildRequires: autoconf automake texinfo gettext libacl-devel + +%if %{with check} +# cover needs of tar's testsuite +BuildRequires: attr acl policycoreutils +%endif + +%if %{with selinux} +BuildRequires: libselinux-devel +%endif +Provides: bundled(gnulib) +Provides: bundled(paxutils) +Provides: /bin/tar +Provides: /bin/gtar + +%description +The GNU tar program saves many files together in one archive and can +restore individual files (or all of the files) from that archive. Tar +can also be used to add supplemental files to an archive and to update +or list files in the archive. Tar includes multivolume support, +automatic archive compression/decompression, the ability to perform +remote archives, and the ability to perform incremental and full +backups. + +If you want to use tar for remote backups, you also need to install +the rmt package on the remote box. + + +%prep +%autosetup -p1 +autoreconf -v + +# Keep only entries related to the latest release. +mv ChangeLog{,~} +awk 'stop = false; /^2014-07-27/ { stop = true; exit }; { print }' \ + < ChangeLog~ > ChangeLog + + +%build +%configure \ + %{!?with_selinux:--without-selinux} \ + --with-lzma="xz --format=lzma" \ + DEFAULT_RMT_DIR=%{_sysconfdir} \ + RSH=/usr/bin/ssh + +%make_build + + +%install +%make_install + +ln -s tar $RPM_BUILD_ROOT%{_bindir}/gtar +rm -f $RPM_BUILD_ROOT/%{_infodir}/dir +mkdir -p $RPM_BUILD_ROOT%{_mandir}/man1 +ln -s tar.1.gz $RPM_BUILD_ROOT%{_mandir}/man1/gtar.1 + +# XXX Nuke unpackaged files. +rm -f $RPM_BUILD_ROOT%{_sysconfdir}/rmt +rm -f $RPM_BUILD_ROOT%{_mandir}/man8/rmt.8* + +%find_lang %name + + +%check +%if %{with check} +rm -f $RPM_BUILD_ROOT/test/testsuite +# make check TESTSUITEFLAGS='-k \!dirrem01,\!dirrem02' || ( +make check || ( + # get the error log + set +x + find -name testsuite.log | while read line; do + echo "=== $line ===" + cat "$line" + echo + done + false +) +%endif + + +%files -f %{name}.lang +%license COPYING +%doc AUTHORS README THANKS NEWS ChangeLog +%{_bindir}/tar +%{_bindir}/gtar +%{_mandir}/man1/tar.1* +%{_mandir}/man1/gtar.1* +%{_infodir}/tar.info* + + +%changelog +* Thu Aug 15 2024 Lukas Nykryn - 2:1.34-7 +- Warn “file changed as we read it” less often + +* Thu Feb 09 2023 Matej Mužila - 2:1.34-6 +- Fix CVE-2022-48303 +- Resolves: CVE-2022-48303 + +* Fri Jul 01 2022 Lukas Javorsky - 2:1.34-5 +- Release bump + +* Mon Jun 27 2022 Lukas Javorsky - 2:1.34-4 +- added "padding with zeros" info message (#2089298) +- do not report disk error as file shrank (#2089316) + +* Tue Aug 10 2021 Mohan Boddu - 2:1.34-3 +- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags + Related: rhbz#1991688 + +* Fri Apr 16 2021 Mohan Boddu - 2:1.34-2 +- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937 + +* Sat Feb 13 2021 Ondrej Dubaj - 1.34-1 +- Rebase to version 1.34 + +* Wed Jan 27 2021 Fedora Release Engineering - 2:1.33-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Mon Jan 25 2021 Ondrej Dubaj - 1.33-2 +- Fixed memory leak in read_header() in list.c (#1917631) + +* Thu Jan 07 2021 Pavel Raiskup - 1.33-1 +- new upstream release (see the packaged NEWS file) + +* Wed Jul 29 2020 Fedora Release Engineering - 2:1.32-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Mon Jul 13 2020 Ondrej Dubaj - 2:1.32-5 +- Bugfix of --sparse option in --diff mode + +* Wed Feb 05 2020 Than Ngo - 2:1.32-4 +- Skip the test if genfile is unable to create + +* Fri Jan 31 2020 Fedora Release Engineering - 2:1.32-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Sat Jul 27 2019 Fedora Release Engineering - 2:1.32-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Mon Feb 25 2019 Pavel Raiskup - 1.32-1 +- the latest upstream release, per release notes + http://lists.gnu.org/archive/html/info-gnu/2019-02/msg00010.html +- admit that we bundle paxutils project + +* Mon Feb 04 2019 Pavel Raiskup - 1.31-4 +- fix racy compress: gzip test + +* Sun Feb 03 2019 Fedora Release Engineering - 2:1.31-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Thu Jan 17 2019 Pavel Raiskup - 1.31-2 +- backport fix for dirrem tests, and reenable them again + +* Thu Jan 10 2019 Pavel Raiskup - 1.31-1 +- the latest upstream release, per release notes + http://lists.gnu.org/archive/html/info-gnu/2019-01/msg00001.html + +* Tue Aug 07 2018 Pavel Raiskup - 1.30-6 +- use %%bcond_* for selinux, use %%make_* macros + +* Sat Jul 14 2018 Fedora Release Engineering - 2:1.30-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Wed May 23 2018 Pavel Raiskup - 1.30-4 +- drop BuildRequires: rsh, we anyways use ./configure RSH=%%_bindir/ssh + +* Fri Feb 09 2018 Fedora Release Engineering - 2:1.30-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Sat Jan 06 2018 Igor Gnatenko - 2:1.30-2 +- Return Epoch back + +* Thu Jan 04 2018 Pavel Raiskup - 1.30-1 +- testsuite fixes per upstream reports + +* Mon Dec 18 2017 Pavel Raiskup - 1.30-1 +- rebase to latest upstream release, per release notes + http://lists.gnu.org/archive/html/info-gnu/2017-12/msg00011.html + +* Thu Aug 03 2017 Fedora Release Engineering - 2:1.29-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Thu Jul 27 2017 Fedora Release Engineering - 2:1.29-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Wed May 24 2017 Tomas Repik - 2:1.29-5 +- fix --add-file option (rhbz#1436030) + +* Sat Feb 11 2017 Fedora Release Engineering - 2:1.29-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Mon Nov 28 2016 Pavel Raiskup - 1.29-3 +- revert back some docs +- fix --create to use --xattrs-include/exclude (rhbz#1341787) +- don't hang with '-x --skip-old-files --xattrs' (rhbz#1399036) + +* Mon Nov 7 2016 Peter Robinson 1.29-2 +- Drop large docs, minor specs cleanups + +* Tue May 17 2016 Pavel Raiskup - 1.29-1 +- new upstream release 1.29 (rhbz#1336607) + +* Fri Feb 05 2016 Fedora Release Engineering - 2:1.28-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Fri Jun 26 2015 Pavel Raiskup - 1.28-6 +- fix --files-from and -T cooperation (rhbz#1230762) +- avoid two testsuite false alarms related to --files-from option + +* Fri Jun 19 2015 Fedora Release Engineering - 2:1.28-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Sat Feb 21 2015 Till Maas - 2:1.28-4 +- Rebuilt for Fedora 23 Change + https://fedoraproject.org/wiki/Changes/Harden_all_packages_with_position-independent_code + +* Mon Aug 18 2014 Fedora Release Engineering - 2:1.28-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Wed Aug 6 2014 Tom Callaway - 2:1.28-2 +- fix license handling + +* Mon Jul 28 2014 Pavel Raiskup - 1.28-1 +- rebase to new upstream tarball, per release notes: + https://savannah.gnu.org/forum/forum.php?forum_id=8037 + +* Sun Jun 08 2014 Fedora Release Engineering - 2:1.27.1-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Mon May 12 2014 Pavel Raiskup - 1.27.1-4 +- enable parallel build + +* Tue Apr 01 2014 Pavel Raiskup - 1.27.1-3 +- document --exclude mistakes (#903666) +- fix default ACLs propagation (#1082603) +- infinite loop(s) in sparse-file handling (#1082608) +- fix listing (and --verify) for big sparse files (#916995) +- fix eternal loop in -T option (#1083066) +- don't read/write archive from/to terminal (#1083075) + +* Fri Nov 29 2013 Pavel Raiskup - 1.27.1-2 +- sync manual page contents with help2man output + +* Mon Nov 18 2013 Pavel Raiskup - 1.27.1-1 +- minor version update to 1.27.1 + +* Tue Oct 29 2013 Pavel Raiskup - 1.27-2 +- sparse file detection based on fstat() fix (#1024095) + +* Wed Oct 09 2013 Ondrej Vasik - 1.27-1 +- new upstream release 1.27 (#1016288) + +* Mon Sep 09 2013 Pavel Raiskup - 1.26-28 +- add documenation for xattrs-like options (#996753) +- the --xattrs-include implies --xattrs now (#965969) + +* Sun Aug 04 2013 Fedora Release Engineering - 2:1.26-27 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Thu Jun 20 2013 Pavel Raiskup - 1.26-26 +- the /etc/rmt seems to be the best place where to look for rmt binary (see the + commit message in Fedora's cpio.git for more info) + +* Tue Jun 04 2013 Pavel Raiskup - 2:1.26-25 +- fix "symlink eating" bug (already fixed in upstream git) + +* Thu May 30 2013 Pavel Raiskup - 2:1.26-24 +- use /usr/bin/ssh as the default remote shell binary (#969015) +- do not verbose-print xattrs when --no-xattrs option is used +- do not override the config.{guess,sub} twice, this is already done by the + redhat-rpm-config package (#951442) + +* Tue May 28 2013 Pavel Raiskup - 2:1.26-23 +- again search for 'rmt' binary in %%{_sbindir} on target host + +* Tue Mar 26 2013 Pavel Raiskup - 2:1.26-22 +- enable build for arm64 (#926610) +- fix the NAME part in manual page (copied from texinfo) +- silence gcc warnings (lint fixes without risk from upstream) for RPMDiff + +* Tue Mar 19 2013 Pavel Raiskup - 2:1.26-21 +- allow extracting single volume from multi-volume archive (#919897) +- usrmove: /bin/tar ~> /usr/bin/tar, selinux handling edit +- add possibility to pass arguments to commands called from tar (#819187) + +* Fri Mar 01 2013 Pavel Raiskup - 2:1.26-19 +- fix creating sparse pax archives containing files of effective + size >8GB (#516309) +- silence rpmlint (fix bad dates in changelog based on git log dates) + +* Wed Feb 20 2013 Pavel Raiskup - 2:1.26-18 +- fix problems with big uids/gids and pax format (> 2^21) (#913406) + +* Mon Feb 18 2013 Pavel Raiskup - 2:1.26-17 +- add possibility to 'rpmbuild' without %%check phase +- make the autoreconf phase verbose +- re-create older patches (avoid offset warnings during patching) +- remove patches which we don't need now (xattrs - will be updated, sigpipe - + test should work now, partial revert of *at() conversion was done because of + incompatible xattr patch) +- add upstream up2date xattr patch + +* Fri Feb 01 2013 Pavel Raiskup - 2:1.26-16 +- make the info documentation more visible in manpage (#903666) +- sync tar.1 manpage with actual --help output (e.g. added --skip-old-files) +- add the last_help2man_run file to git repo to allow more easily find changes + in --help in future +- make the DEFAULTS section to be more visible in man page +- verbose 'make check' only when some fail happened (append to koji build.log) + +* Thu Nov 29 2012 Ondrej Vasik - 2:1.26-15 +- add missing --full-time option to manpage + +* Thu Oct 18 2012 Pavel Raiskup - 2:1.26-14 +- fix bad behaviour of --keep-old-files and add --skip-old-files option + (#799252) + +* Wed Oct 10 2012 Pavel Raiskup 2:1.26-13 +- fix badly written macro for building --without-selinux +- allow to build tar in difference CoverityScan by forcing the '.gets' patch to + be applied even in the run without patches + +* Fri Oct 05 2012 Pavel Raiskup 2:1.26-12 +- repair the xattr-gnulib-prepare patch to allow build tar without SELinux + support +- fedora-review compliance -> remove trailing white-spaces, remove macro from + comment, remove BR of gawk;coreutils;gzip that should be covered automatically + by minimum build environment, do not `rm -rf' buildroot at the beginning of + install phase (needed only in EPEL), remove BuildRoot definition, remove + defattr macro, s/define/global/ +- do not use ${VAR} syntax for bash variables, use just $VAR + +* Wed Aug 22 2012 Pavel Raiskup 2:1.26-11 +- fix manpage to reflect #850291 related commit + +* Tue Aug 21 2012 Pavel Raiskup 2:1.26-10 +- prepare Gnulib for new xattrs (#850291) +- new version of RH xattrs patch (#850291) +- enable verbose mode in testsuite to allow better debugging on error + +* Sat Jul 21 2012 Fedora Release Engineering - 2:1.26-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Thu Jul 12 2012 Pavel Raiskup 2:1.26-8 +- force the fchown() be called before xattrs_set() (#771927) + +* Sat Jun 16 2012 Ondrej Vasik 2:1.26-7 +- store&restore security.capability extended attributes category + (#771927) +- fix build failure with undefined gets + +* Tue May 15 2012 Ondrej Vasik 2:1.26-6 +- add virtual provides for bundled(gnulib) copylib (#821790) + +* Thu Apr 05 2012 Pavel Raiskup 2:1.26-5 +- fix for bad cooperation of the '-C' (change directory) and '-u' (update + package) options (#688567) + +* Sat Jan 14 2012 Fedora Release Engineering - 2:1.26-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Sun Oct 2 2011 Ville Skyttä - 2:1.26-3 +- Man page heading formatting fixes. + +* Mon Sep 26 2011 Kamil Dudka 2:1.26-2 +- restore basic functionality of --acl, --selinux, and --xattr (#717684) + +* Sat Mar 12 2011 Ondrej Vasik 2:1.26-1 +- new upstream release 1.26 +* Wed Feb 09 2011 Fedora Release Engineering - 2:1.25-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Thu Jan 20 2011 Ondrej Vasik 2:1.25-5 +- drop unnecessary hard dependency on info package(#671157) + +* Mon Jan 03 2011 Ondrej Vasik 2:1.25-4 +- mention that some compression options might not work if + the external program is not available(#666755) + +* Wed Dec 08 2010 Kamil Dudka 2:1.25-3 +- correctly store long sparse file names in PAX archives (#656834) + +* Tue Nov 23 2010 Ondrej Vasik 2:1.25-2 +- fix issue with --one-file-system and --listed-incremental + (#654718) + +* Mon Nov 08 2010 Ondrej Vasik 2:1.25-1 +- new upstream release 1.25 + +* Mon Oct 25 2010 Ondrej Vasik 2:1.24-1 +- new upstream release 1.24, use .xz archive + +* Wed Sep 29 2010 jkeating - 2:1.23-8 +- Rebuilt for gcc bug 634757 + +* Fri Sep 24 2010 Kamil Dudka 2:1.23-7 +- match non-stripped file names (#637085) + +* Mon Sep 20 2010 Kamil Dudka 2:1.23-6 +- fix exclusion of long file names with --xattrs (#634866) +- do not crash with --listed-incremental (#635318) + +* Mon Aug 16 2010 Ondrej Vasik 2:1.23-5 +- add support for security.NTACL xattrs (#621215) + +* Tue Jun 01 2010 Ondrej Vasik 2:1.23-4 +- recognize old-archive/portability options(#594044) + +* Wed Apr 07 2010 Ondrej Vasik 2:1.23-3 +- allow storing of extended attributes for fifo and block + or character devices files(#573147) + +* Mon Mar 15 2010 Ondrej Vasik 2:1.23-2 +- update help2maned manpage + +* Fri Mar 12 2010 Ondrej Vasik 2:1.23-1 +- new upstream release 1.23, remove applied patches + +* Wed Mar 10 2010 Ondrej Vasik 2:1.22-17 +- CVE-2010-0624 tar, cpio: Heap-based buffer overflow + by expanding a specially-crafted archive (#572149) +- realloc within check_exclusion_tags() caused invalid write + (#570591) +- not closing file descriptors for excluded files/dirs with + exlude-tag... options could cause descriptor exhaustion + (#570591) + +* Sat Feb 20 2010 Kamil Dudka 2:1.22-16 +- support for "lustre.*" extended attributes (#561855) + +* Thu Feb 04 2010 Ondrej Vasik 2:1.22-15 +- fix segfault with corrupted metadata in code_ns_fraction + (#531441) + +* Wed Feb 03 2010 Kamil Dudka 2:1.22-14 +- allow also build with SELinux support + +* Mon Feb 01 2010 Ondrej Vasik 2:1.22-13 +- allow build without SELinux support(#556679) + +* Tue Jan 05 2010 Ondrej Vasik 2:1.22-12 +- do not fail with POSIX 2008 glibc futimens() (#552320) +- temporarily disable fix for #531441, causing stack smashing + with newer glibc(#551206) + +* Tue Dec 08 2009 Ondrej Vasik 2:1.22-11 +- fix segfault with corrupted metadata in code_ns_fraction + (#531441) +- commented patches and sources + +* Fri Nov 27 2009 Ondrej Vasik 2:1.22-10 +- store xattrs for symlinks (#525992) - by Kamil Dudka +- update tar(1) manpage (#539787) +- fix memory leak in xheader (#518079) + +* Wed Nov 18 2009 Kamil Dudka 2:1.22-9 +- store SELinux context for symlinks (#525992) + +* Thu Aug 27 2009 Ondrej Vasik 2:1.22-8 +- provide symlink manpage for gtar + +* Thu Aug 06 2009 Ondrej Vasik 2:1.22-7 +- do process install-info only without --excludedocs(#515923) + +* Sun Jul 26 2009 Fedora Release Engineering - 2:1.22-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Thu Jul 16 2009 Ondrej Vasik 2:1.22-5 +- Fix restoring of directory default acls(#511145) +- Do not patch generated autotools files + +* Thu Jun 25 2009 Ondrej Vasik 2:1.22-4 +- Report record size only if the archive refers to a device + (#487760) +- Do not sigabrt with new gcc/glibc because of writing to + struct members of gnutar header at once via strcpy + +* Fri May 15 2009 Ondrej Vasik 2:1.22-3 +- ignore errors from setting utime() for source file + on read-only filesystem (#500742) + +* Fri Mar 06 2009 Kamil Dudka 2:1.22-2 +- improve tar-1.14-loneZeroWarning.patch (#487315) + +* Mon Mar 02 2009 Ondrej Vasik 2:1.22-1 +- New upstream release 1.22, removed applied patch + +* Wed Feb 25 2009 Fedora Release Engineering - 2:1.21-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Mon Jan 05 2009 Ondrej Vasik 2:1.21-1 +- New upstream release 1.21, removed applied patches +- add support for -I option, fix testsuite failure + +* Thu Dec 11 2008 Ondrej Vasik 2:1.20-6 +- add BuildRequires for rsh (#475950) + +* Fri Nov 21 2008 Ondrej Vasik 2:1.20-5 +- fix off-by-one errors in xattrs patch (#472355) + +* Mon Nov 10 2008 Kamil Dudka 2:1.20-4 +- fixed bug #465803: labels with --multi-volume (upstream patch) + +* Fri Oct 10 2008 Ondrej Vasik 2:1.20-3 +- Fixed wrong documentation for xattrs options (#466517) +- fixed bug with null file terminator and change dirs + (upstream) + +* Fri Aug 29 2008 Ondrej Vasik 2:1.20-2 +- patch fuzz clean up + +* Mon May 26 2008 Ondrej Vasik 2:1.20-1 +- new upstream release 1.20 (lzma support, few new options + and bugfixes) +- heavily modified xattrs patches(as tar-1.20 now uses automake + 1.10.1) + +* Tue Feb 12 2008 Radek Brich 2:1.19-3 +- do not print getfilecon/setfilecon warnings when SELinux is disabled + or SELinux data are not available (bz#431879) +- fix for GCC 4.3 + +* Mon Jan 21 2008 Radek Brich 2:1.19-2 +- fix errors in man page + * fix definition of --occurrence (bz#416661, patch by Jonathan Wakely) + * update meaning of -l: it has changed from --one-filesystem + to --check-links (bz#426717) +- update license tag, tar 1.19 is GPLv3+ + +* Mon Dec 17 2007 Radek Brich 2:1.19-1 +- upgrade to 1.19 +- updated xattrs patch, removed 3 upstream patches + +* Wed Dec 12 2007 Radek Brich 2:1.17-5 +- fix (non)detection of xattrs +- move configure stuff from -xattrs patch to -xattrs-conf, + so the original patch could be easily read +- fix -xattrs patch to work with zero length files and show + warnings when xattrs not available (fixes by James Antill) +- possible corruption (#408621) - add warning to man page + for now, may be actually fixed later, depending on upstream + +* Tue Oct 23 2007 Radek Brich 2:1.17-4 +- upstream patch for CVE-2007-4476 + (tar stack crashing in safer_name_suffix) + +* Tue Aug 28 2007 Radek Brich 2:1.17-3 +- gawk build dependency + +* Tue Aug 28 2007 Radek Brich 2:1.17-2 +- updated license tag +- fixed CVE-2007-4131 tar directory traversal vulnerability (#251921) + +* Thu Jun 28 2007 Radek Brich 2:1.17-1 +- new upstream version +- patch for wildcards (#206841), restoring old behavior +- patch for testsuite +- update -xattrs patch +- drop 13 obsolete patches + +* Tue Feb 06 2007 Peter Vrabec 2:1.15.1-26 +- fix spec file to meet Fedora standards (#226478) + +* Mon Jan 22 2007 Peter Vrabec 2:1.15.1-25 +- fix non-failsafe install-info use in scriptlets (#223718) + +* Wed Jan 03 2007 Peter Vrabec 2:1.15.1-24 +- supply tar man page (#219375) + +* Tue Dec 12 2006 Florian La Roche 2:1.15.1-23 +- fix CVE-2006-6097 GNU tar directory traversal (#216937) + +* Sun Dec 10 2006 Peter Vrabec 2:1.15.1-22 +- fix some rpmlint spec file issues + +* Wed Oct 25 2006 Peter Vrabec 2:1.15.1-21 +- build with dist-tag + +* Mon Oct 09 2006 Peter Vrabec 2:1.15.1-20 +- another fix of tar-1.15.1-xattrs.patch from James Antill + +* Wed Oct 04 2006 Peter Vrabec 2:1.15.1-19 +- another fix of tar-1.15.1-xattrs.patch from James Antill + +* Sun Oct 01 2006 Peter Vrabec 2:1.15.1-18 +- fix tar-1.15.1-xattrs.patch (#208701) + +* Tue Sep 19 2006 Peter Vrabec 2:1.15.1-17 +- start new epoch, downgrade to solid stable 1.15.1-16 (#206979), +- all patches are backported + +* Tue Sep 19 2006 Peter Vrabec 1.15.91-2 +- apply patches, which were forgotten during upgrade + +* Wed Sep 13 2006 Peter Vrabec 1.15.91-1 +- upgrade, which also fix incremental backup (#206121) + +* Fri Sep 08 2006 Peter Vrabec 1.15.90-7 +- fix tar-debuginfo package (#205615) + +* Thu Aug 10 2006 Peter Vrabec 1.15.90-6 +- add xattr support (#200925), patch from james.antill@redhat.com + +* Mon Jul 24 2006 Peter Vrabec 1.15.90-5 +- fix incompatibilities in appending files to the end + of an archive (#199515) + +* Tue Jul 18 2006 Peter Vrabec 1.15.90-4 +- fix problem with unpacking archives in a directory for which + one has write permission but does not own (such as /tmp) (#149686) + +* Wed Jul 12 2006 Jesse Keating - 1.15.90-3.1 +- rebuild + +* Thu Jun 29 2006 Peter Vrabec 1.15.90-3 +- fix typo in tar.1 man page + +* Tue Apr 25 2006 Peter Vrabec 1.15.90-2 +- exclude listed02.at from testsuite again, because it + still fails on s390 + +* Tue Apr 25 2006 Peter Vrabec 1.15.90-1 +- upgrade + +* Mon Apr 24 2006 Peter Vrabec 1.15.1-16 +- fix problem when options at the end of command line were + not recognized (#188707) + +* Thu Apr 13 2006 Peter Vrabec 1.15.1-15 +- fix segmentation faul introduced with hugeSparse.patch + +* Wed Mar 22 2006 Peter Vrabec 1.15.1-14 +- fix problems with extracting large sparse archive members (#185460) + +* Fri Feb 17 2006 Peter Vrabec 1.15.1-13 +- fix heap overlfow bug CVE-2006-0300 (#181773) + +* Fri Feb 10 2006 Jesse Keating - 1.15.1-12.2 +- bump again for double-long bug on ppc(64) + +* Tue Feb 07 2006 Jesse Keating - 1.15.1-12.1 +- rebuilt for new gcc4.1 snapshot and glibc changes + +* Mon Feb 06 2006 Peter Vrabec 1.15.1-12 +- fix extracting sparse files to a filesystem like vfat, + when ftruncate may fail to grow the size of a file.(#179507) + +* Fri Dec 09 2005 Jesse Keating +- rebuilt + +* Fri Nov 04 2005 Peter Vrabec 1.15.1-11 +- correctly pad archive members that shrunk during archiving (#172373) + +* Tue Sep 06 2005 Peter Vrabec 1.15.1-10 +- provide man page (#163709, #54243, #56041) + +* Mon Aug 15 2005 Peter Vrabec 1.15.1-9 +- silence newer option (#164902) + +* Wed Jul 27 2005 Peter Vrabec 1.15.1-8 +- A file is dumpable if it is sparse and both --sparse + and --totals are specified (#154882) + +* Tue Jul 26 2005 Peter Vrabec 1.15.1-7 +- exclude listed02.at from testsuite + +* Fri Jul 22 2005 Peter Vrabec 1.15.1-6 +- remove tar-1.14-err.patch, not needed (158743) + +* Fri Apr 15 2005 Peter Vrabec 1.15.1-5 +- extract sparse files even if the output fd is not seekable.(#154882) +- (sparse_scan_file): Bugfix. offset had incorrect type. + +* Mon Mar 14 2005 Peter Vrabec +- gcc4 fix (#150993) 1.15.1-4 + +* Mon Jan 31 2005 Peter Vrabec +- rebuild 1.15.1-3 + +* Mon Jan 17 2005 Peter Vrabec +- fix tests/testsuite + +* Fri Jan 07 2005 Peter Vrabec +- upgrade to 1.15.1 + +* Mon Oct 11 2004 Peter Vrabec +- patch to stop issuing lone zero block warnings +- rebuilt + +* Mon Oct 11 2004 Peter Vrabec +- URL added to spec file +- spec file clean up + +* Tue Jun 15 2004 Elliot Lee +- rebuilt + +* Mon Jun 7 2004 Jeff Johnson 1.14-1 +- upgrade to 1.14. + +* Fri Feb 13 2004 Elliot Lee +- rebuilt + +* Tue Jun 17 2003 Jeff Johnson 1.13.25-13 +- rebuilt because of crt breakage on ppc64. +- dump automake15 requirement. + +* Wed Jun 04 2003 Elliot Lee +- rebuilt + +* Wed Jan 22 2003 Tim Powers +- rebuilt + +* Fri Nov 29 2002 Tim Powers 1.13.25-10 +- fix broken buildrquires on autoconf253 + +* Thu Nov 7 2002 Jeff Johnson 1.13.25-9 +- rebuild from CVS. + +* Fri Aug 23 2002 Phil Knirsch 1.13.25-8 +- Included security patch from errata release. + +* Mon Jul 1 2002 Bernhard Rosenkraenzer 1.13.25-7 +- Fix argv NULL termination (#64869) + +* Thu May 23 2002 Tim Powers +- automated rebuild + +* Tue Apr 9 2002 Bernhard Rosenkraenzer 1.13.25-4 +- Fix build with autoconf253 (LIBOBJ change; autoconf252 worked) + +* Wed Jan 09 2002 Tim Powers +- automated rebuild + +* Tue Oct 23 2001 Bernhard Rosenkraenzer 1.13.25-2 +- Don't include hardlinks to sockets in a tar file (#54827) + +* Thu Sep 27 2001 Bernhard Rosenkraenzer 1.13.25-1 +- 1.13.25 + +* Tue Sep 18 2001 Bernhard Rosenkraenzer 1.13.22-1 +- Update to 1.13.22, adapt patches + +* Mon Aug 27 2001 Bernhard Rosenkraenzer 1.13.19-6 +- Fix #52084 + +* Thu May 17 2001 Bernhard Rosenkraenzer 1.13.19-5 +- Fix build with current autoconf (stricter checking on AC_DEFINE) +- Fix segfault when tarring directories without having read permissions + (#40802) + +* Tue Mar 6 2001 Bernhard Rosenkraenzer +- Don't depend on librt. + +* Fri Feb 23 2001 Trond Eivind Glomsröd +- langify + +* Thu Feb 22 2001 Bernhard Rosenkraenzer +- Fix up the man page (#28915) + +* Wed Feb 21 2001 Bernhard Rosenkraenzer +- 1.3.19, nukes -I and fixes up -N +- Add -I back in as an alias to -j with a nice loud warning + +* Mon Oct 30 2000 Bernhard Rosenkraenzer +- 1.3.18 +- Update man page to reflect changes + +* Thu Oct 5 2000 Bernhard Rosenkraenzer +- Fix the "ignore failed read" option (Bug #8330) + +* Mon Sep 25 2000 Bernhard Rosenkraenzer +- fix hang on tar tvzf - + +* Fri Aug 18 2000 Bernhard Rosenkraenzer +- really fix exit code (Bug #15448) + +* Mon Aug 7 2000 Bernhard Rosenkraenzer +- fix exit code (Bug #15448), patch from Tim Waugh + +* Wed Jul 12 2000 Prospector +- automatic rebuild + +* Mon Jun 19 2000 Bernhard Rosenkraenzer +- FHSify + +* Fri Apr 28 2000 Bill Nottingham +- fix for ia64 + +* Wed Feb 9 2000 Bernhard Rosenkränzer +- Fix the exclude bug (#9201) + +* Wed Feb 02 2000 Cristian Gafton +- man pages are compressed +- fix description +- fix fnmatch build problems + +* Sun Jan 9 2000 Bernhard Rosenkränzer +- 1.13.17 +- remove dotbug patch (fixed in base) +- update download URL + +* Fri Jan 7 2000 Bernhard Rosenkränzer +- Fix a severe bug (tar xf any_package_containing_. would delete the + current directory) + +* Wed Jan 5 2000 Bernhard Rosenkränzer +- 1.3.16 +- unset LINGUAS before running configure + +* Tue Nov 9 1999 Bernhard Rosenkränzer +- 1.13.14 +- Update man page to know about -I / --bzip +- Remove dependancy on rmt - tar can be used for anything local + without it. + +* Fri Aug 27 1999 Preston Brown +- upgrade to 1.13.11. + +* Wed Aug 18 1999 Jeff Johnson +- update to 1.13.9. + +* Thu Aug 12 1999 Jeff Johnson +- update to 1.13.6. +- support -y --bzip2 options for bzip2 compression (#2415). + +* Fri Jul 23 1999 Jeff Johnson +- update to 1.13.5. + +* Tue Jul 13 1999 Bill Nottingham +- update to 1.13 + +* Sat Jun 26 1999 Jeff Johnson +- update to 1.12.64014. +- pipe patch corrected for remote tars now merged in. + +* Sun Jun 20 1999 Jeff Johnson +- update to tar-1.12.64013. +- subtract (and reopen #2415) bzip2 support using -y. +- move gtar to /bin. + +* Tue Jun 15 1999 Jeff Johnson +- upgrade to tar-1.12.64011 to +- add bzip2 support (#2415) +- fix filename bug (#3479) + +* Mon Mar 29 1999 Jeff Johnson +- fix suspended tar with compression over pipe produces error (#390). + +* Sun Mar 21 1999 Cristian Gafton +- auto rebuild in the new build environment (release 8) + +* Mon Mar 08 1999 Michael Maher +- added patch for bad name cache. +- FIXES BUG 320 + +* Wed Feb 24 1999 Preston Brown +- Injected new description and group. + +* Fri Dec 18 1998 Preston Brown +- bumped spec number for initial rh 6.0 build + +* Tue Aug 4 1998 Jeff Johnson +- add /usr/bin/gtar symlink (change #421) + +* Tue Jul 14 1998 Jeff Johnson +- Fiddle bindir/libexecdir to get RH install correct. +- Don't include /sbin/rmt -- use the rmt from dump. +- Turn on nls. + +* Mon Apr 27 1998 Prospector System +- translations modified for de, fr, tr + +* Thu Oct 16 1997 Donnie Barnes +- updated from 1.11.8 to 1.12 +- various spec file cleanups +- /sbin/install-info support + +* Thu Jun 19 1997 Erik Troan +- built against glibc + +* Thu May 29 1997 Michael Fulbright +- Fixed to include rmt