diff options
27 files changed, 50 insertions, 32 deletions
diff --git a/lib/crypto/config.mk b/lib/crypto/config.mk index ee111bd088..e39f06dcae 100644 --- a/lib/crypto/config.mk +++ b/lib/crypto/config.mk @@ -8,8 +8,7 @@ LIBCRYPTO_OBJ_FILES = $(addprefix $(libcryptosrcdir)/, \ crc32.o md5.o hmacmd5.o md4.o \ arcfour.o sha256.o hmacsha256.o) -[MODULE::TORTURE_LIBCRYPTO] -SUBSYSTEM = smbtorture +[SUBSYSTEM::TORTURE_LIBCRYPTO] PRIVATE_DEPENDENCIES = LIBCRYPTO TORTURE_LIBCRYPTO_OBJ_FILES = $(addprefix $(libcryptosrcdir)/, \ diff --git a/source3/samba4.mk b/source3/samba4.mk index e15d60255d..3f4fff4d35 100644 --- a/source3/samba4.mk +++ b/source3/samba4.mk @@ -166,7 +166,7 @@ modules:: $(PLUGINS) pythonmods:: $(PYTHON_PYS) $(PYTHON_SO) -all:: bin/samba4 bin/regpatch4 bin/regdiff4 bin/regshell4 bin/regtree4 bin/smbclient4 bin/wbinfo4 pythonmods setup +all:: bin/samba4 bin/regpatch4 bin/regdiff4 bin/regshell4 bin/regtree4 bin/smbclient4 bin/wbinfo4 pythonmods setup plugins torture:: bin/smbtorture4 everything:: $(patsubst %,%4,$(BINARIES)) setup: @@ -250,3 +250,4 @@ gdbtest4-env:: everything SMBD_VALGRIND="xterm -n server -e $(selftestdir)/gdb_run $(LD_LIBPATH_OVERRIDE)" \ $(SELFTEST4) $(SELFTEST4_NOSLOW_OPTS) --socket-wrapper --testenv +plugins: $(PLUGINS) diff --git a/source3/script/tests/selftest.sh b/source3/script/tests/selftest.sh index 3b65aaa760..e8adc32c7c 100755 --- a/source3/script/tests/selftest.sh +++ b/source3/script/tests/selftest.sh @@ -68,20 +68,20 @@ export WINBINDD_SOCKET_DIR WINBINDD_PRIV_PIPE_DIR PATH=bin:$PATH export PATH -if test x"$LD_LIBRARY_PATH" != x""; then - LD_LIBRARY_PATH="$BINDIR:$LD_LIBRARY_PATH" -else - LD_LIBRARY_PATH="$BINDIR" -fi -echo "LD_LIBRARY_PATH=$LD_LIBRARY_PATH" -export LD_LIBRARY_PATH - SAMBA4BINDIR=`dirname $SMBTORTURE4` SAMBA4SHAREDDIR="$SAMBA4BINDIR/shared" export SAMBA4SHAREDDIR export SMBTORTURE4 +if test x"$LD_LIBRARY_PATH" != x""; then + LD_LIBRARY_PATH="$BINDIR:$SAMBA4SHAREDDIR:$LD_LIBRARY_PATH" +else + LD_LIBRARY_PATH="$BINDIR:$SAMBA4SHAREDDIR" +fi +echo "LD_LIBRARY_PATH=$LD_LIBRARY_PATH" +export LD_LIBRARY_PATH + ## ## verify that we were built with --enable-socket-wrapper ## diff --git a/source4/build/smb_build/makefile.pm b/source4/build/smb_build/makefile.pm index d9cbca0614..a80d10733b 100644 --- a/source4/build/smb_build/makefile.pm +++ b/source4/build/smb_build/makefile.pm @@ -128,7 +128,7 @@ sub SharedModule($$) $self->_prepare_list($ctx, "LINK_FLAGS"); if (defined($ctx->{INIT_FUNCTION}) and $ctx->{INIT_FUNCTION_TYPE} =~ /\(\*\)/ and not ($ctx->{INIT_FUNCTION} =~ /\(/)) { - $self->output("\$($ctx->{NAME}_OBJ_FILES): CFLAGS+=-D$ctx->{INIT_FUNCTION}=init_module\n"); + $self->output("\$($ctx->{NAME}_OBJ_FILES): CFLAGS+=-D$ctx->{INIT_FUNCTION}=samba_init_module\n"); } $self->output("\$(eval \$(call shared_module_template,$ctx->{SHAREDDIR}/$ctx->{LIBRARY_REALNAME}, \$($ctx->{NAME}_DEPEND_LIST) \$($ctx->{NAME}_FULL_OBJ_LIST), \$($ctx->{NAME}\_FULL_OBJ_LIST) \$($ctx->{NAME}_LINK_FLAGS)))\n"); diff --git a/source4/cldap_server/config.mk b/source4/cldap_server/config.mk index baf2620f32..045fca3fd0 100644 --- a/source4/cldap_server/config.mk +++ b/source4/cldap_server/config.mk @@ -4,7 +4,7 @@ # Start SUBSYSTEM CLDAPD [MODULE::CLDAPD] INIT_FUNCTION = server_service_cldapd_init -SUBSYSTEM = samba +SUBSYSTEM = service PRIVATE_DEPENDENCIES = \ LIBCLI_CLDAP LIBNETIF process_model # End SUBSYSTEM CLDAPD diff --git a/source4/dsdb/config.mk b/source4/dsdb/config.mk index bd188192a0..2ca4e4ca6d 100644 --- a/source4/dsdb/config.mk +++ b/source4/dsdb/config.mk @@ -46,7 +46,7 @@ $(eval $(call proto_header_template,$(dsdbsrcdir)/schema/proto.h,$(SAMDB_SCHEMA_ # Start SUBSYSTEM DREPL_SRV [MODULE::DREPL_SRV] INIT_FUNCTION = server_service_drepl_init -SUBSYSTEM = samba +SUBSYSTEM = service PRIVATE_DEPENDENCIES = \ SAMDB \ process_model diff --git a/source4/kdc/config.mk b/source4/kdc/config.mk index dfd2879bd6..bd8a313316 100644 --- a/source4/kdc/config.mk +++ b/source4/kdc/config.mk @@ -4,7 +4,7 @@ # Start SUBSYSTEM KDC [MODULE::KDC] INIT_FUNCTION = server_service_kdc_init -SUBSYSTEM = samba +SUBSYSTEM = service PRIVATE_DEPENDENCIES = \ HEIMDAL_KDC HDB_SAMBA4 # End SUBSYSTEM KDC diff --git a/source4/ldap_server/config.mk b/source4/ldap_server/config.mk index 4c35117a72..c8c25931fe 100644 --- a/source4/ldap_server/config.mk +++ b/source4/ldap_server/config.mk @@ -4,7 +4,7 @@ # Start SUBSYSTEM LDAP [MODULE::LDAP] INIT_FUNCTION = server_service_ldap_init -SUBSYSTEM = samba +SUBSYSTEM = service PRIVATE_DEPENDENCIES = CREDENTIALS \ LIBCLI_LDAP SAMDB \ process_model \ diff --git a/source4/nbt_server/config.mk b/source4/nbt_server/config.mk index 951949a43f..b6db2090d2 100644 --- a/source4/nbt_server/config.mk +++ b/source4/nbt_server/config.mk @@ -70,7 +70,7 @@ $(eval $(call proto_header_template,$(nbt_serversrcdir)/nbt_server_proto.h,$(NBT [MODULE::service_nbtd] INIT_FUNCTION = server_service_nbtd_init -SUBSYSTEM = samba +SUBSYSTEM = service PRIVATE_DEPENDENCIES = NBT_SERVER process_model service_nbtd_OBJ_FILES = \ diff --git a/source4/ntp_signd/config.mk b/source4/ntp_signd/config.mk index 3b52a200ce..07c404d822 100644 --- a/source4/ntp_signd/config.mk +++ b/source4/ntp_signd/config.mk @@ -4,7 +4,7 @@ # Start SUBSYSTEM NTP_signd [MODULE::NTP_SIGND] INIT_FUNCTION = server_service_ntp_signd_init -SUBSYSTEM = samba +SUBSYSTEM = service PRIVATE_DEPENDENCIES = \ SAMDB NDR_NTP_SIGND # End SUBSYSTEM NTP_SIGND diff --git a/source4/param/pyparam.c b/source4/param/pyparam.c index 0cf651dd7c..acadcc08b0 100644 --- a/source4/param/pyparam.c +++ b/source4/param/pyparam.c @@ -310,7 +310,7 @@ PyTypeObject PyLoadparmService = { .tp_flags = Py_TPFLAGS_DEFAULT, }; -struct loadparm_context *lp_from_py_object(PyObject *py_obj) +_PUBLIC_ struct loadparm_context *lp_from_py_object(PyObject *py_obj) { struct loadparm_context *lp_ctx; if (PyString_Check(py_obj)) { diff --git a/source4/param/pyparam.h b/source4/param/pyparam.h index 4d7e32d908..1cda8f1dba 100644 --- a/source4/param/pyparam.h +++ b/source4/param/pyparam.h @@ -20,6 +20,6 @@ #ifndef _PYPARAM_H_ #define _PYPARAM_H_ -struct loadparm_context *lp_from_py_object(PyObject *py_obj); +_PUBLIC_ struct loadparm_context *lp_from_py_object(PyObject *py_obj); #endif /* _PYPARAM_H_ */ diff --git a/source4/param/util.c b/source4/param/util.c index ec192939d0..92728d505a 100644 --- a/source4/param/util.c +++ b/source4/param/util.c @@ -185,7 +185,8 @@ init_module_fn load_module(TALLOC_CTX *mem_ctx, const char *path) init_fn = dlsym(handle, SAMBA_INIT_MODULE); if (init_fn == NULL) { - DEBUG(0, ("Unable to find init_module() in %s: %s\n", path, dlerror())); + DEBUG(0, ("Unable to find %s() in %s: %s\n", + SAMBA_INIT_MODULE, path, dlerror())); DEBUG(1, ("Loading module '%s' failed\n", path)); dlclose(handle); return NULL; diff --git a/source4/rpc_server/config.mk b/source4/rpc_server/config.mk index f7b3812b06..f00c975cca 100644 --- a/source4/rpc_server/config.mk +++ b/source4/rpc_server/config.mk @@ -219,7 +219,7 @@ PUBLIC_HEADERS += $(rpc_serversrcdir)/dcerpc_server.h [MODULE::DCESRV] INIT_FUNCTION = server_service_rpc_init -SUBSYSTEM = samba +SUBSYSTEM = service PRIVATE_DEPENDENCIES = dcerpc_server DCESRV_OBJ_FILES = $(rpc_serversrcdir)/service_rpc.o diff --git a/source4/smb_server/config.mk b/source4/smb_server/config.mk index 6a1a50ffbf..8031c4eb1f 100644 --- a/source4/smb_server/config.mk +++ b/source4/smb_server/config.mk @@ -2,7 +2,7 @@ # [MODULE::SERVICE_SMB] INIT_FUNCTION = server_service_smb_init -SUBSYSTEM = samba +SUBSYSTEM = service PRIVATE_DEPENDENCIES = SMB_SERVER SERVICE_SMB_OBJ_FILES = $(smb_serversrcdir)/smb_server.o @@ -13,7 +13,7 @@ $(eval $(call proto_header_template,$(smb_serversrcdir)/service_smb_proto.h,$(SE # [MODULE::SERVICE_SAMBA3_SMB] INIT_FUNCTION = server_service_samba3_smb_init -SUBSYSTEM = samba +SUBSYSTEM = service SERVICE_SAMBA3_SMB_OBJ_FILES = $(smb_serversrcdir)/smb_samba3.o diff --git a/source4/smbd/config.mk b/source4/smbd/config.mk index a5f5aab65e..26b2c447d5 100644 --- a/source4/smbd/config.mk +++ b/source4/smbd/config.mk @@ -36,5 +36,6 @@ PRIVATE_DEPENDENCIES = \ CLUSTER samba_OBJ_FILES = $(smbdsrcdir)/server.o +$(samba_OBJ_FILES): CFLAGS+=-DSTATIC_service_MODULES="$(service_INIT_FUNCTIONS)NULL" MANPAGES += $(smbdsrcdir)/samba.8 diff --git a/source4/smbd/process_model.mk b/source4/smbd/process_model.mk index d2ef048f40..d216edd401 100644 --- a/source4/smbd/process_model.mk +++ b/source4/smbd/process_model.mk @@ -4,6 +4,7 @@ # Start MODULE process_model_single [MODULE::process_model_single] INIT_FUNCTION = process_model_single_init +OUTPUT_TYPE = MERGED_OBJ SUBSYSTEM = process_model # End MODULE process_model_single ################################################ diff --git a/source4/smbd/server.c b/source4/smbd/server.c index fd4b21b17f..0f6d248d82 100644 --- a/source4/smbd/server.c +++ b/source4/smbd/server.c @@ -200,7 +200,7 @@ static int binary_smbd_main(const char *binary_name, int argc, const char *argv[ extern NTSTATUS server_service_rpc_init(void); extern NTSTATUS server_service_ntp_signd_init(void); extern NTSTATUS server_service_samba3_smb_init(void); - init_module_fn static_init[] = { STATIC_samba_MODULES }; + init_module_fn static_init[] = { STATIC_service_MODULES }; init_module_fn *shared_init; struct event_context *event_ctx; uint16_t stdin_event_flags; diff --git a/source4/torture/config.mk b/source4/torture/config.mk index 71fa391003..895fef6174 100644 --- a/source4/torture/config.mk +++ b/source4/torture/config.mk @@ -9,6 +9,7 @@ TORTURE_UTIL_OBJ_FILES = $(addprefix $(torturesrcdir)/, util_smb.o) [MODULE::TORTURE_BASIC] SUBSYSTEM = smbtorture INIT_FUNCTION = torture_base_init +OUTPUT_TYPE = MERGED_OBJ PRIVATE_DEPENDENCIES = \ LIBCLI_SMB POPT_CREDENTIALS \ TORTURE_UTIL LIBCLI_RAW \ @@ -41,6 +42,7 @@ $(eval $(call proto_header_template,$(torturesrcdir)/basic/proto.h,$(TORTURE_BAS ################################# # Start SUBSYSTEM TORTURE_RAW [MODULE::TORTURE_RAW] +OUTPUT_TYPE = MERGED_OBJ SUBSYSTEM = smbtorture INIT_FUNCTION = torture_raw_init PRIVATE_DEPENDENCIES = \ @@ -89,13 +91,14 @@ mkinclude smb2/config.mk mkinclude winbind/config.mk [SUBSYSTEM::TORTURE_NDR] -PRIVATE_DEPENDENCIES = torture +PRIVATE_DEPENDENCIES = torture SERVICE_SMB TORTURE_NDR_OBJ_FILES = $(addprefix $(torturesrcdir)/ndr/, ndr.o winreg.o atsvc.o lsa.o epmap.o dfs.o netlogon.o drsuapi.o spoolss.o samr.o) $(eval $(call proto_header_template,$(torturesrcdir)/ndr/proto.h,$(TORTURE_NDR_OBJ_FILES:.o=.c))) [MODULE::torture_rpc] +OUTPUT_TYPE = MERGED_OBJ # TORTURE_NET and TORTURE_NBT use functions from torture_rpc... #OUTPUT_TYPE = MERGED_OBJ SUBSYSTEM = smbtorture @@ -124,6 +127,7 @@ $(eval $(call proto_header_template,$(torturesrcdir)/rpc/proto.h,$(torture_rpc_O ################################# # Start SUBSYSTEM TORTURE_RAP [MODULE::TORTURE_RAP] +OUTPUT_TYPE = MERGED_OBJ SUBSYSTEM = smbtorture INIT_FUNCTION = torture_rap_init PRIVATE_DEPENDENCIES = TORTURE_UTIL LIBCLI_SMB @@ -137,6 +141,7 @@ $(eval $(call proto_header_template,$(torturesrcdir)/rap/proto.h,$(TORTURE_RAP_O ################################# # Start SUBSYSTEM TORTURE_AUTH [MODULE::TORTURE_AUTH] +OUTPUT_TYPE = MERGED_OBJ SUBSYSTEM = smbtorture PRIVATE_DEPENDENCIES = \ LIBCLI_SMB gensec auth KERBEROS \ @@ -153,6 +158,7 @@ mkinclude local/config.mk ################################# # Start MODULE TORTURE_NBENCH [MODULE::TORTURE_NBENCH] +OUTPUT_TYPE = MERGED_OBJ SUBSYSTEM = smbtorture INIT_FUNCTION = torture_nbench_init PRIVATE_DEPENDENCIES = TORTURE_UTIL @@ -167,6 +173,7 @@ $(eval $(call proto_header_template,$(torturesrcdir)/nbench/proto.h,$(TORTURE_NB # Start MODULE TORTURE_UNIX [MODULE::TORTURE_UNIX] SUBSYSTEM = smbtorture +OUTPUT_TYPE = MERGED_OBJ INIT_FUNCTION = torture_unix_init PRIVATE_DEPENDENCIES = TORTURE_UTIL # End MODULE TORTURE_UNIX @@ -180,6 +187,7 @@ $(eval $(call proto_header_template,$(torturesrcdir)/unix/proto.h,$(TORTURE_UNIX # Start SUBSYSTEM TORTURE_LDAP [MODULE::TORTURE_LDAP] SUBSYSTEM = smbtorture +OUTPUT_TYPE = MERGED_OBJ INIT_FUNCTION = torture_ldap_init PRIVATE_DEPENDENCIES = \ LIBCLI_LDAP LIBCLI_CLDAP SAMDB POPT_CREDENTIALS torture @@ -194,6 +202,7 @@ $(eval $(call proto_header_template,$(torturesrcdir)/ldap/proto.h,$(TORTURE_LDAP # Start SUBSYSTEM TORTURE_LDB [MODULE::TORTURE_LDB] SUBSYSTEM = smbtorture +OUTPUT_TYPE = MERGED_OBJ INIT_FUNCTION = torture_ldb_init PRIVATE_DEPENDENCIES = \ LDB_WRAP @@ -208,6 +217,7 @@ $(eval $(call proto_header_template,$(torturesrcdir)/ldb/proto.h,$(TORTURE_LDB_O # Start SUBSYSTEM TORTURE_NBT [MODULE::TORTURE_NBT] SUBSYSTEM = smbtorture +OUTPUT_TYPE = MERGED_OBJ INIT_FUNCTION = torture_nbt_init PRIVATE_DEPENDENCIES = \ LIBCLI_SMB LIBCLI_NBT LIBCLI_DGRAM LIBCLI_WREPL torture_rpc @@ -223,6 +233,7 @@ $(eval $(call proto_header_template,$(torturesrcdir)/nbt/proto.h,$(TORTURE_NBT_O # Start SUBSYSTEM TORTURE_NET [MODULE::TORTURE_NET] SUBSYSTEM = smbtorture +OUTPUT_TYPE = MERGED_OBJ INIT_FUNCTION = torture_net_init PRIVATE_DEPENDENCIES = \ LIBSAMBA-NET \ diff --git a/source4/torture/local/config.mk b/source4/torture/local/config.mk index 60cbf25eda..36f4f08072 100644 --- a/source4/torture/local/config.mk +++ b/source4/torture/local/config.mk @@ -2,6 +2,7 @@ # Start SUBSYSTEM TORTURE_LOCAL [MODULE::TORTURE_LOCAL] SUBSYSTEM = smbtorture +OUTPUT_TYPE = MERGED_OBJ INIT_FUNCTION = torture_local_init PRIVATE_DEPENDENCIES = \ RPC_NDR_ECHO \ @@ -13,6 +14,7 @@ PRIVATE_DEPENDENCIES = \ TORTURE_AUTH \ TORTURE_UTIL \ TORTURE_NDR \ + TORTURE_LIBCRYPTO \ share \ torture_registry \ PROVISION diff --git a/source4/torture/smb2/config.mk b/source4/torture/smb2/config.mk index 3a1ac5e06c..e0fc29f278 100644 --- a/source4/torture/smb2/config.mk +++ b/source4/torture/smb2/config.mk @@ -3,6 +3,7 @@ # Start SUBSYSTEM TORTURE_SMB2 [MODULE::TORTURE_SMB2] SUBSYSTEM = smbtorture +OUTPUT_TYPE = MERGED_OBJ INIT_FUNCTION = torture_smb2_init PRIVATE_DEPENDENCIES = \ LIBCLI_SMB2 POPT_CREDENTIALS torture diff --git a/source4/torture/smbtorture.c b/source4/torture/smbtorture.c index 0c2c8c0f6b..635990354c 100644 --- a/source4/torture/smbtorture.c +++ b/source4/torture/smbtorture.c @@ -49,7 +49,7 @@ static bool run_matching(struct torture_context *torture, if (suite == NULL) { struct torture_suite *o; - for (o = torture_root->children; o; o = o->next) { + for (o = (torture_root == NULL?NULL:torture_root->children); o; o = o->next) { if (gen_fnmatch(expr, o->name) == 0) { *matched = true; reload_charcnv(torture->lp_ctx); diff --git a/source4/torture/torture.c b/source4/torture/torture.c index 3f9a6607cf..deae65c265 100644 --- a/source4/torture/torture.c +++ b/source4/torture/torture.c @@ -62,7 +62,7 @@ _PUBLIC_ int torture_init(void) extern NTSTATUS torture_unix_init(void); extern NTSTATUS torture_winbind_init(void); init_module_fn static_init[] = { STATIC_smbtorture_MODULES }; - init_module_fn *shared_init = load_samba_modules(NULL, cmdline_lp_ctx, "torture"); + init_module_fn *shared_init = load_samba_modules(NULL, cmdline_lp_ctx, "smbtorture"); run_init_functions(static_init); run_init_functions(shared_init); diff --git a/source4/torture/winbind/config.mk b/source4/torture/winbind/config.mk index 9648a7472b..d2c57e9c97 100644 --- a/source4/torture/winbind/config.mk +++ b/source4/torture/winbind/config.mk @@ -3,9 +3,10 @@ # Start SUBSYSTEM TORTURE_WINBIND [MODULE::TORTURE_WINBIND] SUBSYSTEM = smbtorture +OUTPUT_TYPE = MERGED_OBJ INIT_FUNCTION = torture_winbind_init PRIVATE_DEPENDENCIES = \ - LIBWINBIND-CLIENT torture + LIBWINBIND-CLIENT torture PAM_ERRORS # End SUBSYSTEM TORTURE_WINBIND ################################# diff --git a/source4/web_server/config.mk b/source4/web_server/config.mk index e034590111..ff587508fc 100644 --- a/source4/web_server/config.mk +++ b/source4/web_server/config.mk @@ -4,7 +4,7 @@ # Start SUBSYSTEM WEB [MODULE::WEB] INIT_FUNCTION = server_service_web_init -SUBSYSTEM = samba +SUBSYSTEM = service PRIVATE_DEPENDENCIES = LIBTLS smbcalls process_model LIBPYTHON # End SUBSYSTEM WEB ####################### diff --git a/source4/winbind/config.mk b/source4/winbind/config.mk index 865ff90567..7be4e3d213 100644 --- a/source4/winbind/config.mk +++ b/source4/winbind/config.mk @@ -4,7 +4,7 @@ # Start SUBSYSTEM WINBIND [MODULE::WINBIND] INIT_FUNCTION = server_service_winbind_init -SUBSYSTEM = samba +SUBSYSTEM = service PRIVATE_DEPENDENCIES = \ WB_HELPER \ IDMAP \ diff --git a/source4/wrepl_server/config.mk b/source4/wrepl_server/config.mk index c7b5c3e1df..b8696868db 100644 --- a/source4/wrepl_server/config.mk +++ b/source4/wrepl_server/config.mk @@ -4,7 +4,7 @@ # Start SUBSYSTEM WREPL_SRV [MODULE::WREPL_SRV] INIT_FUNCTION = server_service_wrepl_init -SUBSYSTEM = samba +SUBSYSTEM = service PRIVATE_DEPENDENCIES = \ LIBCLI_WREPL WINSDB process_model # End SUBSYSTEM WREPL_SRV |