about summary refs log tree commit diff
path: root/pkgs/tools/archivers/gnutar/gnutar-1.28-darwin.patch
blob: cab0e4406d8edea459bfd167c64ee3b4da114c97 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
>From 7d1d3d38cb66b02c062de77847e3c0ecd842366c Mon Sep 17 00:00:00 2001
From: Pavel Raiskup <address@hidden>
Date: Mon, 4 Aug 2014 13:19:49 +0200
Subject: [PATCH] xattrs: fix bug in configure

Be careful to define HAVE_XATTRS when not all needed xattr-related
functions are properly defined either in libc or libattr.

Reported independently by Denis Excoffier and Dominyk Tille.

* acinclude.m4 (TAR_HEADERS_ATTR_XATTR_H): Check for each xattr
function separately.  Don't AC_CHECK_LIB (LIBS is filled by
AC_SEARCH_LIBS when necessary).
* lib/xattr-at.c: Do not build when HAVE_XATTRS is not defined.
* src/Makefile.am: The LDADD -lattr was redundant.
---
 acinclude.m4    | 42 ++++++++++++++----------------------------
 lib/xattr-at.c  |  7 +++++++
 src/Makefile.am |  4 ----
 3 files changed, 21 insertions(+), 32 deletions(-)

diff --git a/acinclude.m4 b/acinclude.m4
index 3b28b3b..db0bbc7 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -40,37 +40,23 @@ AC_DEFUN([TAR_HEADERS_ATTR_XATTR_H],
   # First check for <sys/xattr.h>
   AC_CHECK_HEADERS([sys/xattr.h])
   AM_CONDITIONAL([TAR_COND_XATTR_H],[test "$ac_cv_header_sys_xattr_h" = yes])
-  AM_CONDITIONAL([TAR_LIB_ATTR],[false])
-  if test "$ac_cv_header_sys_xattr_h" = yes; then
-    AC_CHECK_FUNCS(getxattr  fgetxattr  lgetxattr \
-                   setxattr  fsetxattr  lsetxattr \
-                   listxattr flistxattr llistxattr,
-        # only when functions are present
-        AC_DEFINE([HAVE_SYS_XATTR_H], [1],
-                    [define to 1 if we have <sys/xattr.h> header])
-        if test "$with_xattrs" != no; then
-          AC_DEFINE([HAVE_XATTRS],,[Define when we have working linux xattrs.])
-        fi
-    )
-  fi
-
-  # If <sys/xattr.h> is not found, then check for <attr/xattr.h>
   if test "$ac_cv_header_sys_xattr_h" != yes; then
     AC_CHECK_HEADERS([attr/xattr.h])
     AM_CONDITIONAL([TAR_COND_XATTR_H],[test "$ac_cv_header_attr_xattr_h" = yes])
-    AC_CHECK_LIB([attr],[fgetxattr])
-    AM_CONDITIONAL([TAR_LIB_ATTR],[test "$ac_cv_lib_attr_fgetxattr" = yes])
-    if test "$ac_cv_header_attr_xattr_h" = yes; then
-      AC_CHECK_FUNCS(getxattr  fgetxattr  lgetxattr \
-                     setxattr  fsetxattr  lsetxattr \
-                     listxattr flistxattr llistxattr,
-          # only when functions are present
-          AC_DEFINE([HAVE_ATTR_XATTR_H], [1],
-                      [define to 1 if we have <attr/xattr.h> header])
-          if test "$with_xattrs" != no; then
-            AC_DEFINE([HAVE_XATTRS],,[Define when we have working linux xattrs.])
-          fi
-      )
+  fi
+
+  if test "$with_xattrs" != no; then
+    for i in getxattr  fgetxattr  lgetxattr \
+             setxattr  fsetxattr  lsetxattr \
+             listxattr flistxattr llistxattr
+    do
+      AC_SEARCH_LIBS($i, attr)
+      eval found=\$ac_cv_search_$i
+      test "$found" = "no" && break
+    done
+
+    if test "$found" != no; then
+      AC_DEFINE([HAVE_XATTRS],,[Define when we have working linux xattrs.])
     fi
   fi
 ])
diff --git a/lib/xattr-at.c b/lib/xattr-at.c
index 443ccae..009bde5 100644
--- a/lib/xattr-at.c
+++ b/lib/xattr-at.c
@@ -18,6 +18,11 @@
 
 #include <config.h>
 
+/* Temporarily don't build.  We are unable to build on (probably not only)
+   darwin due to lack of l*xattr callbacks (XATTR_NOFOLLOW is alternative) and
+   different function definitions. */
+#ifdef HAVE_XATTRS
+
 #include "xattr-at.h"
 #include "openat.h"
 
@@ -108,3 +113,5 @@
 #undef AT_FUNC_RESULT
 #undef AT_FUNC_POST_FILE_PARAM_DECLS
 #undef AT_FUNC_POST_FILE_ARGS
+
+#endif
diff --git a/src/Makefile.am b/src/Makefile.am
index 82b2d46..42daaef 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -52,7 +52,3 @@ AM_CFLAGS = $(WARN_CFLAGS) $(WERROR_CFLAGS)
 LDADD = ../lib/libtar.a ../gnu/libgnu.a $(LIBINTL) $(LIBICONV)
 
 tar_LDADD = $(LIBS) $(LDADD) $(LIB_CLOCK_GETTIME) $(LIB_EACCESS) $(LIB_SELINUX)
-
-if TAR_LIB_ATTR
-tar_LDADD += -lattr
-endif
-- 
1.9.3