spec/patches: little bit of reorganization

* re-create patches against latest release (to avoid fuzzy offset warnings
  during patching)
* remove old xattr patch (up2date upstream patch will be added in next
  commit)
* remove some old patches which are not needed against 1.26 tarball now
* add more verbose comments for patches

Version: 2:1.26-17
This commit is contained in:
Pavel Raiskup 2013-02-19 09:30:08 +01:00
parent 4f727cea9d
commit 98b687cc8b
10 changed files with 161 additions and 7173 deletions

View File

@ -1,7 +1,8 @@
diff -ruNp tar-1.22.orig/src/list.c tar-1.22/src/list.c
--- tar-1.22.orig/src/list.c 2008-10-30 12:10:04.000000000 +0100
+++ tar-1.22/src/list.c 2009-03-06 00:03:05.925105425 +0100
@@ -138,6 +138,14 @@ read_and (void (*do_something) (void))
diff --git a/src/list.c b/src/list.c
index cf2de09..f4e6e0a 100644
--- a/src/list.c
+++ b/src/list.c
@@ -212,6 +212,14 @@ read_and (void (*do_something) (void))
if (!ignore_zeros_option)
{
@ -16,7 +17,7 @@ diff -ruNp tar-1.22.orig/src/list.c tar-1.22/src/list.c
char buf[UINTMAX_STRSIZE_BOUND];
status = read_header (&current_header, &current_stat_info,
@@ -147,6 +155,9 @@ read_and (void (*do_something) (void))
@@ -221,6 +229,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)));

View File

