diff --git a/.gitignore b/.gitignore index e892d7d..013a3aa 100644 --- a/.gitignore +++ b/.gitignore @@ -1,12 +1,2 @@ -tar-1.23.tar.bz2 -tar-1.23.tar.bz2.sig -/tar-1.24.tar.xz -/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 -/tar-1.27.tar.xz -/tar-1.27.tar.xz.sig -/tar-1.27.1.tar.xz -/tar-1.27.1.tar.xz.sig +/tar-1.28.tar.xz +/tar-1.28.tar.xz.sig diff --git a/sources b/sources index bf55126..da0b8d3 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -e0382a4064e09a4943f3adeff1435978 tar-1.27.1.tar.xz -575d1ba7ddcec1bbecd2dd9556b3848e tar-1.27.1.tar.xz.sig +49b6306167724fe48f419a33a5beb857 tar-1.28.tar.xz +a84d018c092514a65ba1c270a68826c3 tar-1.28.tar.xz.sig diff --git a/tar-1.22-atime-rofs.patch b/tar-1.22-atime-rofs.patch deleted file mode 100644 index c61cbc4..0000000 --- a/tar-1.22-atime-rofs.patch +++ /dev/null @@ -1,14 +0,0 @@ -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) -- && set_file_atime (fd, parentfd, name, st->atime) != 0) -+ && set_file_atime (fd, parentfd, name, st->atime) != 0 -+ && errno != EROFS ) - utime_error (p); - } - diff --git a/tar-1.26-xattrs-include-implies-xattrs.patch b/tar-1.26-xattrs-include-implies-xattrs.patch deleted file mode 100644 index 77db409..0000000 --- a/tar-1.26-xattrs-include-implies-xattrs.patch +++ /dev/null @@ -1,39 +0,0 @@ -diff --git a/src/tar.c b/src/tar.c -index e244808..18277e4 100644 ---- a/src/tar.c -+++ b/src/tar.c -@@ -162,6 +162,14 @@ set_archive_format (char const *name) - archive_format = p->fmt; - } - -+static void -+set_xattr_option (int value) -+{ -+ if (value == 1) -+ set_archive_format ("posix"); -+ xattrs_option = value; -+} -+ - const char * - archive_format_string (enum archive_format fmt) - { -@@ -2141,16 +2149,16 @@ parse_opt (int key, char *arg, struct argp_state *state) - break; - - case XATTR_OPTION: -- set_archive_format ("posix"); -- xattrs_option = 1; -+ set_xattr_option (1); - break; - - case NO_XATTR_OPTION: -- xattrs_option = -1; -+ set_xattr_option (-1); - break; - - case XATTR_INCLUDE: - case XATTR_EXCLUDE: -+ set_xattr_option (1); - xattrs_mask_add (arg, (key == XATTR_INCLUDE)); - break; - diff --git a/tar-1.26-xattrs-printing.patch b/tar-1.26-xattrs-printing.patch deleted file mode 100644 index ce872ce..0000000 --- a/tar-1.26-xattrs-printing.patch +++ /dev/null @@ -1,36 +0,0 @@ -diff --git a/src/xattrs.c b/src/xattrs.c -index 5a4bf72..bdf6ba0 100644 ---- a/src/xattrs.c -+++ b/src/xattrs.c -@@ -693,7 +693,7 @@ xattrs_print_char (struct tar_stat_info const *st, char *output) - if (selinux_context_option > 0 && st->cntx_name) - *output = '.'; - -- if (acls_option && (st->acls_a_len || st->acls_d_len)) -+ if (acls_option > 0 && (st->acls_a_len || st->acls_d_len)) - *output = '+'; - } - -@@ -704,11 +704,11 @@ xattrs_print (struct tar_stat_info const *st) - return; - - /* selinux */ -- if (selinux_context_option && st->cntx_name) -+ if (selinux_context_option > 0 && st->cntx_name) - fprintf (stdlis, " s: %s\n", st->cntx_name); - - /* acls */ -- if (acls_option && (st->acls_a_len || st->acls_d_len)) -+ if (acls_option > 0 && (st->acls_a_len || st->acls_d_len)) - { - fprintf (stdlis, " a: "); - acls_one_line ("", ',', st->acls_a_ptr, st->acls_a_len); -@@ -717,7 +717,7 @@ xattrs_print (struct tar_stat_info const *st) - } - - /* xattrs */ -- if (xattrs_option && st->xattr_map_size) -+ if (xattrs_option > 0 && st->xattr_map_size) - { - int i; - diff --git a/tar-1.27.1-T-eternal-loop.patch b/tar-1.27.1-T-eternal-loop.patch deleted file mode 100644 index ffc5b88..0000000 --- a/tar-1.27.1-T-eternal-loop.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/src/names.c b/src/names.c -index e3bbfb6..8f238ba 100644 ---- a/src/names.c -+++ b/src/names.c -@@ -439,7 +439,7 @@ handle_option (const char *str) - int i; - - while (*str && isspace (*str)) -- ; -+ ++str; - if (*str != '-') - return 1; - diff --git a/tar-1.27.1-default-acls.patch b/tar-1.27.1-default-acls.patch deleted file mode 100644 index 7cb1c61..0000000 --- a/tar-1.27.1-default-acls.patch +++ /dev/null @@ -1,84 +0,0 @@ -diff --git a/configure.ac b/configure.ac -index c9d1250..dbf991a 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -79,7 +79,8 @@ AC_ARG_WITH([posix-acls], - if test "x$with_posix_acls" != "xno"; then - AC_CHECK_HEADERS(sys/acl.h,, [with_posix_acls=no]) - for tar_acl_func in acl_get_file acl_get_fd acl_set_file acl_set_fd \ -- acl_to_text acl_from_text; do \ -+ acl_to_text acl_from_text acl_delete_def_file \ -+ acl_free; do \ - test "x$with_posix_acls" = xno && break - AC_SEARCH_LIBS([$tar_acl_func], [acl pacl], [], [with_posix_acls=no]) - done -diff --git a/src/xattrs.c b/src/xattrs.c -index 3137e9a..6ec34ce 100644 ---- a/src/xattrs.c -+++ b/src/xattrs.c -@@ -61,6 +61,7 @@ static struct - static acl_t acl_get_file_at (int, const char *, acl_type_t); - static int acl_set_file_at (int, const char *, acl_type_t, acl_t); - static int file_has_acl_at (int, char const *, struct stat const *); -+static int acl_delete_def_file_at (int, char const *); - - /* acl_get_file_at */ - #define AT_FUNC_NAME acl_get_file_at -@@ -88,6 +89,17 @@ static int file_has_acl_at (int, char const *, struct stat const *); - #undef AT_FUNC_POST_FILE_PARAM_DECLS - #undef AT_FUNC_POST_FILE_ARGS - -+/* acl_delete_def_file_at */ -+#define AT_FUNC_NAME acl_delete_def_file_at -+#define AT_FUNC_F1 acl_delete_def_file -+#define AT_FUNC_POST_FILE_PARAM_DECLS -+#define AT_FUNC_POST_FILE_ARGS -+#include "at-func.c" -+#undef AT_FUNC_NAME -+#undef AT_FUNC_F1 -+#undef AT_FUNC_POST_FILE_PARAM_DECLS -+#undef AT_FUNC_POST_FILE_ARGS -+ - /* gnulib file_has_acl_at */ - #define AT_FUNC_NAME file_has_acl_at - #define AT_FUNC_F1 file_has_acl -@@ -187,7 +199,8 @@ fixup_extra_acl_fields (char *ptr) - return ptr; - } - --/* "system.posix_acl_access" */ -+/* Set the "system.posix_acl_access/system.posix_acl_default" extended -+ attribute. Called only when acls_option > 0. */ - static void - xattrs__acls_set (struct tar_stat_info const *st, - char const *file_name, int type, -@@ -199,15 +212,23 @@ xattrs__acls_set (struct tar_stat_info const *st, - { - /* assert (strlen (ptr) == len); */ - ptr = fixup_extra_acl_fields (ptr); -- - acl = acl_from_text (ptr); -- acls_option = 1; - } -- else if (acls_option > 0) -+ else if (def) -+ { -+ /* No "default" IEEE 1003.1e ACL set for directory. At this moment, -+ FILE_NAME may already have inherited default acls from parent -+ directory; clean them up. */ -+ if (acl_delete_def_file_at (chdir_fd, file_name)) -+ WARNOPT (WARN_XATTR_WRITE, -+ (0, errno, -+ _("acl_delete_def_file_at: Cannot drop default POSIX ACLs " -+ "for file '%s'"), -+ file_name)); -+ return; -+ } -+ else - acl = perms2acl (st->stat.st_mode); -- else -- return; /* don't call acl functions unless we first hit an ACL, or -- --acls was passed explicitly */ - - if (!acl) - { diff --git a/tar-1.27.1-dont-read-write-terminal.patch b/tar-1.27.1-dont-read-write-terminal.patch deleted file mode 100644 index 0673f1c..0000000 --- a/tar-1.27.1-dont-read-write-terminal.patch +++ /dev/null @@ -1,56 +0,0 @@ -diff --git a/NEWS b/NEWS -index 1a264b0..c4dd8c6 100644 ---- a/NEWS -+++ b/NEWS -@@ -12,6 +12,8 @@ version 1.27.1 - Sergey Poznyakoff, 2013-11-17 - - * Fix extracting sparse members from star archives. - -+* Tar refuses to read input from and write output to a tty device. -+ - - version 1.27 - Sergey Poznyakoff, 2013-10-05 - -diff --git a/src/buffer.c b/src/buffer.c -index 4b44eaf..5ec8d31 100644 ---- a/src/buffer.c -+++ b/src/buffer.c -@@ -633,6 +633,22 @@ init_buffer (void) - record_end = record_start + blocking_factor; - } - -+static void -+check_tty (enum access_mode mode) -+{ -+ /* Refuse to read archive from and write it to a tty. */ -+ if (strcmp (archive_name_array[0], "-") == 0 -+ && isatty (mode == ACCESS_READ ? STDIN_FILENO : STDOUT_FILENO)) -+ { -+ FATAL_ERROR ((0, 0, -+ mode == ACCESS_READ -+ ? _("Refusing to read archive contents from terminal " -+ "(missing -f option?)") -+ : _("Refusing to write archive contents to terminal " -+ "(missing -f option?)"))); -+ } -+} -+ - /* Open an archive file. The argument specifies whether we are - reading or writing, or both. */ - static void -@@ -653,6 +669,7 @@ _open_archive (enum access_mode wanted_access) - - /* When updating the archive, we start with reading. */ - access_mode = wanted_access == ACCESS_UPDATE ? ACCESS_READ : wanted_access; -+ check_tty (access_mode); - - read_full_records = read_full_records_option; - -@@ -696,7 +713,6 @@ _open_archive (enum access_mode wanted_access) - enum compress_type type; - - archive = STDIN_FILENO; -- - type = check_compressed_archive (&shortfile); - if (type != ct_tar && type != ct_none) - FATAL_ERROR ((0, 0, diff --git a/tar-1.28-atime-rofs.patch b/tar-1.28-atime-rofs.patch new file mode 100644 index 0000000..f32114a --- /dev/null +++ b/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/tar-1.27.1-big-sparse-listing.patch b/tar-1.28-big-sparse-listing.patch similarity index 76% rename from tar-1.27.1-big-sparse-listing.patch rename to tar-1.28-big-sparse-listing.patch index 08dc421..3a14d43 100644 --- a/tar-1.27.1-big-sparse-listing.patch +++ b/tar-1.28-big-sparse-listing.patch @@ -1,8 +1,26 @@ +From 6400976234810f4de138ee692756072f5beaa64d Mon Sep 17 00:00:00 2001 +From: Pavel Raiskup +Date: Mon, 28 Jul 2014 08:18:53 +0200 +Subject: [PATCH 9/9] --posix & big (effective) sparse files can not be listed + +Upstram bugreports (still downstream): +http://www.mail-archive.com/bug-tar%40gnu.org/msg03909.html +http://www.mail-archive.com/bug-tar@gnu.org/msg04489.html + +Related: #916995 + +--- + src/list.c | 1 - + src/sparse.c | 4 ++-- + src/tar.h | 4 ++++ + src/xheader.c | 28 +++++++++++++++++++++++++++- + 4 files changed, 33 insertions(+), 4 deletions(-) + diff --git a/src/list.c b/src/list.c -index 23613f7..ef71b4f 100644 +index 0c7a740..ce9ce4b 100644 --- a/src/list.c +++ b/src/list.c -@@ -671,7 +671,6 @@ decode_header (union block *header, struct tar_stat_info *stat_info, +@@ -700,7 +700,6 @@ decode_header (union block *header, struct tar_stat_info *stat_info, } } @@ -11,7 +29,7 @@ index 23613f7..ef71b4f 100644 if (sparse_member_p (stat_info)) diff --git a/src/sparse.c b/src/sparse.c -index 250e845..8e840cf 100644 +index 53c1868..c8bec6b 100644 --- a/src/sparse.c +++ b/src/sparse.c @@ -892,7 +892,7 @@ static struct tar_sparse_optab const star_optab = { @@ -33,7 +51,7 @@ index 250e845..8e840cf 100644 by deleting GNU.sparse.map from 0.1 format: --sparse-version 0.1 --pax-option delete=GNU.sparse.map diff --git a/src/tar.h b/src/tar.h -index 70055af..5f52bd0 100644 +index 3d69399..73cd11e 100644 --- a/src/tar.h +++ b/src/tar.h @@ -327,6 +327,10 @@ struct tar_stat_info @@ -48,10 +66,10 @@ index 70055af..5f52bd0 100644 struct xattr_array *xattr_map; diff --git a/src/xheader.c b/src/xheader.c -index c8c54b6..ac7ff34 100644 +index c94c6d3..0be83a4 100644 --- a/src/xheader.c +++ b/src/xheader.c -@@ -741,6 +741,20 @@ decx (void *data, char const *keyword, char const *value, size_t size) +@@ -742,6 +742,20 @@ decx (void *data, char const *keyword, char const *value, size_t size) keyword)); } @@ -72,7 +90,7 @@ index c8c54b6..ac7ff34 100644 void xheader_decode (struct tar_stat_info *st) { -@@ -754,6 +768,11 @@ xheader_decode (struct tar_stat_info *st) +@@ -755,6 +769,11 @@ xheader_decode (struct tar_stat_info *st) continue; } run_override_list (keyword_override_list, st); @@ -84,7 +102,7 @@ index c8c54b6..ac7ff34 100644 } static void -@@ -1359,7 +1378,14 @@ sparse_size_decoder (struct tar_stat_info *st, +@@ -1360,7 +1379,14 @@ sparse_size_decoder (struct tar_stat_info *st, { uintmax_t u; if (decode_num (&u, arg, TYPE_MAXIMUM (off_t), keyword)) @@ -100,3 +118,6 @@ index c8c54b6..ac7ff34 100644 } static void +-- +1.9.3 + diff --git a/tar-1.26-docu-xattrs.patch b/tar-1.28-docu-xattrs.patch similarity index 91% rename from tar-1.26-docu-xattrs.patch rename to tar-1.28-docu-xattrs.patch index 65b316e..394c4b6 100644 --- a/tar-1.26-docu-xattrs.patch +++ b/tar-1.28-docu-xattrs.patch @@ -1,8 +1,23 @@ +From 914bb84cb71ebb63c40bc27f4d017cc0a0a39bf2 Mon Sep 17 00:00:00 2001 +From: rpm-build +Date: Mon, 28 Jul 2014 08:15:14 +0200 +Subject: [PATCH 6/9] Add documentation which was not yet pushed upstream + +Upstream bugreport: +http://lists.gnu.org/archive/html/bug-tar/2012-08/msg00012.html +http://www.mail-archive.com/bug-tar@gnu.org/msg04135.html + +Related: #996753 + +--- + doc/tar.texi | 276 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 276 insertions(+) + diff --git a/doc/tar.texi b/doc/tar.texi -index d678db9..ab8a0c8 100644 +index db79824..a000f3f 100644 --- a/doc/tar.texi +++ b/doc/tar.texi -@@ -162,6 +163,7 @@ How to Create Archives +@@ -161,6 +161,7 @@ How to Create Archives How to List Archives * list dir:: @@ -10,7 +25,7 @@ index d678db9..ab8a0c8 100644 How to Extract Members from an Archive -@@ -1492,6 +1494,7 @@ for a detailed discussion of globbing patterns and related +@@ -1491,6 +1492,7 @@ for a detailed discussion of globbing patterns and related @menu * list dir:: @@ -18,7 +33,7 @@ index d678db9..ab8a0c8 100644 @end menu @node list dir -@@ -1522,6 +1525,116 @@ drwxrwxrwx myself/user 0 1990-05-31 21:49 practice/ +@@ -1521,6 +1523,116 @@ drwxrwxrwx myself/user 0 1990-05-31 21:49 practice/ When you use a directory name as a file name argument, @command{tar} acts on all the files (including sub-directories) in that directory. @@ -135,7 +150,7 @@ index d678db9..ab8a0c8 100644 @node extract @section How to Extract Members from an Archive @cindex Extraction -@@ -2371,6 +2484,10 @@ Normally when creating an archive, @command{tar} strips an initial +@@ -2368,6 +2480,10 @@ Normally when creating an archive, @command{tar} strips an initial treats names specially if they have initial @samp{/} or internal @samp{..}. This option disables that behavior. @xref{absolute}. @@ -146,7 +161,7 @@ index d678db9..ab8a0c8 100644 @opsummary{after-date} @item --after-date -@@ -2919,6 +3036,11 @@ contents have changed (as opposed to just @option{--newer}, which will +@@ -2953,6 +3069,11 @@ contents have changed (as opposed to just @option{--newer}, which will also back up files for which any status information has changed). @xref{after}. @@ -158,7 +173,7 @@ index d678db9..ab8a0c8 100644 @opsummary{no-anchored} @item --no-anchored An exclude pattern can match any subsequence of the name's components. -@@ -3002,11 +3124,20 @@ locations. Usually @command{tar} determines automatically whether +@@ -3036,11 +3157,20 @@ locations. Usually @command{tar} determines automatically whether the archive can be seeked or not. Use this option to disable this mechanism. @@ -179,7 +194,7 @@ index d678db9..ab8a0c8 100644 @opsummary{no-wildcards} @item --no-wildcards Do not use wildcards. -@@ -3239,6 +3370,11 @@ in cases when such recognition fails. It takes effect only if the +@@ -3286,6 +3416,11 @@ in cases when such recognition fails. It takes effect only if the archive is open for reading (e.g. with @option{--list} or @option{--extract} options). @@ -191,7 +206,7 @@ index d678db9..ab8a0c8 100644 @opsummary{show-defaults} @item --show-defaults -@@ -3466,6 +3602,11 @@ Enable or disable warning messages identified by @var{keyword}. The +@@ -3541,6 +3676,11 @@ Enable or disable warning messages identified by @var{keyword}. The messages are suppressed if @var{keyword} is prefixed with @samp{no-}. @xref{warnings}. @@ -203,7 +218,7 @@ index d678db9..ab8a0c8 100644 @opsummary{wildcards} @item --wildcards Use wildcards when matching member names with patterns. -@@ -4218,6 +4359,11 @@ tar (child): trying gzip +@@ -4363,6 +4503,11 @@ failed, switched to @command{gzip}. @cindex @samp{Record size = %lu blocks}, warning message @item record-size @samp{Record size = %lu blocks} @@ -215,7 +230,7 @@ index d678db9..ab8a0c8 100644 @end table @subheading Keywords controlling incremental extraction: -@@ -8770,6 +8916,8 @@ implementation able to read @samp{ustar} archives will be able to read +@@ -8968,6 +9113,8 @@ implementation able to read @samp{ustar} archives will be able to read most @samp{posix} archives as well, with the only exception that any additional information (such as long file names etc.) will in such case be extracted as plain text files along with the files it refers to. @@ -224,7 +239,7 @@ index d678db9..ab8a0c8 100644 This archive format will be the default format for future versions of @GNUTAR{}. -@@ -9412,6 +9560,135 @@ Same as both @option{--same-permissions} and @option{--same-order}. +@@ -9607,6 +9754,135 @@ Same as both @option{--same-permissions} and @option{--same-order}. This option is deprecated, and will be removed in @GNUTAR{} version 1.23. @@ -360,3 +375,6 @@ index d678db9..ab8a0c8 100644 @end table @node Portability +-- +1.9.3 + diff --git a/tar-1.27.1-document-exclude-mistakes.patch b/tar-1.28-document-exclude-mistakes.patch similarity index 79% rename from tar-1.27.1-document-exclude-mistakes.patch rename to tar-1.28-document-exclude-mistakes.patch index e3de9b6..73f4ed3 100644 --- a/tar-1.27.1-document-exclude-mistakes.patch +++ b/tar-1.28-document-exclude-mistakes.patch @@ -1,22 +1,24 @@ -commit 2c7692bd81946100244f022fdfa47e91afd44632 (document_exclude_mistake) -Author: Pavel Raiskup -AuthorDate: Mon Mar 31 14:22:56 2014 +0200 -Commit: Pavel Raiskup -CommitDate: Mon Mar 31 14:30:02 2014 +0200 +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 - docs: document common mistake with --exclude - - The default settings of --exclude wildcard matching leads usually - to --no-wildcards-match-slash option but there is not obvious that - users should also turn --anchored option on. - - * doc/tar.texi: Describe. +.. 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 e3df0c9..395f24c 100644 +index a000f3f..2695d22 100644 --- a/doc/tar.texi +++ b/doc/tar.texi -@@ -7906,6 +7906,73 @@ The following table summarizes pattern-matching default values: +@@ -8051,6 +8051,73 @@ The following table summarizes pattern-matching default values: @item Exclusion @tab @option{--wildcards --no-anchored --wildcards-match-slash} @end multitable @@ -90,3 +92,6 @@ index e3df0c9..395f24c 100644 @node quoting styles @section Quoting Member Names +-- +1.9.3 + diff --git a/tar-1.14-loneZeroWarning.patch b/tar-1.28-loneZeroWarning.patch similarity index 65% rename from tar-1.14-loneZeroWarning.patch rename to tar-1.28-loneZeroWarning.patch index 70b20d3..c142ea3 100644 --- a/tar-1.14-loneZeroWarning.patch +++ b/tar-1.28-loneZeroWarning.patch @@ -1,8 +1,19 @@ +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 cf2de09..f4e6e0a 100644 +index b4277e0..0c7a740 100644 --- a/src/list.c +++ b/src/list.c -@@ -212,6 +212,14 @@ read_and (void (*do_something) (void)) +@@ -240,6 +240,14 @@ read_and (void (*do_something) (void)) if (!ignore_zeros_option) { @@ -17,7 +28,7 @@ index cf2de09..f4e6e0a 100644 char buf[UINTMAX_STRSIZE_BOUND]; status = read_header (¤t_header, ¤t_stat_info, -@@ -221,6 +229,9 @@ read_and (void (*do_something) (void)) +@@ -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))); @@ -27,3 +38,6 @@ index cf2de09..f4e6e0a 100644 break; } status = prev_status; +-- +1.9.3 + diff --git a/tar-1.27.1-sparse-inf-loops.patch b/tar-1.28-sparse-inf-loops.patch similarity index 85% rename from tar-1.27.1-sparse-inf-loops.patch rename to tar-1.28-sparse-inf-loops.patch index 0e8e7ba..94d2bb5 100644 --- a/tar-1.27.1-sparse-inf-loops.patch +++ b/tar-1.28-sparse-inf-loops.patch @@ -1,8 +1,23 @@ +From b451bfd224da44e93cf842f23455d755e48421dd Mon Sep 17 00:00:00 2001 +From: Pavel Raiskup +Date: Mon, 28 Jul 2014 08:17:55 +0200 +Subject: [PATCH 8/9] Fix for infinite loops during sparse file handling + +Upstream bugreport (still downstream): +http://www.mail-archive.com/bug-tar@gnu.org/msg04432.html + +Resolves: #1082608 + +--- + THANKS | 1 + + src/sparse.c | 48 ++++++++++++++++++++++++++++++++---------------- + 2 files changed, 33 insertions(+), 16 deletions(-) + diff --git a/THANKS b/THANKS -index a734fb6..2da6100 100644 +index b4c5427..e74f71c 100644 --- a/THANKS +++ b/THANKS -@@ -173,6 +173,7 @@ Fabio d'Alessi cars@civ.bio.unipd.it +@@ -175,6 +175,7 @@ Fabio d'Alessi cars@civ.bio.unipd.it Frank Heckenbach frank@g-n-u.de Frank Koenen koenfr@lidp.com Franz-Werner Gergen gergen@edvulx.mpi-stuttgart.mpg.de @@ -11,7 +26,7 @@ index a734fb6..2da6100 100644 Fritz Elfert fritz@fsun.triltsch.de George Chyu gschyu@ccgate.dp.beckman.com diff --git a/src/sparse.c b/src/sparse.c -index f0268f4..250e845 100644 +index 6a97676..53c1868 100644 --- a/src/sparse.c +++ b/src/sparse.c @@ -301,6 +301,7 @@ sparse_dump_region (struct tar_sparse_file *file, size_t i) @@ -109,3 +124,6 @@ index f0268f4..250e845 100644 { report_difference (file->stat_info, _("Contents differ")); return false; +-- +1.9.3 + diff --git a/tar-1.26-update-with-change-directory.patch b/tar-1.28-update-with-change-directory.patch similarity index 84% rename from tar-1.26-update-with-change-directory.patch rename to tar-1.28-update-with-change-directory.patch index ec5ca85..158ca87 100644 --- a/tar-1.26-update-with-change-directory.patch +++ b/tar-1.28-update-with-change-directory.patch @@ -1,24 +1,25 @@ -From 207b445ca7018a95f2f96d9514b8d87c80e8e11e Mon Sep 17 00:00:00 2001 +From fecf72d73021fa47956ea551f6ccc804213452ce Mon Sep 17 00:00:00 2001 From: Pavel Raiskup Date: Wed, 4 Apr 2012 18:04:53 +0200 -Subject: [PATCH] Bad cooperation of -C and -u options +Subject: [PATCH 5/9] Bad cooperation of -C and -u options Previously, tar did not update archive with newly created files in archived directory -- it failed instead with "file not found" error (because it looked in bad directory in filesystem). + --- - src/update.c | 2 +- - tests/Makefile.am | 1 +- - tests/testsuite.at | 1 +- - tests/update03.at | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++++ - 4 files changed, 65 insertions(+), 4 deletions(-) + src/update.c | 2 +- + tests/Makefile.am | 1 + + tests/testsuite.at | 1 + + tests/update03.at | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 4 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 tests/update03.at diff --git a/src/update.c b/src/update.c -index e3228d4..4739e0d 100644 +index c8fca0c..9a9c4e2 100644 --- a/src/update.c +++ b/src/update.c -@@ -159,7 +159,7 @@ update_archive (void) +@@ -152,7 +152,7 @@ update_archive (void) for (p = dirp; *p; p += strlen (p) + 1) addname (namebuf_name (nbuf, p), @@ -28,10 +29,10 @@ index e3228d4..4739e0d 100644 namebuf_free (nbuf); free (dirp); diff --git a/tests/Makefile.am b/tests/Makefile.am -index ab7d104..119f1f3 100644 +index 6684d1d..2a2e1cc 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am -@@ -156,6 +156,7 @@ TESTSUITE_AT = \ +@@ -208,6 +208,7 @@ TESTSUITE_AT = \ update.at\ update01.at\ update02.at\ @@ -40,10 +41,10 @@ index ab7d104..119f1f3 100644 volume.at\ verbose.at\ diff --git a/tests/testsuite.at b/tests/testsuite.at -index 8366ef0..13f7506 100644 +index 7f8e4c4..f1ce58f 100644 --- a/tests/testsuite.at +++ b/tests/testsuite.at -@@ -241,6 +241,7 @@ m4_include([spmvp10.at]) +@@ -360,6 +360,7 @@ AT_BANNER([Updates]) m4_include([update.at]) m4_include([update01.at]) m4_include([update02.at]) @@ -117,5 +118,5 @@ index 0000000..185f9eb + +AT_CLEANUP -- -1.7.7.6 +1.9.3 diff --git a/tar-1.15.1-vfatTruncate.patch b/tar-1.28-vfatTruncate.patch similarity index 55% rename from tar-1.15.1-vfatTruncate.patch rename to tar-1.28-vfatTruncate.patch index a61684e..734fbc4 100644 --- a/tar-1.15.1-vfatTruncate.patch +++ b/tar-1.28-vfatTruncate.patch @@ -1,8 +1,26 @@ +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 ba4ac2d..ea88cd6 100644 +index 9414233..37e9a3e 100644 --- a/src/system.c +++ b/src/system.c -@@ -231,8 +231,25 @@ sys_compare_links (struct stat *link_data, struct stat *stat_data) +@@ -243,8 +243,25 @@ sys_compare_links (struct stat *link_data, struct stat *stat_data) int sys_truncate (int fd) { @@ -29,3 +47,6 @@ index ba4ac2d..ea88cd6 100644 } /* Return nonzero if NAME is the name of a regular file, or if the file +-- +1.9.3 + diff --git a/tar-1.17-wildcards.patch b/tar-1.28-wildcards.patch similarity index 70% rename from tar-1.17-wildcards.patch rename to tar-1.28-wildcards.patch index 62919d1..e8eaf01 100644 --- a/tar-1.17-wildcards.patch +++ b/tar-1.28-wildcards.patch @@ -1,8 +1,25 @@ +From ea75b84e2408a60d75df9e68eb5683fa27209939 Mon Sep 17 00:00:00 2001 +From: rpm-build +Date: Mon, 28 Jul 2014 08:12:14 +0200 +Subject: [PATCH 3/9] 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 | 5 +---- + src/tar.c | 9 ++++----- + tests/exclude01.at | 1 + + 4 files changed, 10 insertions(+), 10 deletions(-) + diff --git a/doc/tar.texi b/doc/tar.texi -index db8f986..d70d113 100644 +index 82c303d..db79824 100644 --- a/doc/tar.texi +++ b/doc/tar.texi -@@ -7597,7 +7597,7 @@ The following table summarizes pattern-matching default values: +@@ -7902,7 +7902,7 @@ The following table summarizes pattern-matching default values: @multitable @columnfractions .3 .7 @headitem Members @tab Default settings @@ -11,7 +28,7 @@ index db8f986..d70d113 100644 @item Exclusion @tab @option{--wildcards --no-anchored --wildcards-match-slash} @end multitable -@@ -12038,6 +12038,9 @@ version of this document is available at +@@ -12365,6 +12365,9 @@ version of this document is available at @table @asis @item Use of globbing patterns when listing and extracting. @@ -22,10 +39,10 @@ index db8f986..d70d113 100644 extracting from or listing an archive. For example: diff --git a/src/names.c b/src/names.c -index ba4d509..3911f8c 100644 +index 594e7fd..fe3bcad 100644 --- a/src/names.c +++ b/src/names.c -@@ -966,10 +966,7 @@ collect_and_sort_names (void) +@@ -1200,10 +1200,7 @@ collect_and_sort_names (void) if (name->found_count || name->directory) continue; @@ -38,10 +55,10 @@ index ba4d509..3911f8c 100644 if (name->name[0] == 0) diff --git a/src/tar.c b/src/tar.c -index 928cfdd..22d3db1 100644 +index cd32379..79b0a10 100644 --- a/src/tar.c +++ b/src/tar.c -@@ -722,7 +722,7 @@ static struct argp_option options[] = { +@@ -800,7 +800,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, @@ -50,7 +67,7 @@ index 928cfdd..22d3db1 100644 {"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); +@@ -895,8 +895,7 @@ ARGMATCH_VERIFY (atime_preserve_args, atime_preserve_types); /* Wildcard matching settings */ enum wildcards { @@ -60,7 +77,7 @@ index 928cfdd..22d3db1 100644 disable_wildcards, enable_wildcards }; -@@ -847,7 +846,7 @@ struct tar_args /* Variables used during option parsing */ +@@ -927,7 +926,7 @@ struct tar_args /* Variables used during option parsing */ | recursion_option) #define MAKE_INCL_OPTIONS(args) \ @@ -69,7 +86,7 @@ index 928cfdd..22d3db1 100644 | (args)->include_anchored \ | (args)->matching_flags \ | recursion_option) -@@ -2347,7 +2346,7 @@ decode_options (int argc, char **argv) +@@ -2442,7 +2441,7 @@ decode_options (int argc, char **argv) /* Warn about implicit use of the wildcards in command line arguments. See TODO */ @@ -79,10 +96,10 @@ index 928cfdd..22d3db1 100644 /* Derive option values and check option consistency. */ diff --git a/tests/exclude01.at b/tests/exclude01.at -index 778a7fc..bd65ae0 100644 +index 27dd9fe..61e5910 100644 --- a/tests/exclude01.at +++ b/tests/exclude01.at -@@ -59,6 +59,7 @@ testdir/dir2/file2 +@@ -61,6 +61,7 @@ testdir/dir2/file2 testdir/dir3/ NEXT testdir/dir1/* @@ -90,3 +107,6 @@ index 778a7fc..bd65ae0 100644 NEXT testdir/dir1/* NEXT +-- +1.9.3 + diff --git a/tar.spec b/tar.spec index 5fd2ff4..703e711 100644 --- a/tar.spec +++ b/tar.spec @@ -4,102 +4,25 @@ Summary: A GNU file archiving program Name: tar Epoch: 2 -Version: 1.27.1 -Release: 5%{?dist} +Version: 1.28 +Release: 1%{?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 -Source2: tar.1 - -# 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 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 -# ~> 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 - -# Fix for bad cooperation of -C and -u options. -# ~> #688567 -# ~> http://lists.gnu.org/archive/html/bug-tar/2012-02/msg00007.html -# ~> still downstream -Patch5: tar-1.26-update-with-change-directory.patch - -# Do not print xattrs/selinux/acls when --no-xattrs/--no-acls/--no-selinux -# options are used during -tvv output. (TODO: merge this with xattrs patch -# once becomes upstream) -# ~> downstream (yet) -# ~> proposal: http://lists.gnu.org/archive/html/bug-tar/2013-05/msg00020.html -Patch6: tar-1.26-xattrs-printing.patch - -# Add documentation which was not yet pushed upstream -# ~> downstream -# ~> #996753 -Patch7: tar-1.26-docu-xattrs.patch - -# The --xattrs-include or --xattrs-exclude options should imply --xattrs. -# ~> still downstream -# http://lists.gnu.org/archive/html/bug-tar/2013-05/msg00020.html -# ~> #965969 -Patch8: tar-1.26-xattrs-include-implies-xattrs.patch - -# Document exclude mistakes with --no-wildcards-match-slash & --anchored -# ~> downstream -# http://www.mail-archive.com/bug-tar@gnu.org/msg04488.html -# ~> related to #903666 -Patch9: tar-1.27.1-document-exclude-mistakes.patch - -# Extract default ACLs which are stored in archive if --acls is passed. -# ~> upstream (7fe7adcbb985) -# http://www.mail-archive.com/bug-tar@gnu.org/msg04355.html -# ~> #1082603 -Patch10: tar-1.27.1-default-acls.patch - -# Fix for infinite loops during sparse file handling -# ~> dostream -# http://www.mail-archive.com/bug-tar@gnu.org/msg04432.html -# ~> #1082608 -Patch11: tar-1.27.1-sparse-inf-loops.patch - -# --posix & big (effective) sparse files can not be listed -# ~> dowstream -# http://www.mail-archive.com/bug-tar%40gnu.org/msg03909.html -# http://www.mail-archive.com/bug-tar@gnu.org/msg04489.html -# ~> #916995 -Patch12: tar-1.27.1-big-sparse-listing.patch - -# Fix inf. loop in -T handling (v1.27.{0,1} only, thus fc21 only) -# ~> uptream (commit 8528958) -# http://www.mail-archive.com/bug-tar@gnu.org/msg04470.html -# ~> (#1083066) -Patch13: tar-1.27.1-T-eternal-loop.patch - -# Refuse to read/write archive from/to terminal input/output (enhancement fc21+) -# ~> upstream (commits b0902369e7 & 7808b69) -# http://lists.gnu.org/archive/html/bug-tar/2014-03/msg00030.html -# ~> #1083075 -Patch14: tar-1.27.1-dont-read-write-terminal.patch +# 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.28-wildcards.patch +Patch4: tar-1.28-atime-rofs.patch +Patch5: tar-1.28-update-with-change-directory.patch +Patch7: tar-1.28-docu-xattrs.patch +Patch9: tar-1.28-document-exclude-mistakes.patch +Patch11: tar-1.28-sparse-inf-loops.patch +Patch12: tar-1.28-big-sparse-listing.patch # run "make check" by default %bcond_without check @@ -133,22 +56,7 @@ If you want to use tar for remote backups, you also need to install the rmt package on the remote box. %prep -%setup -q -%patch1 -p1 -b .loneZeroWarning -%patch2 -p1 -b .vfatTruncate -%patch3 -p1 -b .wildcards -%patch4 -p1 -b .rofs -%patch5 -p1 -b .update_and_changedir -%patch6 -p1 -b .print-xattrs-fix -%patch7 -p1 -b .xattrs-documentation -%patch8 -p1 -b .xattrs-if-xattrs-include -%patch9 -p1 -b .document-exclude-mistakes -%patch10 -p1 -b .default-acls -%patch11 -p1 -b .inf-loops-in-sparse -%patch12 -p1 -b .big-sparse -%patch13 -p1 -b .T-eternal-loop -%patch14 -p1 -b .terminal-input-output - +%autosetup -p1 autoreconf -v %build @@ -168,11 +76,11 @@ make DESTDIR=$RPM_BUILD_ROOT install ln -s tar $RPM_BUILD_ROOT%{_bindir}/gtar rm -f $RPM_BUILD_ROOT/%{_infodir}/dir mkdir -p $RPM_BUILD_ROOT%{_mandir}/man1 -install -c -p -m 0644 %{SOURCE2} $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 @@ -206,6 +114,10 @@ fi %{_infodir}/tar.info* %changelog +* 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