rpms/tar/devel tar-1.17-xattrs-conf.patch, NONE, 1.1 tar-1.17-xattrs.patch, 1.1, 1.2 tar.1, 1.1, 1.2 tar.spec, 1.64, 1.65

Radek Brich (rbrich) fedora-extras-commits at redhat.com
Wed Dec 12 13:47:25 UTC 2007


Author: rbrich

Update of /cvs/extras/rpms/tar/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv26507

Modified Files:
	tar-1.17-xattrs.patch tar.1 tar.spec 
Added Files:
	tar-1.17-xattrs-conf.patch 
Log Message:
fix xattrs detection (no bug #)

tar-1.17-xattrs-conf.patch:

--- NEW FILE tar-1.17-xattrs-conf.patch ---
diff -up tar-1.17/configure.xattrs tar-1.17/configure
--- tar-1.17/configure.xattrs	2007-06-08 10:36:00.000000000 +0200
+++ tar-1.17/configure	2007-12-10 15:31:54.000000000 +0100
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.60 for GNU tar 1.17.
+# Generated by GNU Autoconf 2.61 for GNU tar 1.17.
 #
 # Report bugs to <bug-tar at gnu.org>.
 #
@@ -12,7 +12,8 @@
 ## M4sh Initialization.  ##
 ## --------------------- ##
 
-# Be Bourne compatible
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
 if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
   emulate sh
   NULLCMD=:
@@ -21,10 +22,13 @@ if test -n "${ZSH_VERSION+set}" && (emul
   alias -g '${1+"$@"}'='"$@"'
   setopt NO_GLOB_SUBST
 else
-  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
+  case `(set -o) 2>/dev/null` in
+  *posix*) set -o posix ;;
+esac
+
 fi
-BIN_SH=xpg4; export BIN_SH # for Tru64
-DUALCASE=1; export DUALCASE # for MKS sh
+
+
 
 
 # PATH needs CR
@@ -217,7 +221,7 @@ test \$exitcode = 0) || { (exit 1); exit
 else
   as_candidate_shells=
     as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in /usr/bin/posix$PATH_SEPARATOR/bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
@@ -235,7 +239,6 @@ IFS=$as_save_IFS
 	 # Try only shells that exist, to save several forks.
 	 if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
 		{ ("$as_shell") 2> /dev/null <<\_ASEOF
-# Be Bourne compatible
 if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
   emulate sh
   NULLCMD=:
@@ -244,10 +247,12 @@ if test -n "${ZSH_VERSION+set}" && (emul
   alias -g '${1+"$@"}'='"$@"'
   setopt NO_GLOB_SUBST
 else
-  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
+  case `(set -o) 2>/dev/null` in
+  *posix*) set -o posix ;;
+esac
+
 fi
-BIN_SH=xpg4; export BIN_SH # for Tru64
-DUALCASE=1; export DUALCASE # for MKS sh
+
 
 :
 _ASEOF
@@ -255,7 +260,6 @@ _ASEOF
   CONFIG_SHELL=$as_shell
 	       as_have_required=yes
 	       if { "$as_shell" 2> /dev/null <<\_ASEOF
-# Be Bourne compatible
 if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
   emulate sh
   NULLCMD=:
@@ -264,10 +268,12 @@ if test -n "${ZSH_VERSION+set}" && (emul
   alias -g '${1+"$@"}'='"$@"'
   setopt NO_GLOB_SUBST
 else
-  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
+  case `(set -o) 2>/dev/null` in
+  *posix*) set -o posix ;;
+esac
+
 fi
-BIN_SH=xpg4; export BIN_SH # for Tru64
-DUALCASE=1; export DUALCASE # for MKS sh
+
 
 :
 (as_func_return () {
@@ -514,19 +520,28 @@ else
   as_mkdir_p=false
 fi
 
-# Find out whether ``test -x'' works.  Don't use a zero-byte file, as
-# systems may use methods other than mode bits to determine executability.
-cat >conf$$.file <<_ASEOF
-#! /bin/sh
-exit 0
-_ASEOF
-chmod +x conf$$.file
-if test -x conf$$.file >/dev/null 2>&1; then
-  as_executable_p="test -x"
+if test -x / >/dev/null 2>&1; then
+  as_test_x='test -x'
 else
-  as_executable_p=:
+  if ls -dL / >/dev/null 2>&1; then
+    as_ls_L_option=L
+  else
+    as_ls_L_option=
+  fi
+  as_test_x='
+    eval sh -c '\''
+      if test -d "$1"; then
+        test -d "$1/.";
+      else
+	case $1 in
+        -*)set "./$1";;
+	esac;
+	case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in
+	???[sx]*):;;*)false;;esac;fi
+    '\'' sh
+  '
 fi
-rm -f conf$$.file
+as_executable_p=$as_test_x
 
 # Sed expression to map a string onto a valid CPP name.
 as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
@@ -567,36 +582,36 @@ ac_unique_file="src/tar.c"
 # Factoring default headers for most tests.
 ac_includes_default="\
 #include <stdio.h>
-#if HAVE_SYS_TYPES_H
+#ifdef HAVE_SYS_TYPES_H
 # include <sys/types.h>
 #endif
-#if HAVE_SYS_STAT_H
+#ifdef HAVE_SYS_STAT_H
 # include <sys/stat.h>
 #endif
-#if STDC_HEADERS
+#ifdef STDC_HEADERS
 # include <stdlib.h>
 # include <stddef.h>
 #else
-# if HAVE_STDLIB_H
+# ifdef HAVE_STDLIB_H
 #  include <stdlib.h>
 # endif
 #endif
-#if HAVE_STRING_H
-# if !STDC_HEADERS && HAVE_MEMORY_H
+#ifdef HAVE_STRING_H
+# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
 #  include <memory.h>
 # endif
 # include <string.h>
 #endif
-#if HAVE_STRINGS_H
+#ifdef HAVE_STRINGS_H
 # include <strings.h>
 #endif
-#if HAVE_INTTYPES_H
+#ifdef HAVE_INTTYPES_H
 # include <inttypes.h>
 #endif
-#if HAVE_STDINT_H
+#ifdef HAVE_STDINT_H
 # include <stdint.h>
 #endif
-#if HAVE_UNISTD_H
+#ifdef HAVE_UNISTD_H
 # include <unistd.h>
 #endif"
 
@@ -914,6 +929,7 @@ target_alias
 CC
 CFLAGS
 LDFLAGS
+LIBS
 CPPFLAGS
 YACC
 YFLAGS
@@ -1028,10 +1044,10 @@ do
   -disable-* | --disable-*)
     ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
     # Reject names that are not valid shell variable names.
-    expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+    expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null &&
       { echo "$as_me: error: invalid feature name: $ac_feature" >&2
    { (exit 1); exit 1; }; }
-    ac_feature=`echo $ac_feature | sed 's/-/_/g'`
[...11409 lines suppressed...]
 # PATH needs CR
@@ -38117,19 +34205,28 @@ else
   as_mkdir_p=false
 fi
 
-# Find out whether ``test -x'' works.  Don't use a zero-byte file, as
-# systems may use methods other than mode bits to determine executability.
-cat >conf$$.file <<_ASEOF
-#! /bin/sh
-exit 0
-_ASEOF
-chmod +x conf$$.file
-if test -x conf$$.file >/dev/null 2>&1; then
-  as_executable_p="test -x"
+if test -x / >/dev/null 2>&1; then
+  as_test_x='test -x'
 else
-  as_executable_p=:
+  if ls -dL / >/dev/null 2>&1; then
+    as_ls_L_option=L
+  else
+    as_ls_L_option=
+  fi
+  as_test_x='
+    eval sh -c '\''
+      if test -d "$1"; then
+        test -d "$1/.";
+      else
+	case $1 in
+        -*)set "./$1";;
+	esac;
+	case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in
+	???[sx]*):;;*)false;;esac;fi
+    '\'' sh
+  '
 fi
