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
