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:
parent
3ac9cb3d17
commit
11cb110e2f
@ -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,
|
||||
|
@ -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. "
|
||||
|
Loading…
x
Reference in New Issue
Block a user