The branch, master has been updated via 4def1c1 file_server: Remove explicit set of passdb backend in fileserver.conf via 7afd476 build: sync the waf ACL checks with configure.in via a566404 build: Remove references to charset modules - we no longer have these via cac1ebf build: vfs_fake_acls does not need the acl lib via 73932a3 file_server: Run task_server_terminate when smbd exists via 8d3e193 file_server: use 'subreq' as variable instead of 'req' via 2c9c589 build: remove unused HAVE_NO_ACLS define from 4437547 s4-selftest: Try a more complex ACL - this example from a GPO
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master - Log ----------------------------------------------------------------- commit 4def1c1780c98d6595b778a6647818b79dea797a Author: Andrew Bartlett <abart...@samba.org> Date: Tue Sep 4 20:31:03 2012 +1000 file_server: Remove explicit set of passdb backend in fileserver.conf The default is now set during smb.conf loading based on the server role or during provision. Andrew Bartlett Autobuild-User(master): Andrew Bartlett <abart...@samba.org> Autobuild-Date(master): Tue Sep 4 14:05:34 CEST 2012 on sn-devel-104 commit 7afd476fe412a3cacad4671673f8cb05592bbb94 Author: Andrew Bartlett <abart...@samba.org> Date: Tue Sep 4 20:15:28 2012 +1000 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 commit a566404362cc7e45b5ce619db81175b55c55c288 Author: Andrew Bartlett <abart...@samba.org> Date: Tue Sep 4 20:06:12 2012 +1000 build: Remove references to charset modules - we no longer have these commit cac1ebfff6c83bfe6cec3a740dface97f706f9ff Author: Andrew Bartlett <abart...@samba.org> Date: Tue Sep 4 19:41:38 2012 +1000 build: vfs_fake_acls does not need the acl lib commit 73932a3aa40bb4b2c2bd22f1be3abc546ab83481 Author: Andrew Bartlett <abart...@samba.org> Date: Tue Sep 4 11:06:15 2012 +0200 file_server: Run task_server_terminate when smbd exists This will help us shut down when smbd cannot bind to ports or perform some other critical startup operation. Based on a patch by Stefan Metzmacher <me...@samba.org> Andrew Bartlett commit 8d3e193fa153eb0c219953707db5ac4cb93cc853 Author: Stefan Metzmacher <me...@samba.org> Date: Tue Sep 4 11:04:16 2012 +0200 file_server: use 'subreq' as variable instead of 'req' This matches the style of all other tevent_req users. metze commit 2c9c58993cf36bc959d3bf1ca634fbaf9bb3a08f Author: Andrew Bartlett <abart...@samba.org> Date: Tue Sep 4 18:58:53 2012 +1000 build: remove unused HAVE_NO_ACLS define ----------------------------------------------------------------------- Summary of changes: file_server/file_server.c | 13 ++++++---- source3/configure.in | 3 -- source3/modules/wscript_build | 3 +- source3/wscript | 52 +++++++++++++++++++++++++++------------- 4 files changed, 45 insertions(+), 26 deletions(-) Changeset truncated at 500 lines: diff --git a/file_server/file_server.c b/file_server/file_server.c index e1560c2..0777de5 100644 --- a/file_server/file_server.c +++ b/file_server/file_server.c @@ -51,7 +51,6 @@ static const char *generate_smb_conf(struct task_server *task) fdprintf(fd, "[globals]\n"); fdprintf(fd, "# auto-generated config for fileserver\n"); fdprintf(fd, "server role check:inhibit=yes\n"); - fdprintf(fd, "passdb backend = samba4\n"); fdprintf(fd, "rpc_server:default = external\n"); fdprintf(fd, "rpc_server:svcctl = embedded\n"); fdprintf(fd, "rpc_server:srvsvc = embedded\n"); @@ -78,6 +77,9 @@ static const char *generate_smb_conf(struct task_server *task) */ static void file_server_smbd_done(struct tevent_req *subreq) { + struct task_server *task = + tevent_req_callback_data(subreq, + struct task_server); int sys_errno; int ret; @@ -87,6 +89,7 @@ static void file_server_smbd_done(struct tevent_req *subreq) } else { DEBUG(0,("file_server smbd daemon exited normally\n")); } + task_server_terminate(task, "smbd child process exited", true); } @@ -96,7 +99,7 @@ static void file_server_smbd_done(struct tevent_req *subreq) static void s3fs_task_init(struct task_server *task) { const char *fileserver_conf; - struct tevent_req *req; + struct tevent_req *subreq; const char *smbd_path; const char *smbd_cmd[2] = { NULL, NULL }; @@ -109,19 +112,19 @@ static void s3fs_task_init(struct task_server *task) smbd_cmd[0] = smbd_path; /* start it as a child process */ - req = samba_runcmd_send(task, task->event_ctx, timeval_zero(), 1, 0, + subreq = samba_runcmd_send(task, task->event_ctx, timeval_zero(), 1, 0, smbd_cmd, "--configfile", fileserver_conf, "--foreground", debug_get_output_is_stdout()?"--log-stdout":NULL, NULL); - if (req == NULL) { + if (subreq == NULL) { DEBUG(0, ("Failed to start smbd as child daemon\n")); task_server_terminate(task, "Failed to startup s3fs smb task", true); return; } - tevent_req_set_callback(req, file_server_smbd_done, task); + tevent_req_set_callback(subreq, file_server_smbd_done, task); DEBUG(1,("Started file server smbd with config %s\n", fileserver_conf)); } diff --git a/source3/configure.in b/source3/configure.in index e11f434..324d03a 100644 --- a/source3/configure.in +++ b/source3/configure.in @@ -5365,7 +5365,6 @@ AC_MSG_RESULT($with_acl_support) if test x"$with_acl_support" = x"no"; then AC_MSG_RESULT(Disabling ACL support) - AC_DEFINE(HAVE_NO_ACLS,1,[Whether no ACLs support should be built in]) else AC_MSG_NOTICE(checking whether ACL support is available:) case "$host_os" in @@ -5403,7 +5402,6 @@ else ;; *darwin*) AC_MSG_NOTICE(ACLs on Darwin currently not supported) - AC_DEFINE(HAVE_NO_ACLS,1,[Whether no ACLs support is available]) ;; *) AC_CHECK_LIB(acl,acl_get_file,[ACL_LIBS="$ACL_LIBS -lacl"]) @@ -5452,7 +5450,6 @@ else default_static_modules="$default_static_modules vfs_posixacl" else AC_MSG_NOTICE(ACL support is not avaliable) - AC_DEFINE(HAVE_NO_ACLS,1,[Whether no ACLs support is available]) fi ;; esac diff --git a/source3/modules/wscript_build b/source3/modules/wscript_build index eccbfad..dee7ea3 100644 --- a/source3/modules/wscript_build +++ b/source3/modules/wscript_build @@ -107,7 +107,7 @@ bld.SAMBA3_MODULE('vfs_fake_perms', bld.SAMBA3_MODULE('vfs_fake_acls', subsystem='vfs', source=VFS_FAKE_ACLS_SRC, - deps='acl attr samba-util', + deps='attr samba-util', init_function='', internal_module=bld.SAMBA3_IS_STATIC_MODULE('vfs_fake_acls'), enabled=bld.SAMBA3_IS_ENABLED_MODULE('vfs_fake_acls')) @@ -228,6 +228,7 @@ bld.SAMBA3_MODULE('vfs_solarisacl', subsystem='vfs', source=VFS_SOLARISACL_SRC, init_function='', + deps='sec', internal_module=bld.SAMBA3_IS_STATIC_MODULE('vfs_solarisacl'), enabled=bld.SAMBA3_IS_ENABLED_MODULE('vfs_solarisacl')) diff --git a/source3/wscript b/source3/wscript index a4ad79b..39a9b92 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,11 +303,33 @@ utimensat vsyslog _write __write __xstat else: Logs.warn("Unknown host_os '%s', please report this to samba-techni...@samba.org" % host_os) - #FIXME: add more checks if Options.options.with_acl_support: - if (host_os.rfind('darwin') > -1): - conf.DEFINE('HAVE_NO_ACLS', 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(''' @@ -324,9 +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.DEFINE('HAVE_NO_ACLS', 1) - 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) @@ -1442,16 +1466,13 @@ main() { if conf.CHECK_HEADERS('gpfs_gpl.h'): conf.DEFINE('HAVE_GPFS', '1') - # Note that all charset 'modules' must actually be static, due to dependency loop issues - # if we include the module loader in iconv - - 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 @@ -1460,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')) @@ -1475,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')) -- Samba Shared Repository