@ -1,6 +1,8 @@
--- tar-1.15.1/src/system.c.vfatTruncate 2004-09-06 07:31:00.000000000 -0400
+++ tar-1.15.1/src/system.c 2006-02-03 14:40:51.000000000 -0500
@@ -272,8 +272,25 @@
diff --git a/src/system.c b/src/system.c
index ba4ac2d..ea88cd6 100644
--- a/src/system.c
+++ b/src/system.c
@@ -231,8 +231,25 @@ sys_compare_links (struct stat *link_data, struct stat *stat_data)
int
sys_truncate (int fd)
{

View File

@ -1,6 +1,8 @@
--- tar-1.17/doc/tar.texi.wildcards 2007-06-28 13:23:46.000000000 +0200
+++ tar-1.17/doc/tar.texi 2007-06-28 13:23:46.000000000 +0200
@@ -6871,7 +6871,7 @@ The following table summarizes pattern-m
diff --git a/doc/tar.texi b/doc/tar.texi
index db8f986..d70d113 100644
--- a/doc/tar.texi
+++ b/doc/tar.texi
@@ -7597,7 +7597,7 @@ The following table summarizes pattern-matching default values:
@multitable @columnfractions .3 .7
@headitem Members @tab Default settings
@ -9,7 +11,7 @@
@item Exclusion @tab @option{--wildcards --no-anchored --wildcards-match-slash}
@end multitable
@@ -10666,6 +10666,9 @@ version of this document is available at
@@ -12038,6 +12038,9 @@ version of this document is available at
@table @asis
@item Use of globbing patterns when listing and extracting.
@ -19,48 +21,11 @@
Previous versions of GNU tar assumed shell-style globbing when
extracting from or listing an archive. For example:
--- tar-1.17/src/tar.c.wildcards 2007-06-28 13:23:46.000000000 +0200
+++ tar-1.17/src/tar.c 2007-06-28 13:23:46.000000000 +0200
@@ -686,7 +686,7 @@ static struct argp_option options[] = {
{"no-ignore-case", NO_IGNORE_CASE_OPTION, 0, 0,
N_("case sensitive matching (default)"), GRID+1 },
{"wildcards", WILDCARDS_OPTION, 0, 0,
- N_("use wildcards (default for exclusion)"), GRID+1 },
+ N_("use wildcards (default)"), GRID+1 },
{"no-wildcards", NO_WILDCARDS_OPTION, 0, 0,
N_("verbatim string matching"), GRID+1 },
{"no-wildcards-match-slash", NO_WILDCARDS_MATCH_SLASH_OPTION, 0, 0,
@@ -780,8 +780,7 @@ ARGMATCH_VERIFY (atime_preserve_args, at
/* Wildcard matching settings */
enum wildcards
{
- default_wildcards, /* For exclusion == enable_wildcards,
- for inclusion == disable_wildcards */
+ default_wildcards, /* enable_wildcards */
disable_wildcards,
enable_wildcards
};
@@ -809,7 +808,7 @@ struct tar_args /* Variables used
| recursion_option)
#define MAKE_INCL_OPTIONS(args) \
- ((((args)->wildcards == enable_wildcards) ? EXCLUDE_WILDCARDS : 0) \
+ ((((args)->wildcards != disable_wildcards) ? EXCLUDE_WILDCARDS : 0) \
| (args)->include_anchored \
| (args)->matching_flags \
| recursion_option)
@@ -2126,7 +2125,7 @@ decode_options (int argc, char **argv)
/* Warn about implicit use of the wildcards in command line arguments.
See TODO */
- warn_regex_usage = args.wildcards == default_wildcards;
+ warn_regex_usage = 0; /* args.wildcards == default_wildcards; */
/* Derive option values and check option consistency. */
--- tar-1.17/src/names.c.wildcards 2007-04-03 14:17:13.000000000 +0200
+++ tar-1.17/src/names.c 2007-06-28 13:30:48.000000000 +0200
@@ -812,10 +812,7 @@ collect_and_sort_names (void)
diff --git a/src/names.c b/src/names.c
index ba4d509..3911f8c 100644
--- a/src/names.c
+++ b/src/names.c
@@ -966,10 +966,7 @@ collect_and_sort_names (void)
if (name->found_count || name->directory)
continue;
@ -72,9 +37,51 @@
chdir_do (name->change_dir);
if (name->name[0] == 0)
diff -urNp tar-1.23-orig/tests/exclude01.at tar-1.23/tests/exclude01.at
--- tar-1.23-orig/tests/exclude01.at 2010-01-26 12:30:20.000000000 +0100
+++ tar-1.23/tests/exclude01.at 2010-03-12 14:42:31.000000000 +0100
diff --git a/src/tar.c b/src/tar.c
index 928cfdd..22d3db1 100644
--- a/src/tar.c
+++ b/src/tar.c
@@ -722,7 +722,7 @@ static struct argp_option options[] = {
{"no-ignore-case", NO_IGNORE_CASE_OPTION, 0, 0,
N_("case sensitive matching (default)"), GRID+1 },
{"wildcards", WILDCARDS_OPTION, 0, 0,
- N_("use wildcards (default for exclusion)"), GRID+1 },
+ N_("use wildcards (default)"), GRID+1 },
{"no-wildcards", NO_WILDCARDS_OPTION, 0, 0,
N_("verbatim string matching"), GRID+1 },
{"no-wildcards-match-slash", NO_WILDCARDS_MATCH_SLASH_OPTION, 0, 0,
@@ -815,8 +815,7 @@ ARGMATCH_VERIFY (atime_preserve_args, atime_preserve_types);
/* Wildcard matching settings */
enum wildcards
{
- default_wildcards, /* For exclusion == enable_wildcards,
- for inclusion == disable_wildcards */
+ default_wildcards, /* enable_wildcards */
disable_wildcards,
enable_wildcards
};
@@ -847,7 +846,7 @@ struct tar_args /* Variables used during option parsing */
| recursion_option)
#define MAKE_INCL_OPTIONS(args) \
- ((((args)->wildcards == enable_wildcards) ? EXCLUDE_WILDCARDS : 0) \
+ ((((args)->wildcards != disable_wildcards) ? EXCLUDE_WILDCARDS : 0) \
| (args)->include_anchored \
| (args)->matching_flags \
| recursion_option)
@@ -2347,7 +2346,7 @@ decode_options (int argc, char **argv)
/* Warn about implicit use of the wildcards in command line arguments.
See TODO */
- warn_regex_usage = args.wildcards == default_wildcards;
+ warn_regex_usage = 0; /* args.wildcards == default_wildcards; */
/* Derive option values and check option consistency. */
diff --git a/tests/exclude01.at b/tests/exclude01.at
index 778a7fc..bd65ae0 100644
--- a/tests/exclude01.at
+++ b/tests/exclude01.at
@@ -59,6 +59,7 @@ testdir/dir2/file2
testdir/dir3/
NEXT

View File

@ -1,10 +1,11 @@
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
@@ -1827,7 +1827,8 @@ dump_file0 (struct tar_stat_info *st, co
diff --git a/src/create.c b/src/create.c
index 43b5a4c..f98cbb5 100644
--- a/src/create.c
+++ b/src/create.c
@@ -1798,7 +1798,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)
&& 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 )

View File

@ -1,8 +1,8 @@
diff --git a/doc/tar.texi b/doc/tar.texi
index 567745b..38c8bae 100644
index d70d113..a0e3d5f 100644
--- a/doc/tar.texi
+++ b/doc/tar.texi
@@ -1994,6 +1994,7 @@ The other operations of @command{tar} (@option{--list},
@@ -1881,6 +1881,7 @@ The other operations of @command{tar} (@option{--list},
@option{--extract}, @option{--compare}, and @option{--update})
will act on the entire contents of the archive.
@ -10,7 +10,7 @@ index 567745b..38c8bae 100644
@cindex exit status
@cindex return status
Besides successful exits, @GNUTAR{} may fail for
@@ -2932,7 +2933,10 @@ when extracting files from an archive.
@@ -2815,7 +2816,10 @@ when extracting files from an archive.
@item --keep-old-files
@itemx -k
@ -22,7 +22,7 @@ index 567745b..38c8bae 100644
@xref{Keep Old Files}.
@opsummary{label}
@@ -3404,6 +3408,20 @@ the archive creation operations it instructs @command{tar} to list the
@@ -3268,6 +3272,20 @@ the archive creation operations it instructs @command{tar} to list the
member names stored in the archive, as opposed to the actual file
names. @xref{listing member and file names}.
@ -43,7 +43,7 @@ index 567745b..38c8bae 100644
@opsummary{sparse}
@item --sparse
@itemx -S
@@ -4589,11 +4607,11 @@ in the archive; the most recently archived members will be extracted
@@ -4443,11 +4461,11 @@ in the archive; the most recently archived members will be extracted
last. Additionally, an extracted member will @emph{replace} a file of
the same name which existed in the directory already, and @command{tar}
will not prompt you about this@footnote{Unless you give it
@ -60,7 +60,7 @@ index 567745b..38c8bae 100644
@cindex extracting @var{n}th copy of the file
@xopindex{occurrence, described}
@@ -5269,10 +5287,25 @@ such a directory, use the @option{--no-overwrite-dir} option.
@@ -5123,10 +5141,25 @@ such a directory, use the @option{--no-overwrite-dir} option.
@cindex Overwriting old files, prevention
@xopindex{keep-old-files, introduced}
To be even more cautious and prevent existing files from being replaced, use
@ -90,7 +90,7 @@ index 567745b..38c8bae 100644
@xopindex{overwrite, introduced}
To be more aggressive about altering existing files, use the
@@ -5338,16 +5371,24 @@ archive, but remove other files before extracting.
@@ -5192,16 +5225,24 @@ archive, but remove other files before extracting.
@node Keep Old Files
@unnumberedsubsubsec Keep Old Files
@ -122,10 +122,10 @@ index 567745b..38c8bae 100644
@node Keep Newer Files
diff --git a/src/common.h b/src/common.h
index 4cf1459..b34aef0 100644
index 0b9bd7a..2409413 100644
--- a/src/common.h
+++ b/src/common.h
@@ -187,6 +187,7 @@ enum old_files
@@ -182,6 +182,7 @@ enum old_files
OVERWRITE_OLD_FILES, /* --overwrite */
UNLINK_FIRST_OLD_FILES, /* --unlink-first */
KEEP_OLD_FILES, /* --keep-old-files */
@ -133,14 +133,11 @@ index 4cf1459..b34aef0 100644
KEEP_NEWER_FILES /* --keep-newer-files */
};
GLOBAL enum old_files old_files_option;
@@ -830,13 +831,15 @@ void checkpoint_run (bool do_write);
@@ -807,11 +808,12 @@ void checkpoint_run (bool do_write);
#define WARN_UNKNOWN_KEYWORD 0x00020000
#define WARN_XDEV 0x00040000
#define WARN_DECOMPRESS_PROGRAM 0x00080000
+#define WARN_EXISTING_FILE 0x00100000
+
#define WARN_XATTR_WRITE 0x00200000
/* The warnings composing WARN_VERBOSE_WARNINGS are enabled by default
in verbose mode */
@ -151,10 +148,10 @@ index 4cf1459..b34aef0 100644
void set_warning_option (const char *arg);
diff --git a/src/extract.c b/src/extract.c
index 8a7a6ad..87b383a 100644
index aaea56e..662ea0b 100644
--- a/src/extract.c
+++ b/src/extract.c
@@ -696,9 +696,14 @@ maybe_recoverable (char *file_name, bool regular, bool *interdir_made)
@@ -639,9 +639,14 @@ maybe_recoverable (char *file_name, bool regular, bool *interdir_made)
switch (old_files_option)
{
@ -171,10 +168,10 @@ index 8a7a6ad..87b383a 100644
if (file_newer_p (file_name, stp, &current_stat_info))
break;
diff --git a/src/tar.c b/src/tar.c
index 0ed1717..e244808 100644
index 7b62996..7a673e0 100644
--- a/src/tar.c
+++ b/src/tar.c
@@ -334,6 +334,7 @@ enum
@@ -328,6 +328,7 @@ enum
SHOW_DEFAULTS_OPTION,
SHOW_OMITTED_DIRS_OPTION,
SHOW_TRANSFORMED_NAMES_OPTION,
@ -182,7 +179,7 @@ index 0ed1717..e244808 100644
SPARSE_VERSION_OPTION,
STRIP_COMPONENTS_OPTION,
SUFFIX_OPTION,
@@ -461,7 +462,11 @@ static struct argp_option options[] = {
@@ -452,7 +453,11 @@ static struct argp_option options[] = {
{"remove-files", REMOVE_FILES_OPTION, 0, 0,
N_("remove files after adding them to the archive"), GRID+1 },
{"keep-old-files", 'k', 0, 0,
@ -195,7 +192,7 @@ index 0ed1717..e244808 100644
{"keep-newer-files", KEEP_NEWER_FILES_OPTION, 0, 0,
N_("don't replace existing files that are newer than their archive copies"), GRID+1 },
{"overwrite", OVERWRITE_OPTION, 0, 0,
@@ -1649,6 +1654,10 @@ parse_opt (int key, char *arg, struct argp_state *state)
@@ -1618,6 +1623,10 @@ parse_opt (int key, char *arg, struct argp_state *state)
sparse_option = true;
break;
@ -207,7 +204,7 @@ index 0ed1717..e244808 100644
sparse_option = true;
{
diff --git a/src/warning.c b/src/warning.c
index b0b9884..f00a842 100644
index 5d1bcab..ee9d684 100644
--- a/src/warning.c
+++ b/src/warning.c
@@ -42,6 +42,7 @@ static char const *const warning_args[] = {
@ -215,19 +212,21 @@ index b0b9884..f00a842 100644
"xdev",
"decompress-program",
+ "existing-file",
"xattr-write",
NULL
};
@@ -68,6 +69,7 @@ static int warning_types[] = {
@@ -66,7 +67,8 @@ static int warning_types[] = {
WARN_UNKNOWN_CAST,
WARN_UNKNOWN_KEYWORD,
WARN_XDEV,
WARN_DECOMPRESS_PROGRAM,
- WARN_DECOMPRESS_PROGRAM
+ WARN_DECOMPRESS_PROGRAM,
+ WARN_EXISTING_FILE,
WARN_XATTR_WRITE
};
ARGMATCH_VERIFY (warning_args, warning_types);
diff --git a/tests/Makefile.am b/tests/Makefile.am
index b3c24dc..cbdda29 100644
index 119f1f3..3d78ea2 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -77,6 +77,8 @@ TESTSUITE_AT = \
@ -356,10 +355,10 @@ index 0000000..43c4c50
+AT_CLEANUP
+
diff --git a/tests/testsuite.at b/tests/testsuite.at
index 3f02a52..4d59532 100644
index d1dab36..e43653e 100644
--- a/tests/testsuite.at
+++ b/tests/testsuite.at
@@ -231,6 +231,9 @@ m4_include([extrac15.at])
@@ -166,6 +166,9 @@ m4_include([extrac15.at])
m4_include([extrac16.at])
m4_include([extrac17.at])

View File

@ -1,7 +1,8 @@
diff -urNp tar-1.26-orig/gnu/stdio.in.h tar-1.26/gnu/stdio.in.h
--- tar-1.26-orig/gnu/stdio.in.h
+++ tar-1.26/gnu/stdio.in.h
@@ -139,7 +139,9 @@ _GL_WARN_ON_USE (fflush, "fflush is not
diff --git a/gnu/stdio.in.h b/gnu/stdio.in.h
index 465a9c9..b703457 100644
--- a/gnu/stdio.in.h
+++ b/gnu/stdio.in.h
@@ -164,7 +164,9 @@ _GL_WARN_ON_USE (fflush, "fflush is not always POSIX compliant - "
so any use of gets warrants an unconditional warning. Assume it is
always declared, since it is required by C89. */
#undef gets

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,12 +0,0 @@
diff -urNp tar-1.24-orig/tests/testsuite.at tar-1.24/tests/testsuite.at
--- tar-1.24-orig/tests/testsuite.at 2010-10-27 18:00:59.792862595 +0200
+++ tar-1.24/tests/testsuite.at 2010-10-27 18:02:06.441873697 +0200
@@ -245,7 +245,7 @@ m4_include([remfiles01.at])
m4_include([remfiles02.at])
m4_include([remfiles03.at])
-m4_include([sigpipe.at])
+dnl m4_include([sigpipe.at])
m4_include([star/gtarfail.at])
m4_include([star/gtarfail2.at])

View File

@ -9,38 +9,58 @@ Release: 17%{?dist}
License: GPLv3+
Group: Applications/Archiving
URL: http://www.gnu.org/software/tar/
Source0: ftp://ftp.gnu.org/pub/gnu/tar/tar-%{version}.tar.xz
Source1: ftp://ftp.gnu.org/pub/gnu/tar/tar-%{version}.tar.xz.sig
#Manpage for tar and gtar, a bit modified help2man generated manpage
# Manpage for tar and gtar, a bit modified help2man generated manpage
Source2: tar.1
#Stop issuing lone zero block warnings
# Stop issuing lone zero block warnings.
# ~> https://bugzilla.redhat.com/show_bug.cgi?id=135601
# ~> downstream
Patch1: tar-1.14-loneZeroWarning.patch
#Fix extracting sparse files to a filesystem like vfat,
#when ftruncate may fail to grow the size of a file.(#179507)
# Fix extracting sparse files to a file system like vfat, when ftruncate may fail
# to grow the size of a file.
# ~> #179507,
# ~> http://lists.gnu.org/archive/html/bug-tar/2006-02/msg00000.html
# ~> still downtream (do we need this now? ftruncate & vfat works is now OK)
Patch2: tar-1.15.1-vfatTruncate.patch
#change inclusion defaults of tar to "--wildcards --anchored
#--wildcards-match-slash" for compatibility reasons (#206841)
#Add support for selinux, acl and extended attributes
#Patch3: tar-1.24-xattrs.patch
Patch4: tar-1.17-wildcards.patch
#ignore errors from setting utime() for source file
#on read-only filesystem (#500742)
Patch5: tar-1.22-atime-rofs.patch
#oldarchive option was not working(#594044)
Patch6: tar-1.23-oldarchive.patch
#temporarily disable sigpipe.at patch (fails at build in koji, passes manually)
Patch7: tar-sigpipe.patch
#partially revert upstream commit 4bde4f3 (#717684)
Patch8: tar-1.24-openat-partial-revert.patch
# fix for bad cooperation of -C and -u options (#688567)
Patch9: tar-1.26-update-with-change-directory.patch
# fix rawhide buildfailure with undefined gets
Patch10: tar-1.26-stdio.in.patch
# Prepare gnulib for xattrs and apply xattrs & acls & selinux (#850291)
Patch11: tar-1.26-xattrs-gnulib-prepare.patch
Patch12: tar-1.26-xattrs.patch
# fix regression with --keep-old-files option (#799252)
Patch13: tar-1.26-add-skip-old-files-option.patch
# Change inclusion defaults of tar to
# "--wildcards --anchored --wildcards-match-slash" for compatibility reasons.
# ~> #206841
# ~> downstream (compatibility)
Patch3: tar-1.17-wildcards.patch
# Ignore errors from setting utime() for source file on read-only file-system.
# ~> #500742
# ~> http://lists.gnu.org/archive/html/bug-tar/2009-06/msg00016.html
# ~> still downstream
Patch4: tar-1.22-atime-rofs.patch
# The --old-archive option was not working.
# ~> #594044
# ~> http://lists.gnu.org/archive/html/bug-tar/2010-05/msg00015.html
# ~> upstream (2a61a37)
Patch5: tar-1.23-oldarchive.patch
# Fix for bad cooperation of -C and -u options.
# ~> #688567
# ~> http://lists.gnu.org/archive/html/bug-tar/2012-02/msg00007.html
# ~> still downstream
Patch6: tar-1.26-update-with-change-directory.patch
# Fix rawhide build failure with undefined gets.
# ~> upstream (gnulib)
Patch7: tar-1.26-stdio.in.patch
# Fix regression with --keep-old-files option.
# ~> #799252
# ~> http://lists.gnu.org/archive/html/bug-tar/2011-11/msg00043.html
# ~> upstream (7a5a3708c)
Patch8: tar-1.26-add-skip-old-files-option.patch
# run "make check" by default
%bcond_without check
@ -75,16 +95,12 @@ the rmt package.
%setup -q
%patch1 -p1 -b .loneZeroWarning
%patch2 -p1 -b .vfatTruncate
%patch4 -p1 -b .wildcards
%patch5 -p1 -b .rofs
%patch6 -p1 -b .oldarchive
%patch7 -p1 -b .fail
%patch8 -p1 -b .openat
%patch9 -p1 -b .update_and_changedir
%patch10 -p1 -b .gets %{?_rawbuild}
%patch11 -p1 -b .xattrs_gnulib_prep
%patch12 -p1 -b .xattrs2
%patch13 -p1 -b .skip-old-files
%patch3 -p1 -b .wildcards
%patch4 -p1 -b .rofs
%patch5 -p1 -b .oldarchive
%patch6 -p1 -b .update_and_changedir
%patch7 -p1 -b .gets %{?_rawbuild}
%patch8 -p1 -b .skip-old-files
autoreconf -v
@ -150,6 +166,10 @@ fi
* Mon Feb 18 2013 Pavel Raiskup <praiskup@redhat.com> - 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)
* Fri Feb 01 2013 Pavel Raiskup <praiskup@redhat.com> - 2:1.26-16
- make the info documentation more visible in manpage (#903666)