s3-waf: On FreeBSD, compile zfsacl if sunacl.h is around.
authorGünther Deschner <gd@samba.org>
Mon, 31 Jan 2011 08:38:21 +0000 (09:38 +0100)
committerGünther Deschner <gd@samba.org>
Mon, 31 Jan 2011 09:51:10 +0000 (10:51 +0100)
Volker, please check.

Guenther

Autobuild-User: Günther Deschner <gd@samba.org>
Autobuild-Date: Mon Jan 31 10:51:10 CET 2011 on sn-devel-104

source3/modules/wscript_build
source3/wscript

index 32dfa40f3f61bd66f43f62b02f13106e85fda218..29d4d8f2340ae13f12a4bf65f5ecd002296327cf 100644 (file)
@@ -204,7 +204,7 @@ bld.SAMBA_MODULE('vfs_solarisacl',
 bld.SAMBA_MODULE('vfs_zfsacl',
                  subsystem='vfs',
                  source=VFS_ZFSACL_SRC,
-                 deps='NFS4_ACLS',
+                 deps='NFS4_ACLS sunacl',
                  init_function='',
                  internal_module=bld.SAMBA3_IS_STATIC_MODULE('vfs_zfsacl'),
                  enabled=bld.SAMBA3_IS_ENABLED_MODULE('vfs_zfsacl'))
index e286e8fb3e2888405d9de5bb7e1d7693301bb39d..89ee79fe7079a88eb24425fbd5976bc7f4ccab05 100644 (file)
@@ -285,6 +285,8 @@ utimensat vsyslog _write __write __xstat
     # Python doesn't have case switches... :/
     # FIXME: original was *linux* | gnu* | k*bsd*-gnu | kopensolaris*-gnu | *qnx*)
     # the search for .rfind('gnu') covers gnu* and *-gnu is that too broad?
+
+    conf.SET_TARGET_TYPE('sunacl', 'EMPTY')
     if (host_os.rfind('linux') > -1) or (host_os.rfind('gnu') > -1) or (host_os.rfind('qnx') > -1):
         if host_os.rfind('linux') > -1:
             conf.DEFINE('LINUX', '1')
@@ -295,6 +297,10 @@ utimensat vsyslog _write __write __xstat
         conf.DEFINE('DARWINOS', 1)
         conf.DEFINE('STAT_ST_BLOCKSIZE', '512')
         conf.ADD_CFLAGS('-fno-common')
+    elif (host_os.rfind('freebsd') > -1):
+        if conf.CHECK_HEADERS('sunacl.h'):
+            conf.define('HAVE_FREEBSD_SUNACL_H', '1')
+            conf.CHECK_FUNCS_IN('acl', 'sunacl')
     # FIXME: Add more checks here.
     else:
         print "Unknown host_os '%s', please report this to samba-technical@samba.org" % host_os
@@ -418,6 +424,9 @@ return acl_get_perm_np(permset_d, perm);
     if Options.options.with_acl_support and conf.CONFIG_SET('HAVE_POSIX_ACLS'):
         default_static_modules.extend(TO_LIST('vfs_posixacl'))
 
+    if conf.CONFIG_SET('HAVE_FREEBSD_SUNACL_H'):
+       default_shared_modules.extend(TO_LIST('vfs_zfsacl'))
+
     if conf.CONFIG_SET('HAVE_DIRFD_DECL'):
        default_shared_modules.extend(TO_LIST('vfs_syncops vfs_dirsort'))