s3-param: Add python wrapper for s3 parameters
[idra/samba.git] / source3 / wscript_build
index 1aefad0b672a860950452c63ab75b2481108438d..b5d3f1efeb873ed8762bcb92f54d05d30283cf5b 100755 (executable)
@@ -14,8 +14,9 @@ bld.env.public_headers_skip = ['lib/ldb_compat.h']
 bld.env.public_headers_allow_broken = True
 
 TDB_LIB_SRC = '''
-          lib/dbwrap.c lib/dbwrap_tdb.c
-          lib/dbwrap_ctdb.c
+         lib/dbwrap/dbwrap_open.c
+         lib/dbwrap/dbwrap_tdb.c
+          lib/dbwrap/dbwrap_ctdb.c
           lib/g_lock.c'''
 
 TDB_VALIDATE_SRC = '''lib/tdb_validate.c'''
@@ -47,9 +48,6 @@ LIBCLI_SAMR_SRC = 'rpc_client/cli_samr.c'
 
 LIBRPCCLI_NETLOGON_SRC = 'rpc_client/cli_netlogon.c rpc_client/util_netlogon.c'
 
-LIBCLI_WINREG_SRC = '''rpc_client/cli_winreg.c
-                       rpc_client/cli_winreg_int.c'''
-
 # this includes only the low level parse code, not stuff
 # that requires knowledge of security contexts
 REG_PARSE_PRS_SRC = '''registry/reg_parse_prs.c'''
@@ -69,11 +67,10 @@ LIB_SRC = '''
           lib/system.c lib/sendfile.c lib/recvfile.c lib/time.c
           lib/username.c
           lib/access.c lib/smbrun.c
-          lib/dprintf.c
           lib/wins_srv.c
           lib/util_sid.c
           lib/util_file.c
-          lib/util.c lib/util_cmdline.c
+          lib/util.c
           lib/util_sock.c lib/sock_exec.c
           lib/substitute.c lib/substitute_generic.c
           lib/ms_fnmatch.c
@@ -84,14 +81,12 @@ LIB_SRC = '''
           lib/sessionid_tdb.c
           lib/module.c lib/events.c
           lib/server_contexts.c
+          lib/server_prefork.c
           lib/ldap_escape.c
           lib/fncall.c
           libads/krb5_errs.c lib/system_smbd.c lib/audit.c
           lib/file_id.c lib/idmap_cache.c'''
 
-LIB_DUMMY_SRC = '''lib/dummysmbd.c lib/dummyroot.c'''
-LIB_NONSMBD_SRC = '''${LIB_DUMMY_SRC}'''
-
 POPT_LIB_SRC = '''lib/popt_common.c'''
 
 PARAM_UTIL_SRC = '''param/util.c'''
@@ -120,7 +115,7 @@ LIBADS_SERVER_SRC = '''libads/kerberos_verify.c libads/authdata.c'''
 LIBADS_PRINTER_SRC = '''libads/ldap_printer.c'''
 
 SECRETS_SRC = '''passdb/secrets.c passdb/machine_account_secrets.c
-                 passdb/machine_sid.c'''
+                 passdb/machine_sid.c passdb/secrets_lsa.c'''
 
 LIBNMB_SRC = '''libsmb/unexpected.c libsmb/namecache.c libsmb/nmblib.c
              libsmb/namequery.c libsmb/conncache.c
@@ -140,7 +135,19 @@ LIBSMB_SRC = '''libsmb/clientgen.c libsmb/cliconnect.c libsmb/clifile.c
              libsmb/clistr.c libsmb/cliquota.c libsmb/clifsinfo.c libsmb/clidfs.c
              libsmb/clioplock.c libsmb/clirap2.c
              libsmb/smb_seal.c libsmb/async_smb.c  libsmb/read_smb.c
+             libsmb/smb2cli_base.c
+             libsmb/smb2cli_negprot.c
+             libsmb/smb2cli_session.c
+             libsmb/smb2cli_tcon.c
+             libsmb/smb2cli_create.c
+             libsmb/smb2cli_close.c
+             libsmb/smb2cli_flush.c
+             libsmb/smb2cli_read.c
+             libsmb/smb2cli_write.c
+             libsmb/smb2cli_query_directory.c
              libsmb/cli_np_tstream.c
+             libsmb/reparse_symlink.c
+             libsmb/clisymlink.c
              libsmb/smbsock_connect.c'''
 
 LIBMSRPC_SRC = '''
@@ -225,7 +232,7 @@ PASSDB_SRC = '''${PASSDB_GET_SET_SRC} passdb/passdb.c
                 passdb/login_cache.c
                 passdb/account_pol.c ${PRIVILEGES_SRC}
                 lib/util_nscd.c lib/winbind_util.c ${SERVER_MUTEX_SRC}
-                passdb/pdb_util.c'''
+                passdb/pdb_util.c passdb/pdb_interface.c'''
 #FIXME: lib/winbind_util.c probably is not part of PASSDB_SRC
 
 GROUPDB_SRC = '''groupdb/mapping.c groupdb/mapping_tdb.c'''
@@ -254,8 +261,8 @@ WINBINDD_SRC1 = '''winbindd/winbindd.c
                    winbindd/winbindd_pam.c
                    winbindd/winbindd_misc.c
                    winbindd/winbindd_cm.c
-                   winbindd/winbindd_wins.c
                    winbindd/winbindd_wins_byip.c
+                   winbindd/winbindd_wins_byname.c
                    winbindd/winbindd_msrpc.c
                    winbindd/winbindd_rpc.c
                    winbindd/winbindd_reconnect.c
@@ -401,10 +408,9 @@ PRINTBASE_SRC = '''printing/notify.c printing/printing_db.c'''
 PRINTBACKEND_SRC = '''printing/printing.c
                       printing/nt_printing.c
                       printing/nt_printing_tdb.c
-                      printing/nt_printing_migrate.c
-                      printing/nt_printing_ads.c'''
-
-SMBD_SRC = '''${SMBD_SRC_BASE} ${SMBD_SRC_MAIN}'''
+                      printing/nt_printing_migrate_internal.c
+                      printing/nt_printing_ads.c
+                      printing/queue_process.c'''
 
 NMBD_SRC1 = '''nmbd/asyncdns.c nmbd/nmbd.c nmbd/nmbd_become_dmb.c
             nmbd/nmbd_become_lmb.c nmbd/nmbd_browserdb.c
