Author: obnox
Date: 2007-06-08 12:32:13 +0000 (Fri, 08 Jun 2007)
New Revision: 23387

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=23387

Log:
1. This unifies the POSIX ACL detection code:
Linux, FreeBSD and other (which?) ACL implementations
are now checked in the same block instead of in three
separate blocks. This was inspired by Timur Bakeyev
in Bug #4543. Since bugzilla is currently unavailable
this patch is probably slightly different from Timurs
original patch. This should finally fix Bug #4543.

2. The default of the --with-acl-support configure 
option is changed to "auto" (which is actually the
same as "yes"). So configure tries to detect acl
support by default. This had been discussed with
Metze and others.

Michael


Modified:
   branches/SAMBA_3_0/source/configure.in


Changeset:
Modified: branches/SAMBA_3_0/source/configure.in
===================================================================
--- branches/SAMBA_3_0/source/configure.in      2007-06-08 10:56:46 UTC (rev 
23386)
+++ branches/SAMBA_3_0/source/configure.in      2007-06-08 12:32:13 UTC (rev 
23387)
@@ -5368,55 +5368,67 @@
 
 AC_MSG_CHECKING(whether to support ACLs)
 AC_ARG_WITH(acl-support,
-[  --with-acl-support      Include ACL support (default=no)],
+[  --with-acl-support      Include ACL support (default=auto)],
 [ case "$withval" in
-  yes)
+       yes|no)
+               with_acl_support="$withval"
+               ;;
+  esac ])
 
+if test x"$with_acl_support" = x ; then
+       with_acl_support="auto"
+fi
+
+AC_MSG_RESULT($with_acl_support)
+
+if test x"$with_acl_support" = x"no"; then
+       AC_MSG_RESULT(Disabling ACL support)
+       AC_DEFINE(HAVE_NO_ACLS,1,[Whether no ACLs support should be built in])
+else
+       AC_MSG_NOTICE(checking whether ACL support is available:)
        case "$host_os" in
        *sysv5*)
-               AC_MSG_RESULT(Using UnixWare ACLs)
+               AC_MSG_NOTICE(Using UnixWare ACLs)
                AC_DEFINE(HAVE_UNIXWARE_ACLS,1,[Whether UnixWare ACLs are 
available])
                default_static_modules="$default_static_modules vfs_solarisacl"
                ;;
        *solaris*)
-               AC_MSG_RESULT(Using solaris ACLs)
+               AC_MSG_NOTICE(Using solaris ACLs)
                AC_DEFINE(HAVE_SOLARIS_ACLS,1,[Whether solaris ACLs are 
available])
                ACL_LIBS="$ACL_LIBS -lsec"
                default_static_modules="$default_static_modules vfs_solarisacl"
                ;;
        *hpux*)
-               AC_MSG_RESULT(Using HPUX ACLs)
+               AC_MSG_NOTICE(Using HPUX ACLs)
                AC_DEFINE(HAVE_HPUX_ACLS,1,[Whether HPUX ACLs are available])
                default_static_modules="$default_static_modules vfs_hpuxacl"
                ;;
        *irix*)
-               AC_MSG_RESULT(Using IRIX ACLs)
+               AC_MSG_NOTICE(Using IRIX ACLs)
                AC_DEFINE(HAVE_IRIX_ACLS,1,[Whether IRIX ACLs are available])
                default_static_modules="$default_static_modules vfs_irixacl"
                ;;
        *aix*)
-               AC_MSG_RESULT(Using AIX ACLs)
+               AC_MSG_NOTICE(Using AIX ACLs)
                AC_DEFINE(HAVE_AIX_ACLS,1,[Whether AIX ACLs are available])
                default_static_modules="$default_static_modules vfs_aixacl"
                ;;
        *osf*)
-               AC_MSG_RESULT(Using Tru64 ACLs)
+               AC_MSG_NOTICE(Using Tru64 ACLs)
                AC_DEFINE(HAVE_TRU64_ACLS,1,[Whether Tru64 ACLs are available])
                ACL_LIBS="$ACL_LIBS -lpacl"
                default_static_modules="$default_static_modules vfs_tru64acl"
                ;;
