Add limited support for Solaris 10 ZFS-style ACLs: just enough to
[gnulib.git] / m4 / acl.m4
index c5c6e34..6e6bd08 100644 (file)
--- a/m4/acl.m4
+++ b/m4/acl.m4
@@ -1,6 +1,6 @@
 # acl.m4 - check for access control list (ACL) primitives
 
-# Copyright (C) 2002, 2004, 2005, 2006 Free Software Foundation, Inc.
+# Copyright (C) 2002, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -10,6 +10,7 @@
 AC_DEFUN([AC_FUNC_ACL],
 [
   AC_LIBOBJ([acl])
+  AC_LIBOBJ([file-has-acl])
 
   dnl Prerequisites of lib/acl.c.
   AC_CHECK_HEADERS(sys/acl.h)
@@ -21,18 +22,33 @@ AC_DEFUN([AC_FUNC_ACL],
     AC_SUBST(LIB_ACL)
     AC_CHECK_HEADERS(acl/libacl.h)
     AC_CHECK_FUNCS(acl_get_file acl_get_fd acl_set_file acl_set_fd \
-                  acl_free acl_from_mode acl_from_text acl_to_text \
-                  acl_delete_def_file acl_entries acl_extended_file)
-    if test "$ac_cv_header_sys_acl_h" = yes; then
+                  acl_free acl_from_mode acl_from_text \
+                  acl_delete_def_file acl_extended_file)
+    if test $ac_cv_header_sys_acl_h = yes; then
       use_acl=1
-      if test "$ac_cv_func_acl_get_file" = yes; then
+      if test $ac_cv_func_acl_get_file = yes; then
        # If we detect the acl_get_file bug, disable ACL support altogether.
        gl_ACL_GET_FILE( , [use_acl=0])
       fi
     else
       use_acl=0
     fi
+    if test $use_acl = 1 &&
+       test $ac_cv_func_acl_get_file = yes &&
+       test $ac_cv_func_acl_free = yes; then
+      AC_REPLACE_FUNCS([acl_entries])
+    fi
   LIBS="$ac_save_LIBS"
+  if test $use_acl = 1; then
+    ac_save_LIBS="$LIBS"
+    AC_SEARCH_LIBS([acl_trivial], [sec],
+      [AC_DEFINE([HAVE_ACL_TRIVIAL], 1,
+        [Define to 1 if you have the `acl_trivial' function.])
+       test "$ac_cv_search_acl_trivial" = "none required" ||
+       LIB_ACL_TRIVIAL="$ac_cv_search_acl_trivial"])
+    AC_SUBST([LIB_ACL_TRIVIAL])
+    LIBS="$ac_save_LIBS"
+  fi
   AC_DEFINE_UNQUOTED(USE_ACL, $use_acl,
                     [Define if you want access control list support.])
 ])