Alexandre Oliva requested that I post this message to amanda-users.
This is regarding the tar problem that I wrote here about.
Here is the message I got from the GNU tar folks, along with a patch.
Note that he couldn't duplicate it on Solaris (which doesn't use GNU
libc) but that it occured for me on two glibc platforms.

-- John

----- Forwarded message from Paul Eggert <[EMAIL PROTECTED]> -----

X-Addr-Extension: saved
Delivered-To: [EMAIL PROTECTED]
Resent-To: [EMAIL PROTECTED]
Resent-From: John Goerzen <[EMAIL PROTECTED]>
Resent-Date: 04 Nov 2000 11:10:44 -0500
X-Addr-Extension: 
Delivered-To: [EMAIL PROTECTED]
Date: Fri, 3 Nov 2000 09:39:38 -0800 (PST)
From: Paul Eggert <[EMAIL PROTECTED]>
To: [EMAIL PROTECTED]
Cc: [EMAIL PROTECTED]
In-reply-to: <[EMAIL PROTECTED]>
        ([EMAIL PROTECTED])
Subject: Re: Exclusions not working
Resent-Message-Id: <[EMAIL PROTECTED]>

I can't reproduce the problem on Solaris with GNU tar 1.13.18 using
the following scenario.  Is this scenario the right one?

   $ mkdir -p spool/postfix/private
   $ touch spool/postfix/private/file
   $ echo './spool/postfix/private/*' >x
   $ gtar -cf /tmp/tar --exclude-from=x .
   $ gtar -tvf /tmp/tar
   drwxrwxr-x eggert/eggert     0 2000-11-03 09:29:33 ./
   drwxrwxr-x eggert/eggert     0 2000-11-03 09:27:41 ./spool/
   drwxrwxr-x eggert/eggert     0 2000-11-03 09:27:41 ./spool/postfix/
   drwxrwxr-x eggert/eggert     0 2000-11-03 09:27:49 ./spool/postfix/private/
   -rw-rw-r-- eggert/eggert    26 2000-11-03 09:28:01 ./x

Possibly that is a bug in your GNU C library.  Please try using GNU
tar 1.13.18 <ftp://alpha.gnu.org/gnu/tar/> with the following patch;
it works around the glibc bug.  If that doesn't work, please send a
standalone test case.

2000-11-02  Paul Eggert  <[EMAIL PROTECTED]>

        * lib/fnmatch.c: Do not comment out all the code if we are
        using the GNU C library, because in some cases we are
        replacing buggy code in the GNU C library itself.

2000-10-30  Paul Eggert  <[EMAIL PROTECTED]>

        * lib/fnmatch.c (FOLD): Do not assume that characters are unsigned.

===================================================================
RCS file: lib/fnmatch.c,v
retrieving revision 1.2
retrieving revision 1.4
diff -pu -r1.2 -r1.4
--- lib/fnmatch.c       2000/10/24 06:18:37     1.2
+++ lib/fnmatch.c       2000/11/03 00:23:21     1.4
@@ -27,22 +27,10 @@
 #include <fnmatch.h>
 #include <ctype.h>
 
-
-/* Comment out all this code if we are using the GNU C Library, and are not
-   actually compiling the library itself.  This code is part of the GNU C
-   Library, but also included in many other GNU distributions.  Compiling
-   and linking in this code is a waste when using the GNU C library
-   (especially if it is a shared library).  Rather than having every GNU
-   program understand `configure --with-gnu-libc' and omit the object files,
-   it is simpler to just do this in the source for each such file.  */
-
-#if defined _LIBC || !defined __GNU_LIBRARY__
-
-
 # if defined STDC_HEADERS || !defined isascii
 #  define IN_CTYPE_DOMAIN(c) 1
 # else
-#  define IN_CTYPE_DOMAIN(c) isascii(c)
+#  define IN_CTYPE_DOMAIN(c) isascii (c)
 # endif
 
 # define ISUPPER(c) (IN_CTYPE_DOMAIN (c) && isupper (c))
@@ -61,7 +49,9 @@ fnmatch (const char *pattern, const char
   register char c;
A
 
 /* Note that this evaluates C many times.  */
-# define FOLD(c) ((flags & FNM_CASEFOLD) && ISUPPER (c) ? tolower (c) : (c))
+# define FOLD(c) ((flags & FNM_CASEFOLD) && ISUPPER ((unsigned char) (c)) \
+                  ? tolower ((unsigned char) (c)) \
+                  : (c))
 
   while ((c = *p++) != '\0')
     {
@@ -238,5 +228,3 @@ fnmatch (const char *pattern, const char
 
 # undef FOLD
 }
-
-#endif /* _LIBC or not __GNU_LIBRARY__.  */



----- End forwarded message -----

-- 
A
John Goerzen <[EMAIL PROTECTED]>                       www.complete.org
Sr. Software Developer, Progeny Linux Systems, Inc.    www.progenylinux.com
#include <std_disclaimer.h>                     <[EMAIL PROTECTED]>

Reply via email to