-rm -f conf$$.file
+as_executable_p=$as_test_x
 
 # Sed expression to map a string onto a valid CPP name.
 as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
@@ -38145,7 +34242,7 @@ exec 6>&1
 # values after options handling.
 ac_log="
 This file was extended by GNU tar $as_me 1.17, which was
-generated by GNU Autoconf 2.60.  Invocation command line was
+generated by GNU Autoconf 2.61.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
   CONFIG_HEADERS  = $CONFIG_HEADERS
@@ -38174,7 +34271,7 @@ current configuration.
 Usage: $0 [OPTIONS] [FILE]...
 
   -h, --help       print this help, then exit
-  -V, --version    print version number, then exit
+  -V, --version    print version number and configuration settings, then exit
   -q, --quiet      do not print progress messages
   -d, --debug      don't remove temporary files
       --recheck    update $as_me by reconfiguring in the same conditions
@@ -38198,7 +34295,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF
 ac_cs_version="\\
 GNU tar config.status 1.17
-configured by $0, generated by GNU Autoconf 2.60,
+configured by $0, generated by GNU Autoconf 2.61,
   with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
 
 Copyright (C) 2006 Free Software Foundation, Inc.
@@ -39274,7 +35371,7 @@ echo "$as_me: executing $ac_file command
   # each Makefile.in and add a new line on top of each file to say so.
   # Grep'ing the whole file is not good either: AIX grep has a line
   # limit of 2048, but all sed's we know have understand at least 4000.
-  if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
+  if sed 10q "$mf" | grep '^#.*generated by automake' > /dev/null 2>&1; then
     dirpart=`$as_dirname -- "$mf" ||
 $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
 	 X"$mf" : 'X\(//\)[^/]' \| \

diff -up tar-1.17/config.hin.xattrs tar-1.17/config.hin
--- tar-1.17/config.hin.xattrs	2007-06-08 10:36:29.000000000 +0200
+++ tar-1.17/config.hin	2007-12-10 12:52:08.000000000 +0100
@@ -163,6 +163,9 @@
    includes <alloca.h> only if HAVE_ALLOCA_H is defined. */
 #undef HAVE_ALLOCA_H
 
+/* Define to 1 if you have the <attr/xattr.h> header file. */
+#undef HAVE_ATTR_XATTR_H
+
 /* Define to 1 if you have the <bp-sym.h> header file. */
 #undef HAVE_BP_SYM_H
 
@@ -396,12 +399,21 @@
 /* Define to 1 if you have the <features.h> header file. */
 #undef HAVE_FEATURES_H
 
+/* Define to 1 if you have the `fgetxattr' function. */
+#undef HAVE_FGETXATTR
+
+/* Define to 1 if you have the `flistxattr' function. */
+#undef HAVE_FLISTXATTR
+
 /* Define to 1 if you have the <float.h> header file. */
 #undef HAVE_FLOAT_H
 
 /* Define to 1 if you have the `flockfile' function. */
 #undef HAVE_FLOCKFILE
 