@@ -566,6 +572,7 @@ SMBTORTURE_SRC1 = '''torture/torture.c torture/nbio.c torture/scanner.c torture/
                torture/test_nttrans_create.c
                torture/test_case_insensitive.c
                torture/test_notify_online.c
+               torture/test_smb2.c
                 torture/test_smbsock_any_connect.c'''
 
 SMBTORTURE_SRC = '''${SMBTORTURE_SRC1}
@@ -647,43 +654,36 @@ if not bld.env.toplevel_build:
     samba_version.load_version(bld.env)
     bld.SAMBA_MKVERSION('include/version.h')
     bld.RECURSE('../lib/replace')
-    bld.RECURSE('build')
+    bld.RECURSE('../dynconfig')
     bld.env.suffix3 = ''
 
 
 ######################## SUBSYSTEMS #################################
 
-# A grouping library to get various helper rpc clients in a library
-bld.SAMBA3_LIBRARY('rpc_client',
-                   source='',
-                   deps='RPC_CLIENT_SCHANNEL INIT_LSA INIT_NETLOGON INIT_SAMR LIBCLI_SAMR LIBCLI_LSA3 LIBRPCCLI_NETLOGON LIBCLI_SPOOLSS LIBCLI_WINREG',
-                   private_library=True,
-                   grouping_library=True)
-
 bld.SAMBA3_LIBRARY('netapi',
                     source=LIBNETAPI_SRC,
-                    public_deps='''talloc tdb cap wbclient LIB_NONSMBD LIBSMB KRBCLIENT
-                    passdb SMBLDAP PARAM_WITHOUT_REG samba-util
+                    public_deps='''talloc tdb_compat cap wbclient smbd_shim libsmb KRBCLIENT
+                    pdb SMBLDAP param samba-util
                     LIBMSRPC_GEN msrpc3 ads LIBNET DCUTIL NDR_LIBNETAPI
                     RPC_CLIENT_SCHANNEL smbconf REG_SMBCONF TOKEN_UTIL
-                    LIBCLI_SAMR LIBCLI_LSA3 LIBRPCCLI_NETLOGON
+                    LIBCLI_SAMR libcli_lsa3 LIBRPCCLI_NETLOGON
                     RPC_NDR_SRVSVC RPC_NDR_WKSSVC RPC_NDR_INITSHUTDOWN
-                    INIT_NETLOGON INIT_SAMR POPT_SAMBA3''',
+                    INIT_NETLOGON INIT_SAMR popt_samba3''',
                     public_headers='../source3/lib/netapi/netapi.h',
                     vnum='0',
                     vars=locals())
 
 bld.SAMBA3_LIBRARY('libsmb/smbclient',
                     source=LIBSMBCLIENT_SRC,
-                    public_deps='''talloc tdb wbclient cap param LIB_NONSMBD LIBSMB KRBCLIENT passdb SMBLDAP
-                    LIBMSRPC_GEN msrpc3 LIBCLI_LSA3 RPC_NDR_SRVSVC POPT_SAMBA3''',
+                    public_deps='''talloc tdb_compat wbclient cap param  smbd_shim libsmb KRBCLIENT pdb SMBLDAP
+                    LIBMSRPC_GEN msrpc3 libcli_lsa3 RPC_NDR_SRVSVC popt_samba3''',
                     public_headers='include/libsmbclient.h',
                     vnum='0',
                     vars=locals())
 
 bld.SAMBA3_LIBRARY('smbsharemodes',
                     source=LIBSMBSHAREMODES_SRC,
-                    public_deps='''talloc tdb''',
+                    public_deps='''talloc tdb_compat''',
                     deps='''ccan''',
                     public_headers='include/smb_share_modes.h',
                     vnum='0',
@@ -691,7 +691,7 @@ bld.SAMBA3_LIBRARY('smbsharemodes',
 
 bld.SAMBA3_LIBRARY('nss_wins',
                   source=WINBIND_WINS_NSS_SRC,
-                  deps='''winbind-client param LIBSMB LIB_NONSMBD LIBTSOCKET KRBCLIENT
+                  deps='''winbind-client param libsmb smbd_shim LIBTSOCKET KRBCLIENT
                   cap wbclient''',
                   realname='libnss_wins.so.2',
                   vnum='2')
@@ -700,8 +700,8 @@ bld.SAMBA3_LIBRARY('msrpc3',
                    source='${LIBMSRPC_SRC}',
                    deps='''ndr ndr-standard
                     RPC_NDR_EPMAPPER NTLMSSP_COMMON COMMON_SCHANNEL LIBCLI_AUTH
-                    LIBTSOCKET KRB5_WRAP rpccommon
-                    LIBSMB''',
+                    LIBTSOCKET KRB5_WRAP dcerpc-binding
+                    libsmb''',
                    vars=locals(),
                    private_library=True)
 
@@ -722,59 +722,65 @@ bld.SAMBA3_SUBSYSTEM('AVAHI',
 
 bld.SAMBA3_SUBSYSTEM('GROUPDB',
                     source=GROUPDB_SRC,
-                    deps='tdb')
+                    deps='tdb_compat')
 
 bld.SAMBA3_SUBSYSTEM('TLDAP',
                     source=TLDAP_SRC,
                     deps='asn1util LIBTSOCKET')
 
-bld.SAMBA3_LIBRARY('passdb',
+bld.SAMBA3_LIBRARY('pdb',
                    source=PASSDB_SRC,
-                   deps='SECRETS3 SMBLDAP GROUPDB pdb wbclient LIBCLI_AUTH flag_mapping',
+                   deps='SECRETS3 SMBLDAP GROUPDB wbclient LIBCLI_AUTH flag_mapping',
                    private_library=True,
-                   allow_undefined_symbols=False,
                    vars=locals())
 
 bld.SAMBA3_SUBSYSTEM('PARAM_UTIL',
                     source=PARAM_UTIL_SRC,
-                    deps='samba-util-common')
+                    deps='samba-util')
 
 if bld.env.toplevel_build:
     bld.SAMBA3_SUBSYSTEM('LOADPARM_CTX',
                          source='param/loadparm_ctx.c',
-                         deps='''s3_param_h PARAM_WITHOUT_REG''',
+                         deps='''s3_param_h param''',
                          vars=locals())
 
-bld.SAMBA3_SUBSYSTEM('PARAM_WITHOUT_REG',
-                    source=PARAM_WITHOUT_REG_SRC,
-                    deps='''PARAM_UTIL smbd_conn ldap lber LOADPARM_CTX''',
-                    vars=locals())
+bld.SAMBA_GENERATOR('param/param_global_h',
+                    source= 'param/loadparm.c ../script/mkparamdefs.pl',
+                    target='param/param_global.h',
+                    rule='${PERL} ${SRC[1].abspath(env)} ${SRC[0].abspath(env)} --file ${TGT} --generate-scope=GLOBAL')
 
 bld.SAMBA3_SUBSYSTEM('param',
-                     source='',
-                     deps='PARAM_WITHOUT_REG samba-util smbconf',
-                     vars=locals())
+                   source=PARAM_WITHOUT_REG_SRC,
+                   deps='samba-util PARAM_UTIL smbd_conn ldap lber LOADPARM_CTX samba3core smbconf param_local_h param/param_global_h''')
 
