diff --git a/source3/lib/sysacls.c b/source3/lib/sysacls.c index 6e1ac21..2ec3d68 100644 --- a/source3/lib/sysacls.c +++ b/source3/lib/sysacls.c @@ -30,7 +30,7 @@ #include "modules/vfs_tru64acl.h" #endif -#if defined(HAVE_SOLARIS_ACLS) || defined(HAVE_UNIXWARE_ACLS) +#if defined(HAVE_SOLARIS_UNIXWARE_ACLS) #include "modules/vfs_solarisacl.h" #endif @@ -457,7 +457,7 @@ int sys_acl_delete_def_file(vfs_handle_struct *handle, return tru64acl_sys_acl_delete_def_file(handle, path); } -#elif defined(HAVE_SOLARIS_ACLS) || defined(HAVE_UNIXWARE_ACLS) +#elif defined(HAVE_SOLARIS_UNIXWARE_ACLS) SMB_ACL_T sys_acl_get_file(vfs_handle_struct *handle, const char *path_p, SMB_ACL_TYPE_T type, diff -u a/source3/wscript b/source3/wscript --- a/source3/wscript Thu Dec 5 04:16:48 2013 +++ b/source3/wscript Thu May 8 10:10:09 2014 @@ -406,15 +406,7 @@ conf.DEFINE('STAT_ST_BLOCKSIZE', '512') if Options.options.with_acl_support: - if (host_os.rfind('sysv5') > -1) and conf.CHECK_FUNCS_IN('sec', 'facl', checklibc=True): - Logs.info('Using UnixWare ACLs') - conf.DEFINE('HAVE_UNIXWARE_ACLS',1) - default_static_modules.extend(TO_LIST('vfs_solarisacl')) - elif (host_os.rfind('solaris') > -1) and conf.CHECK_FUNCS_IN('sec', 'facl'): - Logs.info('Using solaris ACLs') - conf.DEFINE('HAVE_SOLARIS_ACLS',1) - default_static_modules.extend(TO_LIST('vfs_solarisacl')) - elif (host_os.rfind('hpux') > -1): + if (host_os.rfind('hpux') > -1): Logs.info('Using HPUX ACLs') conf.DEFINE('HAVE_HPUX_ACLS',1) conf.DEFINE('POSIX_ACL_NEEDS_MASK',1) @@ -423,14 +415,15 @@ Logs.info('Using AIX ACLs') conf.DEFINE('HAVE_AIX_ACLS',1) default_static_modules.extend(TO_LIST('vfs_aixacl vfs_aixacl2')) - elif (host_os.rfind('osf') > -1) and conf.CHECK_FUNCS_IN('pacl', 'acl_get_fd'): - Logs.info('Using Tru64 ACLs') - conf.DEFINE('HAVE_TRU64_ACLS',1) - default_static_modules.extend(TO_LIST('vfs_tru64acl')) elif (host_os.rfind('darwin') > -1): - Logs.warn('ACLs on Dwarwin currently not supported') + Logs.warn('ACLs on Darwin currently not supported') + conf.fatal("ACL support not available on Darwin/MacOS. " + "Use --without-acl-support for building without " + "ACL support. " + "ACL support is required to change permissions " + "from Windows clients.") else: - conf.CHECK_FUNCS_IN('acl_get_file', 'acl') + conf.CHECK_FUNCS_IN(['acl_get_file'], 'acl') if conf.CHECK_CODE(''' acl_t acl; int entry_id; @@ -449,8 +442,22 @@ headers='sys/types.h sys/acl.h', link=True, msg="Checking whether acl_get_perm_np() is available") default_static_modules.extend(TO_LIST('vfs_posixacl')) + elif conf.CHECK_FUNCS_IN(['facl'], 'sec'): + Logs.info('Using solaris or UnixWare ACLs') + conf.DEFINE('HAVE_SOLARIS_UNIXWARE_ACLS',1) + default_static_modules.extend(TO_LIST('vfs_solarisacl')) + elif conf.CHECK_FUNCS_IN(['acl_get_fd'], 'pacl'): + Logs.info('Using Tru64 ACLs') + conf.DEFINE('HAVE_TRU64_ACLS',1) + default_static_modules.extend(TO_LIST('vfs_tru64acl')) + else: + conf.fatal("ACL support not found. Try installing libacl1-dev " + "or libacl-devel. " + "Otherwise, use --without-acl-support to build " + "without ACL support. " + "ACL support is required to change permissions from " + "Windows clients.") - if conf.CHECK_FUNCS('dirfd'): conf.DEFINE('HAVE_DIRFD_DECL', 1)