From: Joerg Sonnenberger Date: Mon, 19 Apr 2010 22:27:50 +0000 (-0400) Subject: Only include the FreeBSD-style extended attribute support, if X-Git-Tag: v3.0.0a~1093 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=6d23f1c569ca4177228808da7168c7fd31517e13;p=thirdparty%2Flibarchive.git Only include the FreeBSD-style extended attribute support, if EXTATTR_NAMESPACE_USER is defined. It is missing on FreeBSD 4 and DragonFly. Reported by Antonio Huete Jimenez as NetBSD's pkg/43175. SVN-Revision: 2269 --- diff --git a/configure.ac b/configure.ac index 26f836b35..ba05c1a9f 100644 --- a/configure.ac +++ b/configure.ac @@ -444,6 +444,9 @@ if test "x$enable_xattr" != "xno"; then AC_CHECK_FUNCS([extattr_set_fd extattr_set_file]) AC_CHECK_FUNCS([fsetxattr getxattr]) AC_CHECK_FUNCS([lgetxattr listxattr llistxattr lsetxattr]) + AC_CHECK_DECLS([EXTATTR_NAMESPACE_USER], [], [], [#include +#include +]) fi # Check for ACL support diff --git a/libarchive/archive_read_disk_entry_from_file.c b/libarchive/archive_read_disk_entry_from_file.c index eb373bdbc..453efc8a7 100644 --- a/libarchive/archive_read_disk_entry_from_file.c +++ b/libarchive/archive_read_disk_entry_from_file.c @@ -460,7 +460,8 @@ setup_xattrs(struct archive_read_disk *a, return (ARCHIVE_OK); } -#elif HAVE_EXTATTR_GET_FILE && HAVE_EXTATTR_LIST_FILE +#elif HAVE_EXTATTR_GET_FILE && HAVE_EXTATTR_LIST_FILE && \ + HAVE_DECL_EXTATTR_NAMESPACE_USER /* * FreeBSD extattr interface. diff --git a/libarchive/archive_write_disk.c b/libarchive/archive_write_disk.c index ad6622b3d..047a5184a 100644 --- a/libarchive/archive_write_disk.c +++ b/libarchive/archive_write_disk.c @@ -2527,7 +2527,7 @@ set_xattrs(struct archive_write_disk *a) } return (ret); } -#elif HAVE_EXTATTR_SET_FILE +#elif HAVE_EXTATTR_SET_FILE && HAVE_DECL_EXTATTR_NAMESPACE_USER /* * Restore extended attributes - FreeBSD implementation */