[fedfs-utils] [PATCH] Do not look for libattr. <sys/xattr.h> is enough

Chuck Lever chuck.lever at oracle.com
Mon Jun 23 15:16:14 PDT 2014


Hi Cristian-

On Jun 23, 2014, at 5:51 PM, Cristian Rodríguez <crrodriguez at opensuse.org> wrote:

> libattr never gets used in the final build as xattr functions
> are provided by libc.

Is this true for all versions of glibc? My copy of glibc 2.7 shows
its copy of the *xattr functions are just stubs, for example.

> This commit avoids requiring an used library during package build.

I assume you mean “an unused library” here.

Unfortunately the patch description for commit f5c16606beca0 is not
clear why I added this check a year ago. But I seem to recall that
one of the RH-based systems I worked on (EL6, perhaps) had an issue
when libattr and headers were missing in the mockbuild.

Fedora packaging has a BuildRequires libattr-devel. I’m not sure it
is universally safe to simply rip this out. Some testing is required,
and maybe something that has a more precise configure.ac test would
work better for both legacy and newer systems?

> Signed-off-by: Cristian Rodríguez <crrodriguez at opensuse.org>
> ---
> configure.ac                       | 5 -----
> src/libjunction/display-junction.c | 2 +-
> src/libjunction/junction.c         | 2 +-
> 3 files changed, 2 insertions(+), 7 deletions(-)
> 
> diff --git a/configure.ac b/configure.ac
> index a35c798..f7a63cf 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -141,11 +141,6 @@ 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_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..2e924da 100644
> --- a/src/libjunction/display-junction.c
> +++ b/src/libjunction/display-junction.c
> @@ -35,7 +35,7 @@
> #include <locale.h>
> #include <langinfo.h>
> 
> -#include <attr/xattr.h>
> +#include <sys/xattr.h>

My fgetxattr man page says <attr/xattr.h> is the correct header:

NAME
       getxattr, lgetxattr, fgetxattr - retrieve an extended attribute value

SYNOPSIS
       #include <sys/types.h>
       #include <attr/xattr.h>

       ssize_t getxattr (const char *path, const char *name,
                            void *value, size_t size);
       ssize_t lgetxattr (const char *path, const char *name,
                            void *value, size_t size);
       ssize_t fgetxattr (int filedes, const char *name,
                            void *value, size_t size);

But this is a Fedora 19 system. Is it different on SuSE? Maybe my
man page is out of date? Feel free to wield a clue bat.

> #include "junction.h"
> #include "junction-internal.h"
> diff --git a/src/libjunction/junction.c b/src/libjunction/junction.c
> index 7b7b2e4..71ccc7a 100644
> --- a/src/libjunction/junction.c
> +++ b/src/libjunction/junction.c
> @@ -38,7 +38,7 @@
> #include <errno.h>
> #include <dirent.h>
> 
> -#include <attr/xattr.h>
> +#include <sys/xattr.h>
> 
> #include "fedfs.h"
> #include "nsdb.h"
> -- 
> 2.0.0
> 

--
Chuck Lever
chuck[dot]lever[at]oracle[dot]com






More information about the fedfs-utils-devel mailing list