El 23/06/14 19:17, Chuck Lever escribió:
> 
> On Jun 23, 2014, at 7:00 PM, Cristian Rodríguez <[email protected]> 
> wrote:
> 
>> El 23/06/14 18:54, Chuck Lever escribió:
>>>
>>> On Jun 23, 2014, at 6:38 PM, Cristian Rodríguez <[email protected]> 
>>> wrote:
>>>
>>>> Of course the package build will have libattr-devel as a build 
>>>> dependency, since this code include <attr/xattr.h> and will fail 
>>>> without it.. however...the code is not even linking the attr library so 
>>>> it will never get used.
>>>>
>>>> AC_CHECK_LIB([attr], [fgetxattr],
>>>>             [AC_SUBST([LIBATTR], ["-lattr"])
>>>>               AC_DEFINE([HAVE_LIBATTR], [1],
>>>>                         [Define if you have libattr])],
>>>>              [AC_MSG_ERROR([libattr not found.])])
>>>>
>>>> Does not add -lattr to $LIBS and the variable LIBATTR is never 
>>>> referenced anywhere in the makefiles.. the build succeeds because 
>>>> libattr duplicates libc functionality….
>>>
>>> Then commit f5c16606 is incorrect: configure.ac should be looking for
>>> the attr/xattr.h header, not the libattr.so library.
>>
>> Nope, it should be only looking for <sys/xattr.h> as glibc 2.3 that
>> contains this functionality was released in 2002.. 12 years ago.. the
>> xattr functions that are provided by glibc will disappear in upcoming
>> releases of libattr...working on that too..
> 
> Can you point me to something that documents the deprecation of attr/xattr.h?

There is no document about it but it is quite simple.. no one wants to
maintain duplicate interfaces..

attr/xattr.h wont go away.. the library and headers will be modified,
attr/xattr.h will just include <sys/xattr.h>.. the functions that are
already provided by glibc will only stay available for existing binaries
but they will disappear from the default version, hence AC_CHECK_LIB or
similar won't find it there anymore..

Ok,, attached is a different patch that will probably make everyone
happy..otherwise we will be arguing about this until next year thing
that I am not particularly interested in doing.



-- 
Cristian
"I don't know the key to success, but the key to failure is trying to
please everybody."
>From 1cfae152d1a2d6d2fbfe3621ccbf693e7339c349 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Cristian=20Rodr=C3=ADguez?= <[email protected]>
Date: Mon, 23 Jun 2014 20:00:22 -0400
Subject: [PATCH] Prefer sys/xattr.h instead of attr/xattr.h

Xattrs functions are implemented in glibc nowadays and must
be prefered instead of those in libattr.
---
 configure.ac                       | 8 +++-----
 src/libjunction/display-junction.c | 7 +++++++
 src/libjunction/junction.c         | 7 +++++++
 3 files changed, 17 insertions(+), 5 deletions(-)

diff --git a/configure.ac b/configure.ac
index a35c798..a87f6d0 100644
--- a/configure.ac
+++ b/configure.ac
@@ -141,11 +141,9 @@ AC_CHECK_LIB([ssl], [SSL_CTX_new],
 		 AC_DEFINE([HAVE_LIBSSL], [1],
 			   [Define if you have libssl])],
 		[AC_MSG_ERROR([libssl not found.])])
-AC_CHECK_LIB([attr], [fgetxattr],
-		[AC_SUBST([LIBATTR], ["-lattr"])
-		 AC_DEFINE([HAVE_LIBATTR], [1],
-			   [Define if you have libattr])],
-		[AC_MSG_ERROR([libattr not found.])])
+
+AC_SEARCH_LIBS([fgetxattr], [attr], [AC_CHECK_HEADERS([sys/xattr.h attr/xattr.h])], AC_MSG_ERROR([No xattr support found]))
+
 AC_CHECK_LIB([gssapi_krb5], [gss_acquire_cred],
 		[AC_SUBST([LIBGSSAPI_KRB5], ["-lgssapi_krb5"])
 		 AC_DEFINE([HAVE_LIBGSSAPI_KRB5], [1],
diff --git a/src/libjunction/display-junction.c b/src/libjunction/display-junction.c
index ac5797b..87d8f6d 100644
--- a/src/libjunction/display-junction.c
+++ b/src/libjunction/display-junction.c
@@ -23,6 +23,7 @@
  *	http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt
  */
 
+#include "config.h"
 #include <sys/types.h>
 #include <sys/stat.h>
 
@@ -35,7 +36,13 @@
 #include <locale.h>
 #include <langinfo.h>
 
+#ifdef HAVE_SYS_XATTR_H
+#include <sys/xattr.h>
+#elif HAVE_ATTR_XATTR_H
 #include <attr/xattr.h>
+#else
+#error no xattr implementation present
+#endif
 
 #include "junction.h"
 #include "junction-internal.h"
diff --git a/src/libjunction/junction.c b/src/libjunction/junction.c
index 7b7b2e4..6227bf0 100644
--- a/src/libjunction/junction.c
+++ b/src/libjunction/junction.c
@@ -23,6 +23,7 @@
  *	http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt
  */
 
+#include "config.h"
 #include <sys/types.h>
 #include <sys/stat.h>
 
@@ -38,7 +39,13 @@
 #include <errno.h>
 #include <dirent.h>
 
+#ifdef HAVE_SYS_XATTR_H
+#include <sys/xattr.h>
+#elif HAVE_ATTR_XATTR_H
 #include <attr/xattr.h>
+#else
+#error no xattr implementation present
+#endif
 
 #include "fedfs.h"
 #include "nsdb.h"
-- 
2.0.0

_______________________________________________
fedfs-utils-devel mailing list
[email protected]
https://oss.oracle.com/mailman/listinfo/fedfs-utils-devel

Reply via email to