+if bld.env.toplevel_build:
+    bld.SAMBA3_PYTHON('pys3param',
+                      source='param/pyparam.c',
+                      deps='param',
+                      public_deps='samba-hostconfig pytalloc talloc',
+                      realname='samba/samba3/param.so')
+    
 bld.SAMBA3_SUBSYSTEM('param_service',
                      source='param/service.c',
                      deps = 'USER_UTIL param USER_UTIL PRINTING')
 
 bld.SAMBA3_SUBSYSTEM('REGFIO',
                     source=REGFIO_SRC,
-                    deps='samba-util-common',
+                    deps='samba-util',
                     vars=locals())
 
 bld.SAMBA3_SUBSYSTEM('REG_API_REGF',
                     source=REG_API_REGF_SRC,
-                    deps='samba-util-common',
+                    deps='samba-util',
                     vars=locals())
 
 bld.SAMBA3_LIBRARY('smbregistry',
                    source=REG_BASE_SRC,
-                   deps='''LIB_NONSMBD tdb-wrap3 NDR_SECURITY UTIL_TDB talloc
-                   replace util_reg samba-util-common security
-                   errors3 adt_tree dbwrap_util util_str util_sec''',
+                   deps='''smbd_shim tdb-wrap3 NDR_SECURITY UTIL_TDB talloc
+                   replace util_reg samba-util security
+                   errors3 adt_tree dbwrap util_str util_sec util_malloc''',
                    vars=locals(),
+                   allow_undefined_symbols=True,
                    private_library=True)
 
 bld.SAMBA3_SUBSYSTEM('REG_SMBCONF',
@@ -787,12 +793,17 @@ bld.SAMBA3_SUBSYSTEM('REG_FULL',
                     deps='REG_SMBCONF',
                     vars=locals())
 
-bld.SAMBA3_LIBRARY('POPT_SAMBA3',
+bld.SAMBA3_LIBRARY('popt_samba3',
                    source=POPT_LIB_SRC,
-                   deps='popt samba-util-common',
+                   deps='popt samba-util util_cmdline',
                    vars=locals(),
                    private_library=True)
 
+bld.SAMBA3_LIBRARY('util_cmdline',
+                   source='lib/util_cmdline.c',
+                   deps='SECRETS3 popt',
+                   private_library=True)
+
 bld.SAMBA3_SUBSYSTEM('KRBCLIENT',
                     source=KRBCLIENT_SRC,
                     public_deps='KRB5_WRAP k5crypto',
@@ -800,26 +811,26 @@ bld.SAMBA3_SUBSYSTEM('KRBCLIENT',
 
 bld.SAMBA3_SUBSYSTEM('samba3core',
                    source=LIB_SRC,
-                   deps='LIBCRYPTO ndr security NDR_SECURITY samba-util NDR_MESSAGING LIBASYNC_REQ tdb-wrap3 UTIL_TDB UTIL_PW SAMBA_VERSION KRB5_WRAP flag_mapping util_reg PTHREADPOOL interfaces cap string_init param util_str CHARSET3 namearray SECRETS3 dbwrap_util util_sec util_malloc memcache',
+                   deps='LIBTSOCKET LIBCRYPTO ndr security NDR_SECURITY samba-util NDR_MESSAGING LIBASYNC_REQ tdb-wrap3 UTIL_TDB UTIL_PW SAMBA_VERSION KRB5_WRAP flag_mapping util_reg PTHREADPOOL interfaces cap string_init param util_str CHARSET3 namearray dbwrap util_sec util_malloc memcache ccan errors3',
                    vars=locals())
 
-bld.SAMBA3_SUBSYSTEM('LIB_NONSMBD',
-                    source=LIB_NONSMBD_SRC,
-                    vars=locals())
+bld.SAMBA3_LIBRARY('smbd_shim',
+                   source='''lib/smbd_shim.c''', 
+                   private_library=True)
 
 bld.SAMBA3_SUBSYSTEM('LIBSMB_ERR',
                     source='',
-                    deps='errors3 passdb ldap lber MSRPC_PARSE LIBCLI_AUTH rpccommon',
+                    deps='errors3 pdb ldap lber MSRPC_PARSE LIBCLI_AUTH dcerpc-binding',
                     vars=locals())
 
 bld.SAMBA3_SUBSYSTEM('LIBNTLMSSP',
                     source=LIBNTLMSSP_SRC,
-                    deps='LIBSMB_ERR NDR_NTLMSSP NTLMSSP_COMMON',
+                    deps='LIBSMB_ERR NDR_NTLMSSP NTLMSSP_COMMON gensec_runtime',
                     vars=locals())
 
-bld.SAMBA3_LIBRARY('LIBSMB',
+bld.SAMBA3_LIBRARY('libsmb',
                    source=LIBSMB_SRC,
-                   deps='LIBNTLMSSP CLDAP LIBNMB LIBNBT LIBDRSUAPI SPNEGO_PARSE LIBTSOCKET KRBCLIENT LIBCLI_SMB_COMMON',
+                   deps='LIBNTLMSSP CLDAP LIBNMB LIBNBT LIBDRSUAPI SPNEGO_PARSE LIBTSOCKET KRBCLIENT cli_smb_common util_cmdline tevent',
                    vars=locals(),
                    private_library=True)
 
@@ -830,12 +841,12 @@ bld.SAMBA3_SUBSYSTEM('LIBDRSUAPI',
 
 bld.SAMBA3_SUBSYSTEM('CLDAP',
                     source='libads/cldap.c',
-                    deps='cli-ldap-common LIBCLI_CLDAP LIBTSOCKET',
+                    deps='cli-ldap-common cli_cldap LIBTSOCKET',
                     vars=locals())
 
 bld.SAMBA3_SUBSYSTEM('SECRETS3',
                    source=SECRETS_SRC,
-                   deps='NDR_SECRETS param samba3core passdb',
+                   deps='NDR_SECRETS param samba3core pdb',
                    vars=locals())
 
 bld.SAMBA3_SUBSYSTEM('SMBLDAP',
@@ -846,7 +857,7 @@ bld.SAMBA3_SUBSYSTEM('SMBLDAP',
 
 bld.SAMBA3_LIBRARY('ads',
                    source=LIBADS_SRC,
-                   deps='cli-ldap-common KRB5_WRAP ldap lber',
+                   deps='cli-ldap-common KRB5_WRAP ldap lber KRBCLIENT param LIBNMB libsmb DCUTIL',
                    private_library=True,
                    vars=locals())
 
@@ -857,82 +868,87 @@ bld.SAMBA3_SUBSYSTEM('LIBADS_SERVER',
 
 bld.SAMBA3_SUBSYSTEM('LIBADS_PRINTER',
                     source=LIBADS_PRINTER_SRC,
-                    deps='samba-util-common',
+                    deps='samba-util',
                    vars=locals())
 
 bld.SAMBA3_SUBSYSTEM('LIBAFS',
                     source=AFS_SRC,
-                    deps='samba-util-common',
+                    deps='samba-util',
                     vars=locals())
 
 bld.SAMBA3_SUBSYSTEM('LIBAFS_SETTOKEN',
                     source=AFS_SETTOKEN_SRC,
-                    deps='samba-util-common',
+                    deps='samba-util',
                     vars=locals())
 
 bld.SAMBA3_LIBRARY('smbconf',
                    source=LIB_SMBCONF_SRC,
-                   deps='''LIBSMBCONF smbregistry REG_SMBCONF talloc PARAM_WITHOUT_REG
-                   util_reg samba-util-common errors3 CHARSET SAMBA_VERSION''',
+                   deps='''LIBSMBCONF smbregistry REG_SMBCONF talloc param
+                   util_reg samba-util errors3 charset SAMBA_VERSION''',
                    public_headers='../lib/smbconf/smbconf.h',
                    vnum='0')
 
 bld.SAMBA3_LIBRARY('smbd_conn',
                    source='smbd/conn.c',
-                   deps='string_init bitmap namearray',
-                   allow_undefined_symbols=False,
+                   deps='string_init samba-util namearray',
                    private_library=True)
 
 bld.SAMBA3_LIBRARY('smbd_base',
                     source=SMBD_SRC_BASE,
-                    deps='''tdb tevent dl krb5 ldap gssapi gssapi_krb5
-                    samba-util wbclient crypt nsl cups cap z passdb
-                    PARAM_WITHOUT_REG samba3core LIBSMB POPT_SAMBA3 KRBCLIENT AVAHI
+                    deps='''tdb_compat tevent dl krb5 ldap gssapi gssapi_krb5
+                    samba-util wbclient crypt nsl cups cap z pdb
+                    param samba3core libsmb popt_samba3 KRBCLIENT AVAHI
                     LIBMSRPC_GEN msrpc3 ads LIBADS_SERVER LIBADS_PRINTER
                     vfs vfs_default vfs_posixacl auth rpc LOCKING LIBAFS LIBAFS_SETTOKEN PROFILE
                     PRINTING PRINTBACKEND NDR_XATTR NDR_NOTIFY REGFIO
                     smbconf REG_FULL FNAME_UTIL
-                    LIBCLI_SAMR LIBCLI_LSA3 LIBRPCCLI_NETLOGON LIBCLI_SPOOLSS
+                    LIBCLI_SAMR libcli_lsa3 LIBRPCCLI_NETLOGON cli_spoolss
                     RPC_NDR_SRVSVC npa_tstream INIT_NETLOGON INIT_SAMR
-                    LIBCLI_SMB_COMMON RPC_SERVER smbd_conn param_service
+                    cli_smb_common RPC_SERVER smbd_conn param_service
+                    smbd_shim
                     ''',
                     private_library=True,
-                   allow_undefined_symbols=False,
                     vars=locals())
 
 bld.SAMBA3_SUBSYSTEM('LOCKING',
                     source='${LOCKING_SRC}',
-                    deps='''tdb talloc''',
+                    deps='''tdb_compat talloc''',
                     vars=locals())
 
 bld.SAMBA3_SUBSYSTEM('PROFILE',
                     source='${PROFILE_SRC}',
-                    deps='samba-util-common',
+                    deps='samba-util',
                     vars=locals())
 
 bld.SAMBA3_SUBSYSTEM('PRINTBASE',
                     source=PRINTBASE_SRC,
-                    deps='samba-util-common',
+                    deps='samba-util tdb',
                     vars=locals())
 
 bld.SAMBA3_SUBSYSTEM('PRINTBACKEND',
                     source=PRINTBACKEND_SRC,
-                    deps='PRINTBASE NDR_NTPRINTING LIBADS_PRINTER',
+                    deps='PRINTBASE LIBADS_PRINTER tdb printing_migrate',
                     vars=locals())
 
+bld.SAMBA3_LIBRARY('printing_migrate',
+                    source='printing/nt_printing_migrate.c rpc_client/cli_winreg_spoolss.c printing/nt_printing_os2.c',
+                    deps='NDR_NTPRINTING cli_spoolss RPC_NDR_WINREG LIBCLI_WINREG param',
+                    vars=locals(),
+                    private_library=True)
+
 bld.SAMBA3_SUBSYSTEM('PRINTING',
                     source=PRINTING_SRC,
-                    deps='NDR_PRINTCAP',
+                    deps='NDR_PRINTCAP tdb',
                     vars=locals())
 
 bld.SAMBA3_SUBSYSTEM('PASSWD_UTIL',
                     source=PASSWD_UTIL_SRC,
-                    deps='samba-util-common',
+                    deps='samba-util',
                     vars=locals())
 
 bld.SAMBA3_SUBSYSTEM('FNAME_UTIL',
                     source=FNAME_UTIL_SRC,
-                    deps='samba-util-common',
+                    deps='samba-util',
                     vars=locals())
 
 bld.SAMBA3_SUBSYSTEM('LIBNET',
@@ -952,7 +968,7 @@ bld.SAMBA3_SUBSYSTEM('LIBNET_SAMSYNC',
 
 bld.SAMBA3_SUBSYSTEM('LIBEVENTLOG',
                     source=LIB_EVENTLOG_SRC,
-                    deps='NDR_EVENTLOG',
+                    deps='NDR_EVENTLOG tdb',
                     vars=locals())
 
 bld.SAMBA3_SUBSYSTEM('LIBNMB',
@@ -967,7 +983,7 @@ bld.SAMBA3_SUBSYSTEM('LIBNBT',
 
 bld.SAMBA3_SUBSYSTEM('SERVICES',
                     source=SERVICES_SRC,
-                    deps='samba-util-common',
+                    deps='samba-util',
                     vars=locals())
 
 bld.SAMBA3_SUBSYSTEM('PLAINTEXT_AUTH',
@@ -982,17 +998,17 @@ bld.SAMBA3_SUBSYSTEM('PASSCHANGE',
 
 bld.SAMBA3_SUBSYSTEM('SAMBA_VERSION',
                     source=VERSION_SRC,
-                    deps='samba-util-common',
+                    deps='samba-util',
                     vars=locals())
 
 bld.SAMBA3_SUBSYSTEM('SLCACHE',
                     source=SLCACHE_SRC,
-                    deps='samba-util-common',
+                    deps='samba-util tdb',
                     vars=locals())
 
 bld.SAMBA3_SUBSYSTEM('DCUTIL',
                     source=DCUTIL_SRC,
-                     deps='ads',
+                     deps='ads LIBRPCCLI_NETLOGON msrpc3 libcli_lsa3 INIT_NETLOGON',
                     vars=locals())
 
 bld.SAMBA3_SUBSYSTEM('tdb-wrap3',
@@ -1000,70 +1016,51 @@ bld.SAMBA3_SUBSYSTEM('tdb-wrap3',
                      deps='tdb-wrap',
                     vars=locals())
 
-bld.SAMBA3_LIBRARY('dbwrap_util',
-                   source='lib/dbwrap_util.c lib/dbwrap_rbt.c',
-                   deps='samba-util-common UTIL_TDB errors',
-                   private_library=True,
-                   allow_undefined_symbols=False)
+bld.SAMBA3_LIBRARY('dbwrap',
+                   source='lib/dbwrap/dbwrap.c lib/dbwrap/dbwrap_util.c lib/dbwrap/dbwrap_rbt.c',
+                   deps='samba-util UTIL_TDB errors',
+                   private_library=True)
 
 bld.SAMBA3_LIBRARY('util_malloc',
                    source='''lib/util_malloc.c''',
-                   deps='samba-util-common',
-                   private_library=True,
-                   allow_undefined_symbols=False)
+                   deps='samba-util',
+                   private_library=True)
 
 bld.SAMBA3_LIBRARY('string_init',
                    source='''lib/string_init.c''',
-                   deps='samba-util-common',
-                   private_library=True,
-                   allow_undefined_symbols=False)
+                   deps='samba-util',
+                   private_library=True)
 
 bld.SAMBA3_LIBRARY('util_str',
                    source='''lib/util_str.c''',
-                   deps='samba-util-common CHARSET',
-                   private_library=True,
-                   allow_undefined_symbols=False)
+                   deps='samba-util charset',
+                   private_library=True)
 
 bld.SAMBA3_LIBRARY('util_sec',
                    source='''lib/util_sec.c''',
-                   deps='samba-util-common',
-                   private_library=True,
-                   allow_undefined_symbols=False)
-
-bld.SAMBA3_LIBRARY('bitmap',
-                   source='lib/bitmap.c',
-                   deps='samba-util-common',
-                   private_library=True,
-                   allow_undefined_symbols=False)
+                   deps='samba-util',
+                   private_library=True)
 
 bld.SAMBA3_LIBRARY('namearray',
                    source='lib/namearray.c',
-                   deps='samba-util-common',
-                   private_library=True,
-                   allow_undefined_symbols=False)
+                   deps='samba-util',
+                   private_library=True)
 
 bld.SAMBA3_LIBRARY('adt_tree',
                    source='lib/adt_tree.c',
-                   deps='samba-util-common',
-                   private_library=True,
-                   allow_undefined_symbols=False)
+                   deps='samba-util',
+                   private_library=True)
 
 bld.SAMBA3_LIBRARY('memcache',
                    source='lib/memcache.c',
-                   deps='samba-util-common util_malloc',
-                   private_library=True,
-                   allow_undefined_symbols=False)
+                   deps='samba-util util_malloc',
+                   private_library=True)
 
 bld.SAMBA3_LIBRARY('CHARSET3',
                     source='''lib/charcnv.c lib/fstring.c''',
-                    public_deps='ICONV_WRAPPER CHARSET',
+                    public_deps='ICONV_WRAPPER charset',
                     deps='samba-util util_str',
-                   private_library=True,
-                   allow_undefined_symbols=False)
-
-bld.SAMBA3_SUBSYSTEM('ldb3',
-                    source='lib/ldb_compat.c',
-                    deps='samba-util-common')
+                   private_library=True)
 
 bld.SAMBA3_SUBSYSTEM('errors3',
                      source='libsmb/errormap.c libsmb/smberr.c lib/errmap_unix.c',
@@ -1073,38 +1070,44 @@ bld.SAMBA3_SUBSYSTEM('LIBCLI_SAMR',
                     source=LIBCLI_SAMR_SRC,
                     deps='RPC_NDR_SAMR')
 
-bld.SAMBA3_SUBSYSTEM('LIBCLI_LSA3',
-                    source=LIBCLI_LSA_SRC,
-                    deps='RPC_NDR_LSA INIT_LSA')
+bld.SAMBA3_LIBRARY('libcli_lsa3',
+                   source=LIBCLI_LSA_SRC,
+                   deps='RPC_NDR_LSA INIT_LSA', 
+                   private_library=True)
 
 bld.SAMBA3_SUBSYSTEM('LIBRPCCLI_NETLOGON',
                     source=LIBRPCCLI_NETLOGON_SRC,
                     deps='RPC_NDR_NETLOGON')
 
-bld.SAMBA3_SUBSYSTEM('LIBCLI_SPOOLSS',
-                    source=LIBCLI_SPOOLSS_SRC,
-                    deps='RPC_NDR_SPOOLSS')
+bld.SAMBA3_LIBRARY('cli_spoolss',
+                   source=LIBCLI_SPOOLSS_SRC,
+                   deps='RPC_NDR_SPOOLSS param SECRETS3',
+                   private_library=True)
 
 bld.SAMBA3_SUBSYSTEM('LIBCLI_WINREG',
-                    source=LIBCLI_WINREG_SRC,
-                    deps='RPC_NDR_WINREG RPC_NCACN_NP')
+                    source='rpc_client/cli_winreg.c',
+                    deps='RPC_NDR_WINREG')
+
+bld.SAMBA3_SUBSYSTEM('LIBCLI_WINREG_INTERNAL',
+                    source='rpc_client/cli_winreg_int.c',
+                    deps='LIBCLI_WINREG RPC_NCACN_NP')
 
 bld.SAMBA3_SUBSYSTEM('RPC_CLIENT_SCHANNEL',
                     source=RPC_CLIENT_SCHANNEL_SRC,
-                    deps='samba-util-common',
+                    deps='samba-util',
                     vars=locals())
 
 bld.SAMBA3_SUBSYSTEM('INIT_LSA',
                     source='rpc_client/init_lsa.c',
-                    deps='samba-util-common')
+                    deps='samba-util')
 
 bld.SAMBA3_SUBSYSTEM('INIT_NETLOGON',
                     source='rpc_client/init_netlogon.c',
-                    deps='samba-util-common')
+                    deps='samba-util')
 
 bld.SAMBA3_SUBSYSTEM('INIT_SAMR',
                     source='rpc_client/init_samr.c',
-                    deps='samba-util-common')
+                    deps='samba-util')
 
 ########################## BINARIES #################################
 
@@ -1116,24 +1119,24 @@ bld.SAMBA3_BINARY('smbd/smbd',
 
 bld.SAMBA3_BINARY('nmbd/nmbd',
                  source=NMBD_SRC,
-                 deps='''talloc tdb tevent z cap wbclient dl
-                 passdb param ldap LIB_NONSMBD LIBSMB
-                 POPT_SAMBA3 KRBCLIENT NDR_SAMR NDR_LSA PROFILE''',
+                 deps='''talloc tdb_compat tevent z cap wbclient dl
+                 pdb param ldap smbd_shim libsmb
+                 popt_samba3 KRBCLIENT NDR_SAMR NDR_LSA PROFILE''',
                  install_path='${SBINDIR}',
                  vars=locals())
 
 bld.SAMBA3_BINARY('winbindd/winbindd',
                  source=WINBINDD_SRC,
-                 deps='''talloc tdb tevent cap dl z
-                 wbclient passdb ldap param LIB_NONSMBD LIBSMB
-                 POPT_SAMBA3 KRBCLIENT LIBMSRPC_GEN msrpc3 ads LIBADS_SERVER
+                 deps='''talloc tdb_compat tevent cap dl z
+                 wbclient pdb ldap param smbd_shim libsmb
+                 popt_samba3 KRBCLIENT LIBMSRPC_GEN msrpc3 ads LIBADS_SERVER
                  SRV_NDR_WBINT RPC_NDR_WBINT NDR_WBINT LIBAFS
                  LIBAFS_SETTOKEN PROFILE SLCACHE DCUTIL idmap nss_info
                  TOKEN_UTIL
-                 LIBCLI_SAMR LIBCLI_LSA3 LIBRPCCLI_NETLOGON
+                 LIBCLI_SAMR libcli_lsa3 LIBRPCCLI_NETLOGON
                  RPC_NDR_DSSETUP npa_tstream INIT_NETLOGON
                  RPC_NCACN_NP RPC_PIPE_REGISTER RPC_SAMR RPC_LSARPC
-                 PAM_ERRORS WB_REQTRANS AUTH_COMMON
+                 PAM_ERRORS WB_REQTRANS auth
                  ''',
                  enabled=bld.env.build_winbind,
                  install_path='${SBINDIR}',
@@ -1141,8 +1144,8 @@ bld.SAMBA3_BINARY('winbindd/winbindd',
 
 bld.SAMBA3_BINARY('web/swat',
                  source=SWAT_SRC,
-                 deps='''talloc tevent cap samba3core LIBSMB wbclient param
-                 LIB_NONSMBD passdb POPT_SAMBA3 KRBCLIENT cups
+                 deps='''talloc tevent cap samba3core libsmb wbclient param
+                 smbd_shim pdb popt_samba3 KRBCLIENT cups
                  LIBMSRPC_GEN msrpc3 LOCKING PLAINTEXT_AUTH PRINTBASE PRINTING FNAME_UTIL
                  LIBCLI_SAMR INIT_LSA PASSCHANGE''',
                  enabled=bld.env.build_swat,
@@ -1151,11 +1154,11 @@ bld.SAMBA3_BINARY('web/swat',
 
 bld.SAMBA3_BINARY('rpcclient/rpcclient',
                  source=RPCCLIENT_SRC,
-                 deps='''talloc tdb cap POPT_SAMBA3 passdb LIBSMB LIB_NONSMBD
-                 PARAM_WITHOUT_REG wbclient param KRBCLIENT LIBMSRPC_GEN msrpc3
+                 deps='''talloc tdb_compat cap popt_samba3 pdb libsmb smbd_shim
+                 param wbclient param KRBCLIENT LIBMSRPC_GEN msrpc3
                  ads SMBREADLINE DCUTIL RPC_NDR_WINREG RPC_NDR_ECHO
                  RPC_CLIENT_SCHANNEL
-                 LIBCLI_SAMR LIBCLI_LSA3 LIBRPCCLI_NETLOGON LIBCLI_SPOOLSS
+                 LIBCLI_SAMR libcli_lsa3 LIBRPCCLI_NETLOGON cli_spoolss
                  RPC_NDR_SRVSVC RPC_NDR_WKSSVC RPC_NDR_DSSETUP RPC_NDR_DFS
                  RPC_NDR_DRSUAPI RPC_NDR_NTSVCS RPC_NDR_EVENTLOG INIT_NETLOGON
                  INIT_SAMR
@@ -1164,101 +1167,102 @@ bld.SAMBA3_BINARY('rpcclient/rpcclient',
 
 bld.SAMBA3_BINARY('client/smbclient' + bld.env.suffix3,
                  source=CLIENT_SRC,
-                 deps='''talloc tdb cap POPT_SAMBA3 passdb LIBSMB LIB_NONSMBD
-                 PARAM_WITHOUT_REG wbclient param KRBCLIENT LIBMSRPC_GEN
+                 deps='''talloc tdb_compat cap popt_samba3 pdb libsmb smbd_shim
+                 param wbclient param KRBCLIENT LIBMSRPC_GEN
                  msrpc3 SMBREADLINE libsmb/smbclient RPC_NDR_SRVSVC INIT_LSA
-                 LIBCLI_SMB_COMMON''',
+                 cli_smb_common''',
                  vars=locals())
 
 bld.SAMBA3_BINARY('net',
                  source=NET_SRC,
-                 deps='''talloc tdb netapi addns cap intl POPT_SAMBA3 passdb LIBSMB LIB_NONSMBD
-                 PARAM_WITHOUT_REG wbclient param KRBCLIENT LIBMSRPC_GEN msrpc3 LIBGPO ads LIBADS_SERVER LIBADS_PRINTER
+                 deps='''talloc tdb_compat netapi addns cap intl popt_samba3 pdb libsmb smbd_shim
+                 param wbclient param KRBCLIENT LIBMSRPC_GEN msrpc3 LIBGPO ads LIBADS_SERVER LIBADS_PRINTER
                  LIBAFS LIBAFS_SETTOKEN SMBREADLINE PASSWD_UTIL LIBNET
                  LIBNET_DSSYNC LIBNET_SAMSYNC LIBEVENTLOG DCUTIL
                  REGFIO NDR_NTPRINTING RPC_NDR_WINREG
                  RPC_CLIENT_SCHANNEL TOKEN_UTIL
-                 LIBCLI_SAMR LIBCLI_LSA3 LIBRPCCLI_NETLOGON LIBCLI_SPOOLSS
+                 LIBCLI_SAMR libcli_lsa3 LIBRPCCLI_NETLOGON cli_spoolss
                  RPC_NDR_SRVSVC RPC_NDR_WKSSVC RPC_NDR_SVCCTL RPC_NDR_DSSETUP
                  RPC_NDR_INITSHUTDOWN RPC_NDR_DRSUAPI INIT_NETLOGON INIT_SAMR
+                 printing_migrate
                 ''',
                  vars=locals())
 
 bld.SAMBA3_BINARY('profiles',
                  source=PROFILES_SRC,
-                 deps='''talloc tdb cap tevent POPT_SAMBA3 param samba3core LIBSMB_ERR LIB_NONSMBD REGFIO''',
+                 deps='''talloc tdb_compat cap tevent popt_samba3 param samba3core LIBSMB_ERR smbd_shim REGFIO''',
                  vars=locals())
 
 bld.SAMBA3_BINARY('smbspool',
                  source=CUPS_SRC,
-                 deps='''talloc tdb tevent cap wbclient POPT_SAMBA3 param LIBSMB LIB_NONSMBD samba3core
+                 deps='''talloc tdb_compat tevent cap wbclient popt_samba3 param libsmb smbd_shim samba3core
                  KRBCLIENT asn1util LIBTSOCKET NDR_SAMR NDR_LSA''',
                  vars=locals())
 
 bld.SAMBA3_BINARY('testparm',
                  source=TESTPARM_SRC,
                  deps='''talloc tevent ldap cap 
-                 wbclient asn1util LIBTSOCKET passdb param LIB_NONSMBD
-                 LIBSMB_ERR POPT_SAMBA3''',
+                 wbclient asn1util LIBTSOCKET pdb param smbd_shim
+                 LIBSMB_ERR popt_samba3''',
                  vars=locals())
 
 bld.SAMBA3_BINARY('smbta-util',
                  source=SMBTA_UTIL_SRC,
-                 deps='''talloc tdb tevent cap param POPT_SAMBA3 LIB_NONSMBD
+                 deps='''talloc tdb_compat tevent cap param popt_samba3 smbd_shim
                  LIBSMB_ERR''',
                  vars=locals())
 
 bld.SAMBA3_BINARY('smbstatus',
                  source=STATUS_SRC,
-                 deps='''talloc tdb tevent cap param POPT_SAMBA3 LIB_NONSMBD
+                 deps='''talloc tdb_compat tevent cap param popt_samba3 smbd_shim
                  LIBSMB_ERR LOCKING PROFILE FNAME_UTIL''',
                  vars=locals())
 
 bld.SAMBA3_BINARY('smbcontrol',
                  source=SMBCONTROL_SRC,
-                 deps='''talloc tdb tevent cap param LIB_NONSMBD LIBSMB_ERR POPT_SAMBA3 PRINTBASE''',
+                 deps='''talloc tdb_compat tevent cap param smbd_shim LIBSMB_ERR popt_samba3 PRINTBASE''',
                  vars=locals())
 
 bld.SAMBA3_BINARY('smbtree',
                  source=SMBTREE_SRC,
-                 deps='''talloc tdb tevent cap wbclient param LIB_NONSMBD
-                 LIBSMB LIBSMB_ERR POPT_SAMBA3 KRBCLIENT passdb SMBLDAP LIBMSRPC_GEN msrpc3 PROFILE
+                 deps='''talloc tdb_compat tevent cap wbclient param smbd_shim
+                 libsmb LIBSMB_ERR popt_samba3 KRBCLIENT pdb SMBLDAP LIBMSRPC_GEN msrpc3 PROFILE
                  RPC_NDR_SRVSVC''',
                  vars=locals())
 
 bld.SAMBA3_BINARY('smbpasswd',
                  source=SMBPASSWD_SRC,
-                 deps='''talloc tdb tevent cap wbclient param LIB_NONSMBD
-                 LIBSMB LIBSMB_ERR POPT_SAMBA3 KRBCLIENT passdb SMBLDAP LIBMSRPC_GEN msrpc3 PASSWD_UTIL
+                 deps='''talloc tdb_compat tevent cap wbclient param smbd_shim
+                 libsmb LIBSMB_ERR popt_samba3 KRBCLIENT pdb SMBLDAP LIBMSRPC_GEN msrpc3 PASSWD_UTIL
                  LIBCLI_SAMR INIT_LSA PASSCHANGE''',
                  vars=locals())
 
 bld.SAMBA3_BINARY('pdbedit',
                  source=PDBEDIT_SRC,
-                 deps='''talloc tdb tevent cap wbclient param LIB_NONSMBD
-                 LIBNTLMSSP LIBSMB_ERR POPT_SAMBA3 passdb SMBLDAP
+                 deps='''talloc tdb_compat tevent cap wbclient param smbd_shim
+                 LIBNTLMSSP LIBSMB_ERR popt_samba3 pdb SMBLDAP
                  PASSWD_UTIL cli-ldap-common''',
                  vars=locals())
 
 bld.SAMBA3_BINARY('smbget',
                  source=SMBGET_SRC,
-                 deps='''talloc tdb libsmb/smbclient POPT_SAMBA3''',
+                 deps='''talloc tdb_compat libsmb/smbclient popt_samba3''',
                  vars=locals())
 
 bld.SAMBA3_BINARY('nmblookup' + bld.env.suffix3,
                  source=NMBLOOKUP_SRC,
-                 deps='''talloc tdb tevent cap param LIB_NONSMBD POPT_SAMBA3 LIBSMB_ERR LIBNMB''',
+                 deps='''talloc tdb_compat tevent cap param smbd_shim popt_samba3 LIBSMB_ERR LIBNMB''',
                  vars=locals())
 
 bld.SAMBA3_BINARY('smbtorture' + bld.env.suffix3,
                  source=SMBTORTURE_SRC,
-                 deps='''talloc tdb tevent cap wbclient param LIBSMB KRBCLIENT TLDAP
-                 LIB_NONSMBD POPT_SAMBA3 asn1util LIBTSOCKET NDR_LSA msrpc3 LIBMSRPC_GEN RPC_NDR_ECHO WB_REQTRANS''',
+                 deps='''talloc tdb_compat tevent cap wbclient param libsmb KRBCLIENT TLDAP
+                 smbd_shim popt_samba3 asn1util LIBTSOCKET NDR_LSA msrpc3 LIBMSRPC_GEN RPC_NDR_ECHO WB_REQTRANS''',
                  vars=locals())
 
 bld.SAMBA3_BINARY('smbconftort',
                  source=SMBCONFTORT_SRC,
-                 deps='''talloc tdb tevent cap wbclient param LIB_NONSMBD LIBSMB_ERR POPT_SAMBA3''',
+                 deps='''talloc tdb_compat tevent cap wbclient param smbd_shim LIBSMB_ERR popt_samba3''',
                  vars=locals())
 
 bld.SAMBA3_BINARY('replacetort',
@@ -1268,50 +1272,50 @@ bld.SAMBA3_BINARY('replacetort',
 
 bld.SAMBA3_BINARY('masktest' + bld.env.suffix3,
                  source=MASKTEST_SRC,
-                 deps='''talloc tdb cap wbclient param LIB_NONSMBD LIBSMB KRBCLIENT
+                 deps='''talloc tdb_compat cap wbclient param smbd_shim libsmb KRBCLIENT
                  asn1util LIBTSOCKET NDR_SAMR NDR_LSA''',
                  vars=locals())
 
 bld.SAMBA3_BINARY('msgtest',
                  source=MSGTEST_SRC,
-                 deps='''talloc tdb tevent cap param LIBSMB_ERR LIB_NONSMBD''',
+                 deps='''talloc tdb_compat tevent cap param LIBSMB_ERR smbd_shim''',
                  vars=locals())
 
 bld.SAMBA3_BINARY('smbcacls',
                  source=SMBCACLS_SRC,
-                 deps='''talloc tdb cap wbclient param LIBSMB KRBCLIENT
-                 LIB_NONSMBD passdb POPT_SAMBA3 SMBLDAP LIBMSRPC_GEN
-                 msrpc3 LIBCLI_LSA3''',
+                 deps='''talloc tdb_compat cap wbclient param libsmb KRBCLIENT
+                 smbd_shim pdb popt_samba3 SMBLDAP LIBMSRPC_GEN
+                 msrpc3 libcli_lsa3''',
                  vars=locals())
 
 bld.SAMBA3_BINARY('smbcquotas',
                  source=SMBCQUOTAS_SRC,
-                 deps='''talloc tdb cap wbclient param LIB_NONSMBD LIBSMB KRBCLIENT
-                 POPT_SAMBA3 passdb SMBLDAP LIBMSRPC_GEN msrpc3
-                 LIBCLI_LSA3''',
+                 deps='''talloc tdb_compat cap wbclient param  smbd_shim libsmb KRBCLIENT
+                 popt_samba3 pdb SMBLDAP LIBMSRPC_GEN msrpc3
+                 libcli_lsa3''',
                  vars=locals())
 
 bld.SAMBA3_BINARY('eventlogadm',
                  source=EVTLOGADM_SRC,
-                 deps='''talloc tevent cap POPT_SAMBA3 samba3core param
-                 LIB_NONSMBD LIBSMB_ERR passdb wbclient LIBEVENTLOG''',
+                 deps='''talloc tevent cap popt_samba3 samba3core param
+                 smbd_shim LIBSMB_ERR pdb wbclient LIBEVENTLOG''',
                  vars=locals())
 
 bld.SAMBA3_BINARY('sharesec',
                  source=SHARESEC_SRC,
-                 deps='''talloc tdb tevent cap wbclient param LIB_NONSMBD LIBSMB_ERR POPT_SAMBA3''',
+                 deps='''talloc tdb_compat tevent cap wbclient param smbd_shim LIBSMB_ERR popt_samba3''',
                  vars=locals())
 
 bld.SAMBA3_BINARY('locktest' + bld.env.suffix3,
                  source=LOCKTEST_SRC,
-                 deps='''talloc tdb tevent cap wbclient param KRBCLIENT LIBSMB LIB_NONSMBD
+                 deps='''talloc tdb_compat tevent cap wbclient param KRBCLIENT libsmb smbd_shim
                  asn1util LIBTSOCKET NDR_SAMR NDR_LSA LOCKING FNAME_UTIL''',
                  vars=locals())
 
 bld.SAMBA3_BINARY('pdbtest',
                  source=PDBTEST_SRC,
-                 deps='''talloc tdb cap wbclient param LIBSMB KRBCLIENT LIB_NONSMBD passdb
-                 SMBLDAP POPT_SAMBA3 NDR_SAMR NDR_LSA''',
+                 deps='''talloc tdb_compat cap wbclient param libsmb KRBCLIENT smbd_shim pdb
+                 SMBLDAP popt_samba3 NDR_SAMR NDR_LSA''',
                  vars=locals())
 
 bld.SAMBA3_BINARY('vfstest',
@@ -1321,7 +1325,7 @@ bld.SAMBA3_BINARY('vfstest',
 
 bld.SAMBA3_BINARY('smbiconv',
                  source=SMBICONV_SRC,
-                 deps='''talloc tdb tevent cap param LIB_NONSMBD POPT_SAMBA3 LIBSMB_ERR''',
+                 deps='''talloc tdb_compat tevent cap param smbd_shim popt_samba3 LIBSMB_ERR''',
                  vars=locals())
 
 bld.SAMBA3_BINARY('log2pcap',
@@ -1331,7 +1335,7 @@ bld.SAMBA3_BINARY('log2pcap',
 
 bld.SAMBA3_BINARY('locktest2',
                  source=LOCKTEST2_SRC,
-                 deps='''talloc tdb tevent cap wbclient param KRBCLIENT LIBSMB LIB_NONSMBD
+                 deps='''talloc tdb_compat tevent cap wbclient param KRBCLIENT libsmb smbd_shim
                  asn1util LIBTSOCKET NDR_SAMR NDR_LSA LOCKING FNAME_UTIL''',
                  vars=locals())
 
@@ -1342,7 +1346,7 @@ bld.SAMBA3_BINARY('debug2html',
 
 bld.SAMBA3_BINARY('smbfilter',
                  source=SMBFILTER_SRC,
-                 deps='''talloc tevent cap wbclient param LIBSMB LIB_NONSMBD KRBCLIENT asn1util LIBTSOCKET
+                 deps='''talloc tevent cap wbclient param libsmb smbd_shim KRBCLIENT asn1util LIBTSOCKET
                  NDR_SAMR NDR_LSA''',
                  vars=locals())
 
@@ -1354,15 +1358,15 @@ bld.SAMBA3_BINARY('versiontest',
 bld.SAMBA3_BINARY('wbinfo' + bld.env.suffix3,
                  source=WBINFO_SRC,
                  deps='''talloc wbclient tevent cap
-                 asn1util LIBTSOCKET passdb ldap param LIB_NONSMBD
-                 LIBNTLMSSP POPT_SAMBA3 LIBAFS_SETTOKEN''',
+                 asn1util LIBTSOCKET pdb ldap param smbd_shim
+                 LIBNTLMSSP popt_samba3 LIBAFS_SETTOKEN''',
                  vars=locals())
 
 bld.SAMBA3_BINARY('ntlm_auth' + bld.env.suffix3,
                  source=NTLM_AUTH_SRC,
-                 deps='''tdb talloc cap KRB5_WRAP k5crypto wbclient param LIB_NONSMBD
-                 samba3core LIBNTLMSSP POPT_SAMBA3 asn1util LIBTSOCKET
-                 passdb SMBLDAP winbind-client LIBINIPARSER LIBADS_SERVER
+                 deps='''tdb_compat talloc cap KRB5_WRAP k5crypto wbclient param smbd_shim
+                 samba3core LIBNTLMSSP popt_samba3 asn1util LIBTSOCKET
+                 pdb SMBLDAP winbind-client LIBINIPARSER LIBADS_SERVER
                  NDR_SAMR NDR_LSA NDR_NETLOGON cli-ldap-common LIBNMB SLCACHE SPNEGO_PARSE KRBCLIENT''',
                  vars=locals())
 
@@ -1372,35 +1376,35 @@ bld.SAMBA3_BINARY('timelimit',
 
 bld.SAMBA3_BINARY('rpc_open_tcp',
                  source=RPC_OPEN_TCP_SRC,
-                 deps='''talloc tdb tevent cap wbclient KRBCLIENT param samba3core LIBSMB LIB_NONSMBD
+                 deps='''talloc tdb_compat tevent cap wbclient KRBCLIENT param samba3core libsmb smbd_shim
                  LIBSMB_ERR asn1util LIBTSOCKET LIBMSRPC_GEN msrpc3''',
                  vars=locals())
 
 bld.SAMBA3_BINARY('test_lp_load',
                  source=TEST_LP_LOAD_SRC,
-                 deps='''talloc tdb tevent cap wbclient param LIB_NONSMBD POPT_SAMBA3 LIBNTLMSSP''',
+                 deps='''talloc tdb_compat tevent cap wbclient param  smbd_shim popt_samba3 LIBNTLMSSP''',
                  vars=locals())
 
 bld.SAMBA3_BINARY('dbwrap_tool',
                  source=DBWRAP_TOOL_SRC,
-                 deps='''talloc tdb tevent cap param LIB_NONSMBD LIBSMB_ERR''',
+                 deps='''talloc tdb_compat tevent cap param smbd_shim LIBSMB_ERR''',
                  vars=locals())
 
 bld.SAMBA3_BINARY('dbwrap_torture',
                  source=DBWRAP_TORTURE_SRC,
-                 deps='''talloc tdb tevent cap param LIB_NONSMBD LIBSMB_ERR
-                 POPT_SAMBA3''',
+                 deps='''talloc tdb_compat tevent cap param  smbd_shim LIBSMB_ERR
+                 popt_samba3''',
                  vars=locals())
 
 bld.SAMBA3_BINARY('split_tokens',
                  source=SPLIT_TOKENS_SRC,
-                 deps='''talloc tdb tevent cap wbclient param LIB_NONSMBD POPT_SAMBA3
+                 deps='''talloc tdb_compat tevent cap wbclient param smbd_shim popt_samba3
                  LIBNTLMSSP''',
                  vars=locals())
 
 bld.SAMBA3_BINARY('vlp',
                  source=VLP_SRC,
-                 deps='''talloc tdb PARAM_UTIL UTIL_TDB samba3core param''',
+                 deps='''talloc tdb_compat PARAM_UTIL UTIL_TDB samba3core param''',
                  vars=locals())
 
 swat_dir = os.path.join(bld.curdir, '../swat')
@@ -1412,11 +1416,13 @@ bld.INSTALL_FILES('${SWATDIR}', swat_files, base_name='../swat')
 # builds. Effectively these are build rule aliases
 
 if not bld.env.toplevel_build:
-    bld.SAMBA3_SUBSYSTEM('POPT_SAMBA', source='', deps='POPT_SAMBA3')
-    bld.SAMBA3_SUBSYSTEM('samba-util', source='', deps='DYNCONFIG')
+    bld.SAMBA3_SUBSYSTEM('POPT_SAMBA', source='', deps='popt_samba3')
+    bld.SAMBA3_SUBSYSTEM('ldb3',
+                        source='lib/ldb_compat.c',
+                        deps='samba-util')
     bld.SAMBA3_SUBSYSTEM('ldb', source='', deps='ldb3')
-    bld.SAMBA3_SUBSYSTEM('dcerpc', '', deps='UTIL_TEVENT')
-    bld.SAMBA3_SUBSYSTEM('cli-ldap', '', deps='UTIL_TEVENT')
+    bld.SAMBA3_SUBSYSTEM('dcerpc', '', deps='tevent-util')
+    bld.SAMBA3_SUBSYSTEM('cli-ldap', '', deps='tevent-util')
     bld.SAMBA3_SUBSYSTEM('LOADPARM_CTX', '')
 
 ########################## INCLUDES #################################
@@ -1428,6 +1434,7 @@ bld.RECURSE('../lib/addns')
 bld.RECURSE('../lib/async_req')
 bld.RECURSE('../lib/ccan')
 bld.RECURSE('../lib/socket')
+bld.RECURSE('../lib/param')
 bld.RECURSE('../libcli/auth')
 bld.RECURSE('../libcli/drsuapi')
 bld.RECURSE('../libcli/ldap')
@@ -1450,7 +1457,7 @@ bld.RECURSE('../lib/smbconf')
 bld.RECURSE('../lib/socket_wrapper')
 bld.RECURSE('../lib/uid_wrapper')
 bld.RECURSE('../lib/talloc')
-bld.RECURSE('../lib/tdb')
+bld.RECURSE('../lib/tdb_compat')
 bld.RECURSE('../lib/util')
 bld.RECURSE('../lib/tevent')
 bld.RECURSE('../lib/tsocket')