-       *freebsd[[5-9]]*)
-               AC_MSG_RESULT(Using FreeBSD posix ACLs)
-               AC_DEFINE(HAVE_POSIX_ACLS,1,[Whether FreeBSD POSIX ACLs are 
available])
-               AC_DEFINE(HAVE_ACL_GET_PERM_NP,1,[Whether acl_get_perm_np() is 
available])
-               default_static_modules="$default_static_modules vfs_posixacl"
-               ;;
-       *linux*)
-               AC_CHECK_LIB(attr,getxattr,[ACL_LIBS="$ACL_LIBS -lattr"])
-                       AC_CHECK_LIB(acl,acl_get_file,[ACL_LIBS="$ACL_LIBS 
-lacl"])
-               AC_CACHE_CHECK([for ACL support],samba_cv_HAVE_POSIX_ACLS,[
+         *)
+               AC_CHECK_LIB(acl,acl_get_file,[ACL_LIBS="$ACL_LIBS -lacl"])
+               case "$host_os" in
+               *linux*)
+                       AC_CHECK_LIB(attr,getxattr,[ACL_LIBS="$ACL_LIBS 
-lattr"])
+                       ;;
+               esac
+               AC_CACHE_CHECK([for POSIX ACL 
support],samba_cv_HAVE_POSIX_ACLS,[
                        acl_LIBS=$LIBS
-                       LIBS="$LIBS -lacl"
+                       LIBS="$LIBS $ACL_LIBS"
                        AC_TRY_LINK([
                                #include <sys/types.h>
                                #include <sys/acl.h>
@@ -5431,11 +5443,11 @@
                        LIBS=$acl_LIBS
                ])
                if test x"$samba_cv_HAVE_POSIX_ACLS" = x"yes"; then
-                       AC_MSG_RESULT(Using posix ACLs)
+                       AC_MSG_NOTICE(Using posix ACLs)
                        AC_DEFINE(HAVE_POSIX_ACLS,1,[Whether POSIX ACLs are 
available])
                        AC_CACHE_CHECK([for 
acl_get_perm_np],samba_cv_HAVE_ACL_GET_PERM_NP,[
                                acl_LIBS=$LIBS
-                               LIBS="$LIBS -lacl"
+                               LIBS="$LIBS $ACL_LIBS"
                                AC_TRY_LINK([
                                        #include <sys/types.h>
                                        #include <sys/acl.h>
@@ -5451,64 +5463,17 @@
                        if test x"$samba_cv_HAVE_ACL_GET_PERM_NP" = x"yes"; then
                                AC_DEFINE(HAVE_ACL_GET_PERM_NP,1,[Whether 
acl_get_perm_np() is available])
                        fi
+                       default_static_modules="$default_static_modules 
vfs_posixacl"
+               else
+                       AC_MSG_NOTICE(ACL support is not avaliable)
+                       AC_DEFINE(HAVE_NO_ACLS,1,[Whether no ACLs support is 
available])
                fi
-            ;;
-         *)
-               AC_CHECK_LIB(acl,acl_get_file,[ACL_LIBS="$ACL_LIBS -lacl"])
-               AC_CACHE_CHECK([for ACL support],samba_cv_HAVE_POSIX_ACLS,[
-                       acl_LIBS=$LIBS
-                       LIBS="$LIBS -lacl"
-                       AC_TRY_LINK([
-                               #include <sys/types.h>
-                               #include <sys/acl.h>
-                       ],[
-                               acl_t acl;
-                               int entry_id;
-                               acl_entry_t *entry_p;
-                               return acl_get_entry( acl, entry_id, entry_p);
-                       ],
-                       [samba_cv_HAVE_POSIX_ACLS=yes],
-                       [samba_cv_HAVE_POSIX_ACLS=no])
-                       LIBS=$acl_LIBS
-               ])
-               if test x"$samba_cv_HAVE_POSIX_ACLS" = x"yes"; then
-                       AC_MSG_RESULT(Using posix ACLs)
-                       AC_DEFINE(HAVE_POSIX_ACLS,1,[Whether POSIX ACLs are 
available])
-                       AC_CACHE_CHECK([for 
acl_get_perm_np],samba_cv_HAVE_ACL_GET_PERM_NP,[
-                               acl_LIBS=$LIBS
-                               LIBS="$LIBS -lacl"
-                               AC_TRY_LINK([
-                                       #include <sys/types.h>
-                                       #include <sys/acl.h>
-                               ],[
-                                       acl_permset_t permset_d;
-                                       acl_perm_t perm;
-                                       return acl_get_perm_np( permset_d, 
perm);
-                               ],
-                               [samba_cv_HAVE_ACL_GET_PERM_NP=yes],
-                               [samba_cv_HAVE_ACL_GET_PERM_NP=no])
-                               LIBS=$acl_LIBS
-                       ])
-                       if test x"$samba_cv_HAVE_ACL_GET_PERM_NP" = x"yes"; then
-                               AC_DEFINE(HAVE_ACL_GET_PERM_NP,1,[Whether 
acl_get_perm_np() is available])
-                       fi
-               fi
-            ;;
+               ;;
         esac
-        ;;
-  *)
-    AC_MSG_RESULT(no)
-    AC_DEFINE(HAVE_NO_ACLS,1,[Whether no ACLs support is available])
-    ;;
-  esac ],
-  AC_DEFINE(HAVE_NO_ACLS,1,[Whether no ACLs support should be built in])
-  AC_MSG_RESULT(no)
-)
+fi # with_acl_support
 
-if test x"$samba_cv_HAVE_POSIX_ACLS" = x"yes"; then
-   default_static_modules="$default_static_modules vfs_posixacl"
-fi
 
+
 #################################################
 # check for AIO support
 

Reply via email to