1
0
mirror of https://github.com/samba-team/samba.git synced 2025-02-24 13:57:43 +03:00

build: Do not rely on sys.platform for ACL tests, combine UnixWare and Solaris ACL tests

This avoids issues with whatever sys.platform may return, fixes the
order of arguments to the CHECK_FUNCS_IN call, and only runs after
Linux-style POSIX ACL detection fails.

Andrew Bartlett

Change-Id: I930dff1e03c1cd1ceb8f3a35823ceb805694b66a
Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: David Disseldorp <ddiss@samba.org>
Tested-by: Thomas Schulz <schulz@adi.com>
This commit is contained in:
Andrew Bartlett 2014-03-05 15:06:02 +13:00
parent 3ac9cb3d17
commit 11cb110e2f
2 changed files with 12 additions and 16 deletions

View File

@ -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,

View File

@ -418,15 +418,7 @@ utimensat vsyslog _write __write __xstat
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)
@ -435,10 +427,6 @@ utimensat vsyslog _write __write __xstat
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 Darwin currently not supported')
conf.fatal("ACL support not available on Darwin/MacOS. "
@ -447,7 +435,7 @@ utimensat vsyslog _write __write __xstat
"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;
@ -466,6 +454,14 @@ return acl_get_perm_np(permset_d, perm);
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('pacl', 'acl_get_fd'):
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. "