latest tar needs fixes from cvs
authorMike Frysinger <vapier@gentoo.org>
Mon, 11 Oct 2004 19:55:27 +0000 (19:55 -0000)
committerMike Frysinger <vapier@gentoo.org>
Mon, 11 Oct 2004 19:55:27 +0000 (19:55 -0000)
package/tar/tar-gnulib.patch [new file with mode: 0644]
package/tar/tar-remote-shell.patch [new file with mode: 0644]
package/tar/tar-tests.patch [new file with mode: 0644]
package/tar/tar.mk

diff --git a/package/tar/tar-gnulib.patch b/package/tar/tar-gnulib.patch
new file mode 100644 (file)
index 0000000..e3ebf16
--- /dev/null
@@ -0,0 +1,99 @@
+Index: argp.h
+===================================================================
+RCS file: /cvsroot/gnulib/gnulib/lib/argp.h,v
+retrieving revision 1.5
+retrieving revision 1.8
+diff -u -b -B -r1.5 -r1.8
+--- tar.broke/lib/argp.h       4 Oct 2003 12:28:07 -0000       1.5
++++ tar/lib/argp.h     30 Sep 2004 16:41:57 -0000      1.8
+@@ -1,5 +1,5 @@
+ /* Hierarchial argument parsing, layered over getopt.
+-   Copyright (C) 1995,1996,1997,1998,1999,2003 Free Software Foundation, Inc.
++   Copyright (C) 1995-1999,2003,2004 Free Software Foundation, Inc.
+    This file is part of the GNU C Library.
+    Written by Miles Bader <miles@gnu.ai.mit.edu>.
+@@ -34,6 +34,9 @@
+ #ifndef __THROW
+ # define __THROW
+ #endif
++#ifndef __NTH
++# define __NTH(fct) fct __THROW
++#endif
+ #ifndef __attribute__
+ /* This feature is available in gcc versions 2.5 and later.  */
+@@ -48,6 +51,18 @@
+ # endif
+ #endif
++/* GCC 2.95 and later have "__restrict"; C99 compilers have
++   "restrict", and "configure" may have defined "restrict".  */
++#ifndef __restrict
++# if ! (2 < __GNUC__ || (2 == __GNUC__ && 95 <= __GNUC_MINOR__))
++#  if defined restrict || 199901L <= __STDC_VERSION__
++#   define __restrict restrict
++#  else
++#   define __restrict
++#  endif
++# endif
++#endif
++
+ #ifndef __error_t_defined
+ typedef int error_t;
+ # define __error_t_defined
+@@ -111,11 +126,12 @@
+    should be displayed in much the same manner as the options.  If this flag
+    is set, then the option NAME field is displayed unmodified (e.g., no `--'
+    prefix is added) at the left-margin (where a *short* option would normally
+-   be displayed), and the documentation string in the normal place.  For
+-   purposes of sorting, any leading whitespace and punctuation is ignored,
+-   except that if the first non-whitespace character is not `-', this entry
+-   is displayed after all options (and OPTION_DOC entries with a leading `-')
+-   in the same group.  */
++   be displayed), and the documentation string in the normal place. The NAME
++   field will be translated using gettext, unless OPTION_NO_TRANS is set (see
++   below). For purposes of sorting, any leading whitespace and punctuation is
++   ignored, except that if the first non-whitespace character is not `-', this
++   entry is displayed after all options (and OPTION_DOC entries with a leading
++   `-') in the same group.  */
+ #define OPTION_DOC            0x8
+ /* This option shouldn't be included in `long' usage messages (but is still
+@@ -127,6 +143,11 @@
+    OPTION_NO_USAGE.  */
+ #define OPTION_NO_USAGE               0x10
\f
++/* Valid only in conjunction with OPTION_DOC. This option disables translation
++   of option name. */
++#define OPTION_NO_TRANS         0x20
++
++\f
+ struct argp;                  /* fwd declare this type */
+ struct argp_state;            /* " */
+ struct argp_child;            /* " */
+@@ -545,13 +566,13 @@
+ # endif
+ ARGP_EI void
+-__argp_usage (__const struct argp_state *__state) __THROW
++__NTH (__argp_usage (__const struct argp_state *__state))
+ {
+   __argp_state_help (__state, stderr, ARGP_HELP_STD_USAGE);
+ }
+ ARGP_EI int
+-__option_is_short (__const struct argp_option *__opt) __THROW
++__NTH (__option_is_short (__const struct argp_option *__opt))
+ {
+   if (__opt->flags & OPTION_DOC)
+     return 0;
+@@ -563,7 +584,7 @@
+ }
+ ARGP_EI int
+-__option_is_end (__const struct argp_option *__opt) __THROW
++__NTH (__option_is_end (__const struct argp_option *__opt))
+ {
+   return !__opt->key && !__opt->name && !__opt->doc && !__opt->group;
+ }
diff --git a/package/tar/tar-remote-shell.patch b/package/tar/tar-remote-shell.patch
new file mode 100644 (file)
index 0000000..962da2e
--- /dev/null
@@ -0,0 +1,23 @@
+--- tar.broke/src/tar.c.orig   2004-10-10 21:39:07.872276960 -0400
++++ tar/src/tar.c      2004-10-10 21:39:52.512490616 -0400
+@@ -544,10 +544,18 @@
+ show_default_settings (FILE *stream)
+ {
+   fprintf (stream,
+-         "--format=%s -f%s -b%d --rmt-command=%s --rsh-command=%s\n",
++         "--format=%s -f%s -b%d --rmt-command=%s"
++#ifdef REMOTE_SHELL
++" --rsh-command=%s"
++#endif
++         "\n",
+          archive_format_string (DEFAULT_ARCHIVE_FORMAT),
+          DEFAULT_ARCHIVE, DEFAULT_BLOCKING,
+-         DEFAULT_RMT_COMMAND, REMOTE_SHELL);
++         DEFAULT_RMT_COMMAND
++#ifdef REMOTE_SHELL
++         ,REMOTE_SHELL
++#endif
++         );
+ }
+ static void
diff --git a/package/tar/tar-tests.patch b/package/tar/tar-tests.patch
new file mode 100644 (file)
index 0000000..2483e78
--- /dev/null
@@ -0,0 +1,31 @@
+--- tar.broke/tests/listed02.sh        2004-10-11 00:39:45.443303624 +0200
++++ tar/tests/listed02.sh      2004-10-11 00:38:02.566943208 +0200
+@@ -69,7 +69,10 @@
+ echo Extracting main archive
+ tar -x -v --listed-incremental=tart.incr1 -f archive.1
+ echo Extracting incremental archive
+-tar -x -v --listed-incremental=tart.incr2 -f archive.2
++# This command should produce three messages about deletion
++# of the existing files, that may appear in any order. Piping
++# to sort makes sure we don't depend on any particular ordering.
++tar -x -v --listed-incremental=tart.incr2 -f archive.2 | sort
+ echo Final files:
+ find tart|sort
+@@ -120,13 +123,13 @@
+ tart/c1/ca1
+ tart/c1/ca2
+ Extracting incremental archive
+-tart/
+-tar: Deleting \`tart/c1'
+ tar: Deleting \`tart/a1'
+ tar: Deleting \`tart/b1'
++tar: Deleting \`tart/c1'
++tart/
++tart/b2
+ tart/c0/
+ tart/c2/
+-tart/b2
+ tart/c2/ca1
+ tart/c2/ca2
+ tart/c2/ca3
index dea08a543d8ced6fe79d07dab40e193bc7b7b8b9..001e938e20c72fd78f07a5be939feb38e73768ad 100644 (file)
@@ -18,6 +18,7 @@ tar-source: $(DL_DIR)/$(GNUTAR_SOURCE)
 
 $(GNUTAR_DIR)/.unpacked: $(DL_DIR)/$(GNUTAR_SOURCE)
        $(GNUTAR_CAT) $(DL_DIR)/$(GNUTAR_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
+       toolchain/patch-kernel.sh $(GNUTAR_DIR) package/tar/ tar*.patch
        touch $(GNUTAR_DIR)/.unpacked
 
 $(GNUTAR_DIR)/.configured: $(GNUTAR_DIR)/.unpacked