+/* Define to 1 if you have the `fsetxattr' function. */
+#undef HAVE_FSETXATTR
+
 /* Define to 1 if you have the `fsync' function. */
 #undef HAVE_FSYNC
 
@@ -441,6 +453,9 @@
 /* Define to 1 if you have the `gettimeofday' function. */
 #undef HAVE_GETTIMEOFDAY
 
+/* Define to 1 if you have the `getxattr' function. */
+#undef HAVE_GETXATTR
+
 /* Define if you have the iconv() function and it works. */
 #undef HAVE_ICONV
 
@@ -480,12 +495,27 @@
 /* Define to 1 if you have the `lchown' function. */
 #undef HAVE_LCHOWN
 
+/* Define to 1 if you have the `lgetxattr' function. */
+#undef HAVE_LGETXATTR
+
+/* Define to 1 if you have the `acl' library (-lacl). */
+#undef HAVE_LIBACL
+
+/* Define to 1 if you have the `selinux' library (-lselinux). */
+#undef HAVE_LIBSELINUX
+
 /* Define to 1 if you have the <linewrap.h> header file. */
 #undef HAVE_LINEWRAP_H
 
 /* Define to 1 if you have the <linux/fd.h> header file. */
 #undef HAVE_LINUX_FD_H
 
+/* Define to 1 if you have the `listxattr' function. */
+#undef HAVE_LISTXATTR
+
+/* Define to 1 if you have the `llistxattr' function. */
+#undef HAVE_LLISTXATTR
+
 /* Define to 1 if you have the <locale.h> header file. */
 #undef HAVE_LOCALE_H
 
@@ -498,6 +528,9 @@
 /* Define to 1 if the system has the type `long long int'. */
 #undef HAVE_LONG_LONG_INT
 
+/* Define to 1 if you have the `lsetxattr' function. */
+#undef HAVE_LSETXATTR
+
 /* Define to 1 if you have the `lstat' function. */
 #undef HAVE_LSTAT
 
@@ -598,12 +631,18 @@
 /* Define to 1 if you have the <search.h> header file. */
 #undef HAVE_SEARCH_H
 
+/* Define to 1 if you have the <selinux/selinux.h> header file. */
+#undef HAVE_SELINUX_SELINUX_H
+
 /* Define to 1 if you have the `setenv' function. */
 #undef HAVE_SETENV
 
 /* Define to 1 if you have the `setlocale' function. */
 #undef HAVE_SETLOCALE
 
+/* Define to 1 if you have the `setxattr' function. */
+#undef HAVE_SETXATTR
+
 /* Define to 1 if you have the <sgtty.h> header file. */
 #undef HAVE_SGTTY_H
 
@@ -743,6 +782,9 @@
 /* Define to 1 if you have the <sysexits.h> header file. */
 #undef HAVE_SYSEXITS_H
 
+/* Define to 1 if you have the <sys/acl.h> header file. */
+#undef HAVE_SYS_ACL_H
+
 /* Define to 1 if you have the <sys/bitypes.h> header file. */
 #undef HAVE_SYS_BITYPES_H
 
@@ -891,6 +933,9 @@
 /* Define if utimes works properly. */
 #undef HAVE_WORKING_UTIMES
 
+/* Define if we have a working extended attributes */
+#undef HAVE_XATTRS
+
 /* Define to 1 if the system has the type `_Bool'. */
 #undef HAVE__BOOL
 

tar-1.17-xattrs.patch:

