From 7afd476fe412a3cacad4671673f8cb05592bbb94 Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Tue, 4 Sep 2012 20:15:28 +1000 Subject: build: sync the waf ACL checks with configure.in This should give us full ACLs on the same set of hosts that the autoconf build supports. Andrew Bartlett --- source3/wscript | 47 +++++++++++++++++++++++++++++++++++------------ 1 file changed, 35 insertions(+), 12 deletions(-) diff --git a/source3/wscript b/source3/wscript index 90fb1018fa..39a9b92f55 100755 --- a/source3/wscript +++ b/source3/wscript @@ -58,6 +58,9 @@ def set_options(opt): def configure(conf): from samba_utils import TO_LIST + default_static_modules = [] + default_shared_modules = [] + if Options.options.developer: conf.ADD_CFLAGS('-DDEVELOPER -DDEBUG_PASSWORD') conf.env.developer = True @@ -300,10 +303,33 @@ utimensat vsyslog _write __write __xstat else: Logs.warn("Unknown host_os '%s', please report this to samba-technical@samba.org" % host_os) - #FIXME: add more checks if Options.options.with_acl_support: - if (host_os.rfind('darwin') > -1): - conf.SET_TARGET_TYPE('acl', 'EMPTY') + 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): + Logs.info('Using HPUX ACLs') + conf.DEFINE('HAVE_HPUX_ACLS',1) + default_static_modules.extend(TO_LIST('vfs_hpuxacl')) + elif (host_os.rfind('irix') > -1): + Logs.info('Using IRIX ACLs') + conf.DEFINE('HAVE_IRIX_ACLS',1) + default_static_modules.extend(TO_LIST('vfs_irixacl')) + elif (host_os.rfind('aix') > -1): + Logs.info('Using AIX ACLs') + conf.DEFINE('HAVE_AIX_ACLS',1) + default_static_modules.extend(TO_LIST('vfs_aixacl')) + 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') else: conf.CHECK_FUNCS_IN('acl_get_file', 'acl') if conf.CHECK_CODE(''' @@ -323,8 +349,8 @@ return acl_get_perm_np(permset_d, perm); 'HAVE_ACL_GET_PERM_NP', headers='sys/types.h sys/acl.h', link=True, msg="Checking whether acl_get_perm_np() is available") - else: - conf.SET_TARGET_TYPE('acl', 'EMPTY') + default_static_modules.extend(TO_LIST('vfs_posixacl')) + if conf.CHECK_FUNCS('dirfd'): conf.DEFINE('HAVE_DIRFD_DECL', 1) @@ -1440,13 +1466,13 @@ main() { if conf.CHECK_HEADERS('gpfs_gpl.h'): conf.DEFINE('HAVE_GPFS', '1') - default_static_modules=TO_LIST('''pdb_smbpasswd pdb_tdbsam pdb_wbc_sam + default_static_modules.extend(TO_LIST('''pdb_smbpasswd pdb_tdbsam pdb_wbc_sam auth_sam auth_unix auth_winbind auth_wbc auth_domain auth_builtin vfs_default nss_info_template idmap_tdb idmap_passdb - idmap_nss''') + idmap_nss''')) - default_shared_modules=TO_LIST('''vfs_recycle vfs_audit vfs_extd_audit vfs_full_audit vfs_netatalk + default_shared_modules.extend(TO_LIST('''vfs_recycle vfs_audit vfs_extd_audit vfs_full_audit vfs_netatalk vfs_fake_perms vfs_default_quota vfs_readonly vfs_cap vfs_expand_msdfs vfs_shadow_copy vfs_shadow_copy2 auth_script vfs_readahead vfs_xattr_tdb vfs_posix_eadb @@ -1455,7 +1481,7 @@ main() { vfs_media_harmony vfs_crossrename vfs_linux_xfs_sgid vfs_time_audit idmap_autorid idmap_tdb2 - idmap_rid idmap_hash''') + idmap_rid idmap_hash''')) if Options.options.developer: default_static_modules.extend(TO_LIST('charset_weird')) @@ -1470,9 +1496,6 @@ main() { if conf.CONFIG_SET('AD_DC_BUILD_IS_ENABLED'): default_static_modules.extend(TO_LIST('pdb_samba_dsdb auth_samba4 vfs_dfs_samba4')) - 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')) -- cgit