From fc7e71a489af6358a055c1703393a98630a39ed6 Mon Sep 17 00:00:00 2001 From: Ondrej Vasik Date: Sat, 12 Mar 2011 14:30:11 +0100 Subject: [PATCH] new upstream release 1.26 --- .gitignore | 2 + sources | 4 +- tar-1.22-atime-rofs.patch | 4 +- tar-1.25-listedincremental.patch | 219 ------------------------------- tar-1.25-sparse-names.patch | 126 ------------------ tar.spec | 12 +- 6 files changed, 10 insertions(+), 357 deletions(-) delete mode 100644 tar-1.25-listedincremental.patch delete mode 100644 tar-1.25-sparse-names.patch diff --git a/.gitignore b/.gitignore index b76f1a4..adb5fae 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,5 @@ tar-1.23.tar.bz2.sig /tar-1.24.tar.xz.sig /tar-1.25.tar.xz /tar-1.25.tar.xz.sig +/tar-1.26.tar.xz +/tar-1.26.tar.xz.sig diff --git a/sources b/sources index a51df47..b6efdc0 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -1b3b391087f4baf70ccad8bd92e4db11 tar-1.25.tar.xz -bc574a334e6f7bb6a7feb41ff4b2b080 tar-1.25.tar.xz.sig +0ced6f20b9fa1bea588005b5ad4b52c1 tar-1.26.tar.xz +6618d5fe7785e138c27d7d6a24e998b2 tar-1.26.tar.xz.sig diff --git a/tar-1.22-atime-rofs.patch b/tar-1.22-atime-rofs.patch index c9f3b08..12f022b 100644 --- a/tar-1.22-atime-rofs.patch +++ b/tar-1.22-atime-rofs.patch @@ -1,10 +1,10 @@ diff -urNp tar-1.22-orig/src/create.c tar-1.22/src/create.c --- tar-1.22-orig/src/create.c 2009-05-15 10:50:38.000000000 +0200 +++ tar-1.22/src/create.c 2009-05-15 10:51:52.000000000 +0200 -@@ -1691,7 +1691,8 @@ dump_file0 (struct tar_stat_info *st, co - set_exit_status (TAREXIT_DIFFERS); +@@ -1827,7 +1827,8 @@ dump_file0 (struct tar_stat_info *st, co } 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 ) diff --git a/tar-1.25-listedincremental.patch b/tar-1.25-listedincremental.patch deleted file mode 100644 index 940d0ba..0000000 --- a/tar-1.25-listedincremental.patch +++ /dev/null @@ -1,219 +0,0 @@ -From 065cf0958c39600f2062cbeeb5b76929d03c207b Mon Sep 17 00:00:00 2001 -From: Paul Eggert -Date: Mon, 22 Nov 2010 22:50:58 -0800 -Subject: [PATCH] * 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. -* src/create.c (dump_file0): Replace "is_individual_file (p)" -with "top_level". -* src/incremen.c (procdir): Replace "!is_individual_file -(name_buffer)" with "st->parent". Fix bug with --one-file-system -and --listed-incremental. -* src/names.c (individual_file_table, register_individual_file): -(is_individual_file): Remove. All uses removed. ---- - src/common.h | 1 - - src/create.c | 4 ++-- - src/incremen.c | 8 ++------ - src/names.c | 26 -------------------------- - 4 files changed, 4 insertions(+), 35 deletions(-) - -diff --git a/src/common.h b/src/common.h -index 35e056e..9444fd7 100644 ---- a/src/common.h -+++ b/src/common.h -@@ -680,7 +680,6 @@ bool excluded_name (char const *name); - - void add_avoided_name (char const *name); - bool is_avoided_name (char const *name); --bool is_individual_file (char const *name); - - bool contains_dot_dot (char const *name); - -diff --git a/src/create.c b/src/create.c -index a1e90a3..e8de6b9 100644 ---- a/src/create.c -+++ b/src/create.c -@@ -1678,9 +1678,9 @@ dump_file0 (struct tar_stat_info *st, char const *name, char const *p) - put in the archive. - - This check is omitted if incremental_option is set *and* the -- requested file is not explicitely listed in the command line. */ -+ requested file is not explicitly listed in the command line. */ - -- if (!(incremental_option && !is_individual_file (p)) -+ if (! (incremental_option && ! top_level) - && !S_ISDIR (st->stat.st_mode) - && OLDER_TAR_STAT_TIME (*st, m) - && (!after_date_option || OLDER_TAR_STAT_TIME (*st, c))) -diff --git a/src/incremen.c b/src/incremen.c -index 628ff29..2b33c5d 100644 ---- a/src/incremen.c -+++ b/src/incremen.c -@@ -426,7 +426,6 @@ procdir (const char *name_buffer, struct tar_stat_info *st, - { - struct directory *directory; - struct stat *stat_data = &st->stat; -- dev_t device = st->parent ? st->parent->stat.st_dev : 0; - bool nfs = NFS_FILE_STAT (*stat_data); - - if ((directory = find_directory (name_buffer)) != NULL) -@@ -540,11 +539,8 @@ procdir (const char *name_buffer, struct tar_stat_info *st, - } - } - -- /* If the directory is on another device and --one-file-system was given, -- omit it... */ -- if (one_file_system_option && device != stat_data->st_dev -- /* ... except if it was explicitely given in the command line */ -- && !is_individual_file (name_buffer)) -+ if (one_file_system_option && st->parent -+ && stat_data->st_dev != st->parent->stat.st_dev) - /* FIXME: - WARNOPT (WARN_XDEV, - (0, 0, -diff --git a/src/names.c b/src/names.c -index 6e214bf..ba4d509 100644 ---- a/src/names.c -+++ b/src/names.c -@@ -47,8 +47,6 @@ static char *cached_no_such_gname; - static uid_t cached_no_such_uid; - static gid_t cached_no_such_gid; - --static void register_individual_file (char const *name); -- - /* Given UID, find the corresponding UNAME. */ - void - uid_to_uname (uid_t uid, char **uname) -@@ -360,8 +358,6 @@ name_next_elt (int change_dirs) - { - if (unquote_option) - unquote_string (name_buffer); -- if (incremental_option) -- register_individual_file (name_buffer); - entry.type = ep->type; - entry.v.name = name_buffer; - return &entry; -@@ -1152,28 +1148,6 @@ excluded_name (char const *name) - return excluded_file_name (excluded, name + FILE_SYSTEM_PREFIX_LEN (name)); - } - --static Hash_table *individual_file_table; -- --static void --register_individual_file (char const *name) --{ -- struct stat st; -- -- if (deref_stat (name, &st) != 0) -- return; /* Will be complained about later */ -- if (S_ISDIR (st.st_mode)) -- return; -- -- hash_string_insert (&individual_file_table, name); --} -- --bool --is_individual_file (char const *name) --{ -- return hash_string_lookup (individual_file_table, name); --} -- -- - - /* Return the size of the prefix of FILE_NAME that is removed after - stripping NUM leading file name components. NUM must be --- -1.7.1 - -From: Paul Eggert -Date: Tue, 23 Nov 2010 01:58:55 +0000 (-0800) -Subject: tests: new test listed04 for --one-file-system --listed-incremental -X-Git-Url: http://git.savannah.gnu.org/gitweb/?p=tar.git;a=commitdiff_plain;h=2a55b4b0373eef2e879408f9df6638bb03e16170 - -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. ---- - -diff --git a/tests/Makefile.am b/tests/Makefile.am -index f289067..7b1e226 100644 ---- a/tests/Makefile.am -+++ b/tests/Makefile.am -@@ -110,6 +110,7 @@ TESTSUITE_AT = \ - listed01.at\ - listed02.at\ - listed03.at\ -+ listed04.at\ - long01.at\ - longv7.at\ - lustar01.at\ -diff --git a/tests/listed04.at b/tests/listed04.at -new file mode 100644 -index 0000000..239998d ---- /dev/null -+++ b/tests/listed04.at -@@ -0,0 +1,47 @@ -+# Process this file with autom4te to create testsuite. -*- Autotest -*- -+ -+# Test suite for GNU tar. -+# Copyright (C) 2010 Free Software Foundation, Inc. -+ -+# This program 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. -+ -+# This program 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 . -+ -+# This checks for the bug reported by Martin Weigel -+# . -+# The test is derived from the ideas in Jean-Louis Martineau's followup email -+# . -+ -+AT_SETUP([--listed-incremental and --one-file-system]) -+AT_KEYWORDS([listed incremental listed04]) -+ -+AT_TAR_CHECK([ -+ -+mkdir dir -+echo a >dir/a -+echo b >dir/b -+ -+tar --one-file-system -cvf archive.tar -g archive.incr dir || exit -+tar -tf archive.tar || exit -+], -+[0], -+[dir/ -+dir/a -+dir/b -+dir/ -+dir/a -+dir/b -+], -+[tar: dir: Directory is new -+],[],[],[gnu]) -+ -+AT_CLEANUP -diff --git a/tests/testsuite.at b/tests/testsuite.at -index db0db3a..e8df868 100644 ---- a/tests/testsuite.at -+++ b/tests/testsuite.at -@@ -174,6 +174,7 @@ m4_include([incr02.at]) - m4_include([listed01.at]) - m4_include([listed02.at]) - m4_include([listed03.at]) -+m4_include([listed04.at]) - m4_include([incr03.at]) - m4_include([incr04.at]) - m4_include([incr05.at]) diff --git a/tar-1.25-sparse-names.patch b/tar-1.25-sparse-names.patch deleted file mode 100644 index 890726d..0000000 --- a/tar-1.25-sparse-names.patch +++ /dev/null @@ -1,126 +0,0 @@ -From 3f7aebf6e15d2ee39f55528cc9f423b330e68272 Mon Sep 17 00:00:00 2001 -From: Sergey Poznyakoff -Date: Sat, 27 Nov 2010 14:35:08 +0200 -Subject: [PATCH] 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. -* tests/sparse04.at: New testcase. -* tests/Makefile.am (TESTSUITE_AT): Add sparse04.at. -* tests/testsuite.at: Include sparse04.at. -* NEWS: Update. ---- - src/sparse.c | 9 ++++++--- - tests/Makefile.am | 1 + - tests/sparse04.at | 47 +++++++++++++++++++++++++++++++++++++++++++++++ - tests/testsuite.at | 1 + - 4 files changed, 55 insertions(+), 3 deletions(-) - create mode 100644 tests/sparse04.at - -diff --git a/src/sparse.c b/src/sparse.c -index 9680b60..696773f 100644 ---- a/src/sparse.c -+++ b/src/sparse.c -@@ -991,7 +991,7 @@ pax_dump_header_1 (struct tar_sparse_file *file) - off_t size = 0; - struct sp_array *map = file->stat_info->sparse_map; - char *save_file_name = file->stat_info->file_name; -- -+ - #define COPY_STRING(b,dst,src) do \ - { \ - char *endp = b->buffer + BLOCKSIZE; \ -@@ -1029,8 +1029,11 @@ pax_dump_header_1 (struct tar_sparse_file *file) - xheader_store ("GNU.sparse.name", file->stat_info, NULL); - xheader_store ("GNU.sparse.realsize", file->stat_info, NULL); - -- file->stat_info->file_name = xheader_format_name (file->stat_info, -- "%d/GNUSparseFile.%p/%f", 0); -+ file->stat_info->file_name = -+ xheader_format_name (file->stat_info, "GNUSparseFile.%p/%f", 0); -+ /* Make sure the created header name is shorter than NAME_FIELD_SIZE: */ -+ if (strlen (file->stat_info->file_name) > NAME_FIELD_SIZE) -+ file->stat_info->file_name[NAME_FIELD_SIZE] = 0; - - blk = start_header (file->stat_info); - /* Store the effective (shrunken) file size */ -diff --git a/tests/Makefile.am b/tests/Makefile.am -index 12e8c1b..b14b40a 100644 ---- a/tests/Makefile.am -+++ b/tests/Makefile.am -@@ -145,6 +145,7 @@ TESTSUITE_AT = \ - sparse01.at\ - sparse02.at\ - sparse03.at\ -+ sparse04.at\ - sparsemv.at\ - sparsemvp.at\ - spmvp00.at\ -diff --git a/tests/sparse04.at b/tests/sparse04.at -new file mode 100644 -index 0000000..4d41be7 ---- /dev/null -+++ b/tests/sparse04.at -@@ -0,0 +1,47 @@ -+# Process this file with autom4te to create testsuite. -*- Autotest -*- -+# -+# Test suite for GNU tar. -+# Copyright (C) 2010 Free Software Foundation, Inc. -+# -+# This program 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. -+# -+# This program 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, write to the Free Software -+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -+# 02110-1301, USA. -+ -+AT_SETUP([storing long sparse file names]) -+AT_KEYWORDS([sparse sparse04]) -+ -+# Description: Tar versions from 1.15.92 to 1.25 would incorrectly -+# store sparse file names longer than 100 characters in pax mode. -+# Namely, the `path' keyword of the produced PAX header would contain the -+# crafted name of the header itself, instead of that of the file. -+# Reported by: Kamil Dudka -+# References: <201011250026.44908.kdudka@redhat.com>, -+# http://lists.gnu.org/archive/html/bug-tar/2010-11/msg00099.html -+ -+m4_define([NAME_111], -+ [123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960]) -+ -+AT_TAR_CHECK([ -+genfile --sparse --file NAME_111 --block-size 512 8M A || AT_SKIP_TEST -+tar -c --sparse --posix NAME_111 | tar t -+], -+[0], -+[NAME_111 -+], -+[], -+[], -+[], -+[pax]) -+ -+AT_CLEANUP -diff --git a/tests/testsuite.at b/tests/testsuite.at -index d18b16e..6f06417 100644 ---- a/tests/testsuite.at -+++ b/tests/testsuite.at -@@ -223,6 +223,7 @@ m4_include([shortrec.at]) - m4_include([sparse01.at]) - m4_include([sparse02.at]) - m4_include([sparse03.at]) -+m4_include([sparse04.at]) - m4_include([sparsemv.at]) - m4_include([spmvp00.at]) - m4_include([spmvp01.at]) --- -1.7.3.2 - diff --git a/tar.spec b/tar.spec index 07716e2..7da2534 100644 --- a/tar.spec +++ b/tar.spec @@ -4,8 +4,8 @@ Summary: A GNU file archiving program Name: tar Epoch: 2 -Version: 1.25 -Release: 6%{?dist} +Version: 1.26 +Release: 1%{?dist} License: GPLv3+ Group: Applications/Archiving URL: http://www.gnu.org/software/tar/ @@ -30,10 +30,6 @@ Patch5: tar-1.22-atime-rofs.patch Patch6: tar-1.23-oldarchive.patch #temporarily disable sigpipe.at patch (fails at build in koji, passes manually) Patch7: tar-sigpipe.patch -#fix failure with --one-file-system and --listed-incremental when archiving / (#654718) -Patch8: tar-1.25-listedincremental.patch -#Correctly store long sparse file names in PAX archives (#656834) -Patch9: tar-1.25-sparse-names.patch BuildRequires: autoconf automake gzip texinfo gettext libacl-devel gawk rsh %if %{WITH_SELINUX} BuildRequires: libselinux-devel @@ -63,8 +59,6 @@ the rmt package. %patch5 -p1 -b .rofs %patch6 -p1 -b .oldarchive %patch7 -p1 -b .fail -%patch8 -p1 -b .listed -%patch9 -p1 -b .sparse autoreconf @@ -126,6 +120,8 @@ fi %{_infodir}/tar.info* %changelog +* 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