Index: tar-1.17-xattrs.patch
===================================================================
RCS file: /cvs/extras/rpms/tar/devel/tar-1.17-xattrs.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- tar-1.17-xattrs.patch	28 Jun 2007 16:11:58 -0000	1.1
+++ tar-1.17-xattrs.patch	12 Dec 2007 13:47:18 -0000	1.2
@@ -1,310 +1,6 @@
---- tar-1.17/configure.xattrs	2007-06-08 10:36:00.000000000 +0200
-+++ tar-1.17/configure	2007-06-27 17:18:14.000000000 +0200
-@@ -514,19 +514,29 @@ else
-   as_mkdir_p=false
- fi
- 
--# Find out whether ``test -x'' works.  Don't use a zero-byte file, as
--# systems may use methods other than mode bits to determine executability.
--cat >conf$$.file <<_ASEOF
--#! /bin/sh
--exit 0
--_ASEOF
--chmod +x conf$$.file
--if test -x conf$$.file >/dev/null 2>&1; then
--  as_executable_p="test -x"
-+if test -x / >/dev/null 2>&1; then
-+  as_test_x='test -x'
- else
--  as_executable_p=:
-+  if ls -dL / >/dev/null 2>&1; then
-+    as_ls_L_option=L
-+  else
-+    as_ls_L_option=
-+  fi
-+  as_test_x='
-+    eval sh -c '\''
-+      if test -d "$1"; then
-+        test -d "$1/.";
-+      else
-+	case $1 in
-+        -*)set "./$1";;
-+	esac;
-+	case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in
-+	???[sx]*):;;*)false;;esac;fi
-+    '\'' sh
-+  '
- fi
--rm -f conf$$.file
-+as_executable_p=$as_test_x
-+
- 
- # Sed expression to map a string onto a valid CPP name.
- as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-@@ -1925,6 +1935,9 @@ ac_header_list="$ac_header_list sys/tpri
- ac_header_list="$ac_header_list sys/tape.h"
- ac_header_list="$ac_header_list unistd.h"
- ac_header_list="$ac_header_list locale.h"
-+ac_header_list="$ac_header_list selinux/selinux.h"
-+ac_header_list="$ac_header_list attr/xattr.h"
-+ac_header_list="$ac_header_list sys/acl.h"
- ac_func_list="$ac_func_list flockfile"
- ac_func_list="$ac_func_list funlockfile"
- ac_header_list="$ac_header_list features.h"
-@@ -34101,6 +34114,251 @@ _ACEOF
- fi
- done
- 
-+
-+for ac_func in getxattr  fgetxattr  lgetxattr \
-+               setxattr  fsetxattr  lsetxattr \
-+               listxattr flistxattr llistxattr
-+do
-+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-+{ echo "$as_me:$LINENO: checking for $ac_func" >&5
-+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
-+if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-+  echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+  cat >conftest.$ac_ext <<_ACEOF
-+/* confdefs.h.  */
-+_ACEOF
-+cat confdefs.h >>conftest.$ac_ext
-+cat >>conftest.$ac_ext <<_ACEOF
-+/* end confdefs.h.  */
-+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-+#define $ac_func innocuous_$ac_func
-+
-+/* System header to define __stub macros and hopefully few prototypes,
-+    which can conflict with char $ac_func (); below.
-+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-+    <limits.h> exists even on freestanding compilers.  */
-+
-+#ifdef __STDC__
-+# include <limits.h>
-+#else
-+# include <assert.h>
-+#endif
-+
-+#undef $ac_func
-+
-+/* Override any GCC internal prototype to avoid an error.
-+   Use char because int might match the return type of a GCC
-+   builtin and then its argument prototype would still apply.  */
-+#ifdef __cplusplus
-+extern "C"
-+#endif
-+char $ac_func ();
-+/* The GNU C library defines this for functions which it implements
-+    to always fail with ENOSYS.  Some functions are actually named
-+    something starting with __ and the normal name is an alias.  */
-+#if defined __stub_$ac_func || defined __stub___$ac_func
-+choke me
-+#endif
-+
-+int
-+main ()
-+{
-+return $ac_func ();
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext conftest$ac_exeext
-+if { (ac_try="$ac_link"
-+case "(($ac_try" in
-+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-+  *) ac_try_echo=$ac_try;;
-+esac
-+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+  (eval "$ac_link") 2>conftest.er1
-+  ac_status=$?
-+  grep -v '^ *+' conftest.er1 >conftest.err
-+  rm -f conftest.er1
-+  cat conftest.err >&5
-+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  (exit $ac_status); } && {
-+	 test -z "$ac_c_werror_flag" ||
-+	 test ! -s conftest.err
-+       } && test -s conftest$ac_exeext &&
-+       $as_test_x conftest$ac_exeext; then
-+  eval "$as_ac_var=yes"
-+else
-+  echo "$as_me: failed program was:" >&5
-+sed 's/^/| /' conftest.$ac_ext >&5
-+
-+	eval "$as_ac_var=no"
-+fi
-+
-+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-+      conftest$ac_exeext conftest.$ac_ext
-+fi
-+ac_res=`eval echo '${'$as_ac_var'}'`
-+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-+echo "${ECHO_T}$ac_res" >&6; }
-+if test `eval echo '${'$as_ac_var'}'` = yes; then
-+  cat >>confdefs.h <<_ACEOF
-+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-+_ACEOF
-+
-+cat >>confdefs.h <<\_ACEOF
-+#define HAVE_XATTRS
-+_ACEOF
-+
-+fi
-+done
-+
-+
-+{ echo "$as_me:$LINENO: checking for getfilecon in -lselinux" >&5
-+echo $ECHO_N "checking for getfilecon in -lselinux... $ECHO_C" >&6; }
-+if test "${ac_cv_lib_selinux_getfilecon+set}" = set; then
-+  echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+  ac_check_lib_save_LIBS=$LIBS
-+LIBS="-lselinux  $LIBS"
-+cat >conftest.$ac_ext <<_ACEOF
-+/* confdefs.h.  */
-+_ACEOF
-+cat confdefs.h >>conftest.$ac_ext
-+cat >>conftest.$ac_ext <<_ACEOF
-+/* end confdefs.h.  */
-+
-+/* Override any GCC internal prototype to avoid an error.
-+   Use char because int might match the return type of a GCC
-+   builtin and then its argument prototype would still apply.  */
-+#ifdef __cplusplus
-+extern "C"
-+#endif
-+char getfilecon ();
-+int
-+main ()
-+{
-+return getfilecon ();
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext conftest$ac_exeext
-+if { (ac_try="$ac_link"
-+case "(($ac_try" in
-+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-+  *) ac_try_echo=$ac_try;;
-+esac
-+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+  (eval "$ac_link") 2>conftest.er1
-+  ac_status=$?
-+  grep -v '^ *+' conftest.er1 >conftest.err
-+  rm -f conftest.er1
-+  cat conftest.err >&5
-+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  (exit $ac_status); } && {
-+	 test -z "$ac_c_werror_flag" ||
-+	 test ! -s conftest.err
-+       } && test -s conftest$ac_exeext &&
-+       $as_test_x conftest$ac_exeext; then
-+  ac_cv_lib_selinux_getfilecon=yes
-+else
-+  echo "$as_me: failed program was:" >&5
-+sed 's/^/| /' conftest.$ac_ext >&5
-+
-+	ac_cv_lib_selinux_getfilecon=no
-+fi
-+
-+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-+      conftest$ac_exeext conftest.$ac_ext
-+LIBS=$ac_check_lib_save_LIBS
-+fi
-+{ echo "$as_me:$LINENO: result: $ac_cv_lib_selinux_getfilecon" >&5
-+echo "${ECHO_T}$ac_cv_lib_selinux_getfilecon" >&6; }
-+if test $ac_cv_lib_selinux_getfilecon = yes; then
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE_LIBSELINUX 1
-+_ACEOF
-+
-+  LIBS="-lselinux $LIBS"
-+
-+fi
-+
-+
-+{ echo "$as_me:$LINENO: checking for acl_get_fd in -lacl" >&5
-+echo $ECHO_N "checking for acl_get_fd in -lacl... $ECHO_C" >&6; }
-+if test "${ac_cv_lib_acl_acl_get_fd+set}" = set; then
-+  echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+  ac_check_lib_save_LIBS=$LIBS
-+LIBS="-lacl  $LIBS"
-+cat >conftest.$ac_ext <<_ACEOF
-+/* confdefs.h.  */
-+_ACEOF
-+cat confdefs.h >>conftest.$ac_ext
-+cat >>conftest.$ac_ext <<_ACEOF
-+/* end confdefs.h.  */
-+
-+/* Override any GCC internal prototype to avoid an error.
-+   Use char because int might match the return type of a GCC
-+   builtin and then its argument prototype would still apply.  */
-+#ifdef __cplusplus
-+extern "C"
-+#endif
-+char acl_get_fd ();
-+int
-+main ()
-+{
-+return acl_get_fd ();
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext conftest$ac_exeext
-+if { (ac_try="$ac_link"
-+case "(($ac_try" in
-+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-+  *) ac_try_echo=$ac_try;;
-+esac
-+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+  (eval "$ac_link") 2>conftest.er1
-+  ac_status=$?
-+  grep -v '^ *+' conftest.er1 >conftest.err
-+  rm -f conftest.er1
-+  cat conftest.err >&5
-+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  (exit $ac_status); } && {
-+	 test -z "$ac_c_werror_flag" ||
-+	 test ! -s conftest.err
-+       } && test -s conftest$ac_exeext &&
-+       $as_test_x conftest$ac_exeext; then
-+  ac_cv_lib_acl_acl_get_fd=yes
-+else
-+  echo "$as_me: failed program was:" >&5
-+sed 's/^/| /' conftest.$ac_ext >&5
-+
-+	ac_cv_lib_acl_acl_get_fd=no
-+fi
-+
-+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-+      conftest$ac_exeext conftest.$ac_ext
-+LIBS=$ac_check_lib_save_LIBS
-+fi
-+{ echo "$as_me:$LINENO: result: $ac_cv_lib_acl_acl_get_fd" >&5
-+echo "${ECHO_T}$ac_cv_lib_acl_acl_get_fd" >&6; }
-+if test $ac_cv_lib_acl_acl_get_fd = yes; then
-+  cat >>confdefs.h <<_ACEOF
-+#define HAVE_LIBACL 1
-+_ACEOF
-+
-+  LIBS="-lacl $LIBS"
-+
-+fi
-+
-+
-+
-+
- { echo "$as_me:$LINENO: checking whether getgrgid is declared" >&5
- echo $ECHO_N "checking whether getgrgid is declared... $ECHO_C" >&6; }
- if test "${ac_cv_have_decl_getgrgid+set}" = set; then
+diff -up tar-1.17/configure.ac.xattrs tar-1.17/configure.ac
 --- tar-1.17/configure.ac.xattrs	2007-06-08 10:28:04.000000000 +0200
-+++ tar-1.17/configure.ac	2007-06-27 17:10:56.000000000 +0200
++++ tar-1.17/configure.ac	2007-12-10 15:31:54.000000000 +0100
 @@ -40,7 +40,7 @@ AC_CHECK_HEADERS_ONCE(fcntl.h linux/fd.h
    sys/param.h sys/device.h sys/filio.h sys/gentape.h \
    sys/inet.h sys/io/trioctl.h \
@@ -337,8 +33,9 @@
  AC_CHECK_TYPE(iconv_t,:,
                AC_DEFINE(iconv_t, int,
                          [Conversion descriptor type]),
+diff -up tar-1.17/doc/tar.texi.xattrs tar-1.17/doc/tar.texi
 --- tar-1.17/doc/tar.texi.xattrs	2007-06-08 10:25:19.000000000 +0200
-+++ tar-1.17/doc/tar.texi	2007-06-27 17:10:56.000000000 +0200
++++ tar-1.17/doc/tar.texi	2007-12-10 15:31:54.000000000 +0100
 @@ -7845,6 +7845,8 @@ implementation able to read @samp{ustar}
  most @samp{posix} archives as well, with the only exception that any
  additional information (such as long file names etc.) will in such
@@ -400,8 +97,9 @@
  @end table
  
  @node Portability
+diff -up tar-1.17/src/Makefile.in.xattrs tar-1.17/src/Makefile.in
 --- tar-1.17/src/Makefile.in.xattrs	2007-06-08 10:35:58.000000000 +0200
-+++ tar-1.17/src/Makefile.in	2007-06-27 17:11:28.000000000 +0200
++++ tar-1.17/src/Makefile.in	2007-12-10 15:31:54.000000000 +0100
 @@ -1,8 +1,8 @@
 -# Makefile.in generated by automake 1.10a from Makefile.am.
 +# Makefile.in generated by automake 1.10 from Makefile.am.
@@ -472,8 +170,9 @@
  @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/xheader.Po at am__quote@
  
  .c.o:
+diff -up tar-1.17/src/common.h.xattrs tar-1.17/src/common.h
 --- tar-1.17/src/common.h.xattrs	2007-06-08 10:14:42.000000000 +0200
-+++ tar-1.17/src/common.h	2007-06-27 17:10:56.000000000 +0200
++++ tar-1.17/src/common.h	2007-12-10 15:31:54.000000000 +0100
 @@ -255,6 +255,15 @@ GLOBAL int same_owner_option;
  /* If positive, preserve permissions when extracting.  */
  GLOBAL int same_permissions_option;
@@ -513,9 +212,10 @@
  
  /* Module system.c */
  
---- /dev/null	2007-06-25 09:32:25.472134050 +0200
-+++ tar-1.17/src/xattrs.c	2007-06-27 17:10:56.000000000 +0200
-@@ -0,0 +1,457 @@
+diff -up /dev/null tar-1.17/src/xattrs.c
+--- /dev/null	2007-12-10 11:30:31.504001819 +0100
++++ tar-1.17/src/xattrs.c	2007-12-10 15:31:54.000000000 +0100
+@@ -0,0 +1,491 @@
 +/* Create a tar archive.
 +
 +   Copyright (C) 2006 Free Software Foundation, Inc.
@@ -675,6 +375,12 @@
 +{
 +  if (acls_option > 0)
 +    {
++#ifndef HAVE_LIBACL
++      static int done = 0;
++      if (!done)
++          WARN ((0, 0, _("ACL support requested, but not available")));
++      done = 1;
++#endif
 +      xattrs__acls_get_a (st, file_name, fd,
 +                          &st->acls_a_ptr, &st->acls_a_len);
 +      if (!xisfile)
@@ -685,8 +391,14 @@
 +
 +void xattrs_selinux_get(struct tar_stat_info *st, char const *file_name, int fd)
 +{
-+#ifdef HAVE_LIBSELINUX
 +  if (selinux_context_option > 0)
++  {
++#ifndef HAVE_LIBSELINUX
++      static int done = 0;
++      if (!done)
++          WARN ((0, 0, _("SELinux support requested, but not available")));
++      done = 1;
++#else
 +    if (fd == -1)
 +    {
 +      if (lgetfilecon (file_name, &st->cntx_name) == -1)
@@ -695,11 +407,11 @@
 +    else if (fgetfilecon (fd, &st->cntx_name) == -1)
 +      call_arg_warn ("fgetfilecon", file_name);
 +#endif
++  }
 +}
 +
 +void xattrs_xattrs_get(struct tar_stat_info *st, char const *file_name, int fd)
 +{
-+#ifdef HAVE_XATTRS
 +  if (xattrs_option > 0)
 +    { /* get all xattrs ... this include security.* and system.* if
 +         available. We filter them here, but we have to filter them
@@ -709,6 +421,13 @@
 +      static char *xatrs = NULL;
 +      ssize_t xret = -1;
 +
++#ifndef HAVE_XATTRS
++      static int done = 0;
++      if ((xattrs_option > 0) && !done)
++          WARN ((0, 0, _("Xattr support requested, but not available")));
++      done = 1;
++#else
++
 +      if (!xatrs) xatrs = xmalloc (xsz);
 +              
 +      while (((fd == -1) ? 
@@ -758,8 +477,8 @@
 +              xret -= len + 1;
 +            }
 +        }
-+    }
 +#endif
++    }
 +}
 +
 +static void xattrs__fd_set(struct tar_stat_info const *st,
@@ -908,7 +627,12 @@
 +{
 +  if ((acls_option >= 0) && (typeflag != SYMTYPE))
 +    {
-+#ifdef HAVE_LIBACL
++#ifndef HAVE_LIBACL
++      static int done = 0;
++      if (!done)
++        WARN ((0, 0, _("ACL support requested, but not available")));
++      done = 1;
++#else
 +      xattrs__acls_set (st, file_name, ACL_TYPE_ACCESS,
 +                        st->acls_a_ptr, st->acls_a_len);
 +      if (S_ISDIR (st->stat.st_mode))
@@ -921,12 +645,17 @@
 +void xattrs_selinux_set(struct tar_stat_info const *st,
 +                        char const *file_name, char typeflag)
 +{
-+#ifdef HAVE_LIBSELINUX
 +  if ((selinux_context_option >= 0) && st->cntx_name)
 +    {
 +      const char *sysname = "setfilecon";
 +      int ret = -1;
-+      
++
++#ifndef HAVE_LIBSELINUX
++      static int done = 0;
++      if (!done)
++          WARN ((0, 0, _("SELinux support requested, but not available")));
++      done = 1;
++#else
 +      if (typeflag != SYMTYPE)
 +        ret = setfilecon (file_name, st->cntx_name);
 +      else
@@ -939,18 +668,23 @@
 +        call_arg_warn(sysname, file_name);
 +      else if ((ret == -1) && (errno != EOPNOTSUPP))
 +        call_arg_error(sysname, file_name);
-+    }
 +#endif
++    }
 +}
 +
 +void xattrs_xattrs_set(struct tar_stat_info const *st,
 +                       char const *file_name, char typeflag)
 +{
-+#ifdef HAVE_XATTRS
 +  if ((xattrs_option >= 0) && st->xattr_map_size)
 +    {
 +      size_t scan = 0;
-+      
++
++#ifndef HAVE_XATTRS
++      static int done = 0;
++      if (!done)
++          WARN ((0, 0, _("Xattr support requested, but not available")));
++      done = 1;
++#else
 +      while (scan < st->xattr_map_size)
 +        {
 +          char *keyword = st->xattr_map[scan].xkey;
@@ -969,12 +703,13 @@
 +      
 +          ++scan;
 +        }
-+    }
 +#endif
++    }
 +}
 +
+diff -up tar-1.17/src/tar.c.xattrs tar-1.17/src/tar.c
 --- tar-1.17/src/tar.c.xattrs	2007-06-01 12:17:10.000000000 +0200
-+++ tar-1.17/src/tar.c	2007-06-27 17:10:56.000000000 +0200
++++ tar-1.17/src/tar.c	2007-12-10 15:31:54.000000000 +0100
 @@ -247,7 +247,8 @@ tar_set_quoting_style (char *arg)
  
  enum
@@ -1133,8 +868,9 @@
    free (st->sparse_map);
    free (st->dumpdir);
    xheader_destroy (&st->xhdr);
+diff -up tar-1.17/src/xheader.c.xattrs tar-1.17/src/xheader.c
 --- tar-1.17/src/xheader.c.xattrs	2007-06-01 12:17:10.000000000 +0200
-+++ tar-1.17/src/xheader.c	2007-06-27 17:10:56.000000000 +0200
++++ tar-1.17/src/xheader.c	2007-12-10 15:31:54.000000000 +0100
 @@ -419,6 +419,74 @@ xheader_write_global (struct xheader *xh
    free (name);
  }
@@ -1434,8 +1170,9 @@
 +  
    { NULL, NULL, NULL, false }
  };
---- tar-1.17/src/list.c.xattrs	2007-06-27 17:10:56.000000000 +0200
-+++ tar-1.17/src/list.c	2007-06-27 17:10:56.000000000 +0200
+diff -up tar-1.17/src/list.c.xattrs tar-1.17/src/list.c
+--- tar-1.17/src/list.c.xattrs	2007-12-10 15:31:54.000000000 +0100
++++ tar-1.17/src/list.c	2007-12-10 15:31:54.000000000 +0100
 @@ -567,6 +567,13 @@ decode_header (union block *header, stru
    assign_string (&stat_info->gname,
  		 header->header.gname[0] ? header->header.gname : NULL);
@@ -1450,8 +1187,9 @@
    if (format == OLDGNU_FORMAT && incremental_option)
      {
        stat_info->atime.tv_sec = TIME_FROM_HEADER (header->oldgnu_header.atime);
+diff -up tar-1.17/src/Makefile.am.xattrs tar-1.17/src/Makefile.am
 --- tar-1.17/src/Makefile.am.xattrs	2006-12-05 08:37:59.000000000 +0100
-+++ tar-1.17/src/Makefile.am	2007-06-27 17:10:56.000000000 +0200
++++ tar-1.17/src/Makefile.am	2007-12-10 15:31:54.000000000 +0100
 @@ -20,7 +20,7 @@
  
  bin_PROGRAMS = tar
@@ -1475,8 +1213,9 @@
  
 -tar_LDADD = $(LDADD) $(LIB_CLOCK_GETTIME)
 +tar_LDADD = $(LIBS) $(LDADD) $(LIB_CLOCK_GETTIME)
+diff -up tar-1.17/src/create.c.xattrs tar-1.17/src/create.c
 --- tar-1.17/src/create.c.xattrs	2007-06-01 12:17:10.000000000 +0200
-+++ tar-1.17/src/create.c	2007-06-27 17:10:56.000000000 +0200
++++ tar-1.17/src/create.c	2007-12-10 15:31:54.000000000 +0100
 @@ -24,6 +24,7 @@
  #include <quotearg.h>
  
@@ -1516,19 +1255,20 @@
    return header;
  }
  
-@@ -1570,6 +1595,10 @@ dump_file0 (struct tar_stat_info *st, co
- 		open_diag (p);
- 	      return;
+@@ -1572,6 +1597,10 @@ dump_file0 (struct tar_stat_info *st, co
  	    }
-+
-+          xattrs_acls_get(st, p, fd, !is_dir);
-+          xattrs_selinux_get(st, p, fd);
-+          xattrs_xattrs_get(st, p, fd);
  	}
  
++      xattrs_acls_get(st, p, fd, !is_dir);
++      xattrs_selinux_get(st, p, fd);
++      xattrs_xattrs_get(st, p, fd);
++
        if (is_dir)
---- /dev/null	2007-06-25 09:32:25.472134050 +0200
-+++ tar-1.17/src/xattrs.h	2007-06-27 17:10:56.000000000 +0200
+ 	{
+ 	  const char *tag_file_name;
+diff -up /dev/null tar-1.17/src/xattrs.h
+--- /dev/null	2007-12-10 11:30:31.504001819 +0100
++++ tar-1.17/src/xattrs.h	2007-12-10 15:31:54.000000000 +0100
 @@ -0,0 +1,14 @@
 +
 +extern void xattrs_acls_get(struct tar_stat_info *st,
@@ -1544,8 +1284,9 @@
 +                               char const *file_name, char typeflag);
 +extern void xattrs_xattrs_set(struct tar_stat_info const *st,
 +                              char const *file_name, char typeflag);
+diff -up tar-1.17/src/extract.c.xattrs tar-1.17/src/extract.c
 --- tar-1.17/src/extract.c.xattrs	2007-06-08 10:14:42.000000000 +0200
-+++ tar-1.17/src/extract.c	2007-06-27 17:10:56.000000000 +0200
++++ tar-1.17/src/extract.c	2007-12-10 15:31:54.000000000 +0100
 @@ -69,6 +69,13 @@ struct delayed_set_stat
      mode_t invert_permissions;
      enum permstatus permstatus;
@@ -1665,8 +1406,9 @@
  		  set_stat (source, &st1, NULL, 0, 0, SYMTYPE);
  		  valid_source = source;
  		}
+diff -up tar-1.17/src/tar.h.xattrs tar-1.17/src/tar.h
 --- tar-1.17/src/tar.h.xattrs	2007-06-01 12:17:10.000000000 +0200
-+++ tar-1.17/src/tar.h	2007-06-27 17:10:56.000000000 +0200
++++ tar-1.17/src/tar.h	2007-12-10 15:31:54.000000000 +0100
 @@ -276,6 +276,14 @@ struct xheader
    uintmax_t string_length;
  };


Index: tar.1
===================================================================
RCS file: /cvs/extras/rpms/tar/devel/tar.1,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- tar.1	28 Jun 2007 16:14:57 -0000	1.1
+++ tar.1	12 Dec 2007 13:47:18 -0000	1.2
@@ -357,7 +357,9 @@
 change to directory DIR
 .TP
 .B -f, --file [HOSTNAME:]F
-use archive file or device F (default "-", meaning stdin/stdout)
+Use archive file or device F (default "-", meaning stdin/stdout).
+Note that "/dev/stdout" is not equivalent to "-". Using "/dev/stdout"
+explicitly can lead to corrupted archive, especially when coupled with "-v".
 .TP
 .B -j, --bzip2
 filter archive through bzip2, use to decompress .bz2 files
@@ -399,7 +401,9 @@
 print directory names while reading the archive
 .TP
 .B -f, --file [HOSTNAME:]F
-use archive file or device F (default "-", meaning stdin/stdout)
+Use archive file or device F (default "-", meaning stdin/stdout).
+Note that "/dev/stdout" is not equivalent to "-". Using "/dev/stdout"
+explicitly can lead to corrupted archive, especially when coupled with "-v".
 .TP
 .B -F, --info-script F --new-volume-script F
 run script at end of each tape (implies \fI--multi-volume\fR)


Index: tar.spec
===================================================================
RCS file: /cvs/extras/rpms/tar/devel/tar.spec,v
retrieving revision 1.64
retrieving revision 1.65
diff -u -r1.64 -r1.65
--- tar.spec	24 Oct 2007 12:21:40 -0000	1.64
+++ tar.spec	12 Dec 2007 13:47:18 -0000	1.65
@@ -2,7 +2,7 @@
 Name: tar
 Epoch: 2
 Version: 1.17
-Release: 4%{?dist}
+Release: 5%{?dist}
 License: GPLv2+
 Group: Applications/Archiving
 URL: http://www.gnu.org/software/tar/
@@ -16,6 +16,7 @@
 Patch5: tar-1.17-wildcards.patch
 Patch6: tar-1.17-dot_dot_vuln.patch
 Patch7: tar-1.17-safer_name_suffix.patch
+Patch8: tar-1.17-xattrs-conf.patch
 Prereq: info
 BuildRequires: autoconf automake gzip texinfo gettext libacl-devel libselinux-devel gawk
 Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@@ -43,6 +44,7 @@
 %patch5 -p1 -b .wildcards
 %patch6 -p1 -b .dot_dot_vuln
 %patch7 -p1 -b .safer_name_suffix
+%patch8 -p1 -b .xattrs-conf
 
 %build
 %configure --bindir=/bin --libexecdir=/sbin
@@ -93,6 +95,15 @@
 %{_infodir}/tar.info*
 
 %changelog
+* Wed Dec 12 2007 Radek Brich <rbrich at redhat.com> 2:1.17-5
+- fix (non)detection of xattrs
+- move configure stuff from -xattrs patch to -xattrs-conf,
+  so the original patch could be easily read
+- fix -xattrs patch to work with zero length files and show
+  warnings when xattrs not available (fixes by James Antill)
+- possible corruption (#408621) - add warning to man page
+  for now, may be actually fixed later, depending on upstream
+
 * Tue Oct 23 2007 Radek Brich <rbrich at redhat.com> 2:1.17-4
 - upstream patch for CVE-2007-4476
   (tar stack crashing in safer_name_suffix)




More information about the fedora-extras-commits mailing list