s3:registry: move reg_api_regf prototypes to their own header file.
[amitay/samba.git] / source3 / wscript_build
index 0c7f5aa86b07f16f66f4d140cc1f9bab677767ac..fe70ce4aad11aaf96ef5e6890f8fb8c79bfc3e12 100644 (file)
@@ -66,69 +66,82 @@ LIBNDR_SCHANNEL_SRC = '''../librpc/gen_ndr/ndr_schannel.c
 LIBNDR_SPOOLSS_SRC = '''../librpc/gen_ndr/ndr_spoolss.c
                   ../librpc/ndr/ndr_spoolss_buf.c'''
 
+LIBNDR_PREG_SRC = '''librpc/gen_ndr/ndr_preg.c
+                     librpc/ndr/ndr_preg.c'''
+
 LIBNDR_XATTR_SRC = '''../librpc/gen_ndr/ndr_xattr.c
                   ../librpc/ndr/ndr_xattr.c'''
 
 LIBCLI_SPOOLSS_SRC = '''
-                     librpc/gen_ndr/cli_spoolss.c
-                     librpc/gen_ndr/ndr_spoolss_c.c
+                     ../librpc/gen_ndr/cli_spoolss.c
+                     ../librpc/gen_ndr/ndr_spoolss_c.c
                      rpc_client/cli_spoolss.c
                      rpc_client/init_spoolss.c'''
 
 LIBCLI_EVENTLOG_SRC = '''
-                      librpc/gen_ndr/cli_eventlog.c
-                      librpc/gen_ndr/ndr_eventlog_c.c'''
+                      ../librpc/gen_ndr/cli_eventlog.c
+                      ../librpc/gen_ndr/ndr_eventlog_c.c'''
 
 LIBCLI_WINREG_SRC = '''
-                    librpc/gen_ndr/cli_winreg.c
-                    librpc/gen_ndr/ndr_winreg_c.c'''
+                    ../librpc/gen_ndr/cli_winreg.c
+                    ../librpc/gen_ndr/ndr_winreg_c.c'''
 
 LIBCLI_NTSVCS_SRC = '''
-                    librpc/gen_ndr/cli_ntsvcs.c
-                    librpc/gen_ndr/ndr_ntsvcs_c.c'''
+                    ../librpc/gen_ndr/cli_ntsvcs.c
+                    ../librpc/gen_ndr/ndr_ntsvcs_c.c'''
 
 LIBCLI_DRSUAPI_SRC = '''
-                     librpc/gen_ndr/cli_drsuapi.c
-                     librpc/gen_ndr/ndr_drsuapi_c.c'''
+                     ../librpc/gen_ndr/cli_drsuapi.c
+                     ../librpc/gen_ndr/ndr_drsuapi_c.c'''
 
 LIBCLI_DFS_SRC = '''
-                 librpc/gen_ndr/cli_dfs.c
-                 librpc/gen_ndr/ndr_dfs_c.c'''
+                 ../librpc/gen_ndr/cli_dfs.c
+                 ../librpc/gen_ndr/ndr_dfs_c.c'''
 
 LIBCLI_ECHO_SRC = '''
-                  librpc/gen_ndr/cli_echo.c
-                  librpc/gen_ndr/ndr_echo_c.c'''
+                  ../librpc/gen_ndr/cli_echo.c
+                  ../librpc/gen_ndr/ndr_echo_c.c'''
 
 LIBCLI_INITSHUTDOWN_SRC = '''
-                          librpc/gen_ndr/cli_initshutdown.c
-                          librpc/gen_ndr/ndr_initshutdown_c.c'''
+                          ../librpc/gen_ndr/cli_initshutdown.c
+                          ../librpc/gen_ndr/ndr_initshutdown_c.c'''
 
 LIBCLI_DSSETUP_SRC = '''
-                     librpc/gen_ndr/cli_dssetup.c
-                     librpc/gen_ndr/ndr_dssetup_c.c'''
+                     ../librpc/gen_ndr/cli_dssetup.c
+                     ../librpc/gen_ndr/ndr_dssetup_c.c'''
 
 LIBCLI_SVCCTL_SRC = '''
-                    librpc/gen_ndr/cli_svcctl.c
-                    librpc/gen_ndr/ndr_svcctl_c.c'''
+                    ../librpc/gen_ndr/cli_svcctl.c
+                    ../librpc/gen_ndr/ndr_svcctl_c.c'''
 
 LIBCLI_WKSSVC_SRC = '''
-                    librpc/gen_ndr/cli_wkssvc.c
-                    librpc/gen_ndr/ndr_wkssvc_c.c'''
+                    ../librpc/gen_ndr/cli_wkssvc.c
+                    ../librpc/gen_ndr/ndr_wkssvc_c.c'''
 
 LIBCLI_SRVSVC_SRC = '''
-                    librpc/gen_ndr/cli_srvsvc.c
-                    librpc/gen_ndr/ndr_srvsvc_c.c'''
+                    ../librpc/gen_ndr/cli_srvsvc.c
+                    ../librpc/gen_ndr/ndr_srvsvc_c.c'''
 
 LIBCLI_LSA_SRC = '''
-                 librpc/gen_ndr/cli_lsa.c
-                 librpc/gen_ndr/ndr_lsa_c.c
-                 rpc_client/cli_lsarpc.c'''
+                 ../librpc/gen_ndr/cli_lsa.c
+                 ../librpc/gen_ndr/ndr_lsa_c.c
+                 rpc_client/cli_lsarpc.c
+                 rpc_client/init_lsa.c'''
 
 LIBCLI_SAMR_SRC = '''
-                  librpc/gen_ndr/cli_samr.c
-                  librpc/gen_ndr/ndr_samr_c.c
+                  ../librpc/gen_ndr/cli_samr.c
+                  ../librpc/gen_ndr/ndr_samr_c.c
                   rpc_client/cli_samr.c'''
 
+LIBCLI_NETLOGON_SRC = '''
+                      ../librpc/gen_ndr/cli_netlogon.c
+                      ../librpc/gen_ndr/ndr_netlogon_c.c
+                      rpc_client/cli_netlogon.c'''
+
+LIBCLI_EPMAPPER_SRC = '''
+                      ../librpc/gen_ndr/cli_epmapper.c
+                      ../librpc/gen_ndr/ndr_epmapper_c.c'''
+
 LIBNDR_GEN_SRC = '''../librpc/gen_ndr/ndr_wkssvc.c
                  ${LIBNDR_GEN_SRC0}
                  ../librpc/gen_ndr/ndr_dfs.c
@@ -139,10 +152,7 @@ LIBNDR_GEN_SRC = '''../librpc/gen_ndr/ndr_wkssvc.c
                  ../librpc/gen_ndr/ndr_eventlog.c
                  ${LIBNDR_NETLOGON_SRC}
                  ../librpc/gen_ndr/ndr_dssetup.c
-                 librpc/gen_ndr/ndr_notify.c
-                 ${LIBNDR_XATTR_SRC}
                  ../librpc/gen_ndr/ndr_epmapper.c
-                 ../librpc/gen_ndr/ndr_named_pipe_auth.c
                  ../librpc/gen_ndr/ndr_ntsvcs.c
                  ${LIBNDR_SPOOLSS_SRC}'''
 
@@ -153,9 +163,6 @@ LIBNDR_NTPRINTING_SRC = '''../librpc/gen_ndr/ndr_ntprinting.c
 # that requires knowledge of security contexts
 REG_PARSE_PRS_SRC = '''registry/reg_parse_prs.c'''
 
-RPC_PARSE_SRC = '''rpc_client/init_netlogon.c
-                 rpc_client/init_lsa.c'''
-
 LIBREPLACE_SRC = '''${LIBREPLACE_SRCS}'''
 
 SOCKET_WRAPPER_SRC = '''${SOCKET_WRAPPER_SRCS}'''
@@ -212,7 +219,7 @@ LIB_SRC = '''${LIBSAMBAUTIL_SRC} ${UTIL_SRC} ${CRYPTO_SRC}
           lib/util_pw.c lib/access.c lib/smbrun.c
           lib/bitmap.c lib/dprintf.c ${UTIL_REG_SRC}
           lib/wins_srv.c
-          lib/util_str.c lib/clobber.c lib/util_sid.c lib/util_uuid.c
+          lib/util_str.c lib/clobber.c lib/util_sid.c
           lib/util_unistr.c lib/util_file.c lib/util_names.c
           lib/util.c lib/util_sock.c lib/sock_exec.c lib/util_sec.c
           lib/substitute.c lib/dbwrap_util.c
@@ -299,7 +306,7 @@ LIBSMB_ERR_SRC0 = '''${NTERR_SRC} ${DOSERR_SRC} ${ERRORMAP_SRC} ${DCE_RPC_ERR_SR
 
 LIBSMB_ERR_SRC1 = '''../libcli/auth/smbdes.c ../libcli/auth/smbencrypt.c ../libcli/auth/msrpc_parse.c ../libcli/auth/session.c'''
 
-LIBSMB_ERR_SRC = '${LIBSMB_ERR_SRC0} ${LIBSMB_ERR_SRC1} ${REG_PARSE_PRS_SRC}'
+LIBSMB_ERR_SRC = '${LIBSMB_ERR_SRC0} ${LIBSMB_ERR_SRC1}'
 
 LIBSMB_SRC0 = '''
                ../libcli/auth/ntlm_check.c
@@ -314,10 +321,10 @@ LIBSMB_SRC0 = '''
 LIBSAMBA_SRC = '${LIBSMB_SRC0}'
 
 LIBCLI_LDAP_MESSAGE_SRC = '''../libcli/ldap/ldap_message.c'''
-LIBCLI_LDAP_NDR_SRC = '''../libcli/ldap/ldap_ndr.c'''
+LIBCLI_LDAP_NDR_SRC = '''../libcli/ldap/ldap_ndr.c lib/ldb_compat.c'''
 
 CLDAP_SRC = '''libads/cldap.c
-        ../libcli/cldap/cldap.c lib/ldb_compat.c
+        ../libcli/cldap/cldap.c
         ../lib/util/idtree.c
         ${LIBCLI_LDAP_MESSAGE_SRC} ${LIBCLI_LDAP_NDR_SRC}'''
 
@@ -342,26 +349,23 @@ LIBSMB_SRC = '''libsmb/clientgen.c libsmb/cliconnect.c libsmb/clifile.c
              ${CLDAP_SRC}
              ${DRSUAPI_SRC}'''
 
-RPC_CLIENT_SRC1 = '''rpc_client/cli_netlogon.c
-                  ${SCHANNEL_SRC}'''
-
 LIBMSRPC_SRC = '''
-               ${RPC_CLIENT_SRC1}
-               ${RPC_CLIENT_SRC}
-               rpc_client/init_samr.c
-                   ../librpc/rpc/binding.c'''
-
-DCERPC_CLIENT_GEN_SRC = '''
-                ../librpc/gen_ndr/ndr_netlogon_c.c
-                ../librpc/gen_ndr/ndr_epmapper_c.c'''
+               ${SCHANNEL_SRC}
+               rpc_client/cli_pipe.c
+               librpc/rpc/rpc_common.c
+               librpc/rpc/dcerpc_gssapi.c
+               librpc/rpc/dcerpc_krb5.c
+               librpc/rpc/dcerpc_spnego.c
+               rpc_client/rpc_transport_np.c
+               rpc_client/rpc_transport_sock.c
+               rpc_client/rpc_transport_tstream.c
+               ../librpc/rpc/binding.c
+               ../librpc/rpc/dcerpc_util.c
+               librpc/rpc/dcerpc_helpers.c
+               ../librpc/rpc/binding_handle.c'''
 
 LIBMSRPC_GEN_SRC = '''
-                   ../librpc/gen_ndr/cli_netlogon.c
-                   ../librpc/gen_ndr/cli_epmapper.c
-                   ${DCERPC_CLIENT_GEN_SRC}
-                   ../librpc/rpc/dcerpc_util.c
-                   librpc/rpc/dcerpc_helpers.c
-                   ../librpc/rpc/binding_handle.c
+                   ${LIBCLI_EPMAPPER_SRC}
                    ${LIBNDR_GEN_SRC}'''
 
 #
@@ -373,7 +377,9 @@ REG_INIT_BASIC_SRC = '''registry/reg_init_basic.c'''
 REG_INIT_SMBCONF_SRC = '''registry/reg_init_smbconf.c'''
 REG_INIT_FULL_SRC = '''registry/reg_init_full.c'''
 
-REGFIO_SRC = '''registry/regfio.c'''
+REGFIO_SRC = '''registry/regfio.c ${REG_PARSE_PRS_SRC}'''
+
+REG_API_REGF_SRC = '''registry/reg_api_regf.c'''
 
 REGSRCS_SRC = '''registry/reg_objects.c'''
 
@@ -393,7 +399,6 @@ REG_BACKENDS_EXTRA_SRC = '''registry/reg_backend_printing.c
 REG_BASE_SRC = '''registry/reg_api.c
                registry/reg_dispatcher.c
                registry/reg_cachehook.c
-               ${REGFIO_SRC}
                ${REGSRCS_SRC}
                registry/reg_util_internal.c
                lib/util_nttoken.c
@@ -403,7 +408,8 @@ REG_BASE_SRC = '''registry/reg_api.c
 REG_SMBCONF_SRC = '''${REG_BASE_SRC}
                   ${REG_BACKENDS_SMBCONF_SRC}
                   ${REG_INIT_SMBCONF_SRC}
-                 registry/reg_util_token.c'''
+                  registry/reg_util_token.c
+                  registry/reg_api_util.c'''
 
 REG_FULL_SRC = '''${REG_SMBCONF_SRC}
                ${REG_BACKENDS_EXTRA_SRC}
@@ -417,10 +423,11 @@ LIB_EVENTLOG_SRC = '''lib/eventlog/eventlog.c'''
 
 RPC_STATIC = ''
 
-RPC_LSA_SRC = '''rpc_server/srv_lsa_nt.c ../librpc/gen_ndr/srv_lsa.c'''
+RPC_LSARPC_SRC = '''rpc_server/srv_lsa_nt.c
+                    ../librpc/gen_ndr/srv_lsa.c'''
 
-RPC_NETLOG_SRC = '''rpc_server/srv_netlog_nt.c
-                 ../librpc/gen_ndr/srv_netlogon.c'''
+RPC_NETLOGON_SRC = '''rpc_server/srv_netlog_nt.c
+                      ../librpc/gen_ndr/srv_netlogon.c'''
 
 RPC_SAMR_SRC = '''rpc_server/srv_samr_nt.c
                rpc_server/srv_samr_util.c
@@ -429,15 +436,16 @@ RPC_SAMR_SRC = '''rpc_server/srv_samr_nt.c
 
 RPC_INITSHUTDOWN_SRC = ''' ../librpc/gen_ndr/srv_initshutdown.c rpc_server/srv_initshutdown_nt.c'''
 
-RPC_REG_SRC = ''' rpc_server/srv_winreg_nt.c
-               ../librpc/gen_ndr/srv_winreg.c'''
+RPC_WINREG_SRC = '''rpc_server/srv_winreg_nt.c
+                    ../librpc/gen_ndr/srv_winreg.c'''
 
 RPC_DSSETUP_SRC = ''' rpc_server/srv_dssetup_nt.c ../librpc/gen_ndr/srv_dssetup.c'''
 
-RPC_SVC_SRC = '''rpc_server/srv_srvsvc_nt.c
-              ../librpc/gen_ndr/srv_srvsvc.c'''
+RPC_SRVSVC_SRC = '''rpc_server/srv_srvsvc_nt.c
+                    ../librpc/gen_ndr/srv_srvsvc.c'''
 
-RPC_WKS_SRC = ''' ../librpc/gen_ndr/srv_wkssvc.c rpc_server/srv_wkssvc_nt.c'''
+RPC_WKSSVC_SRC = '''../librpc/gen_ndr/srv_wkssvc.c
+                    rpc_server/srv_wkssvc_nt.c'''
 
 RPC_SVCCTL_SRC = ''' rpc_server/srv_svcctl_nt.c
                   ../librpc/gen_ndr/srv_svcctl.c
@@ -448,7 +456,8 @@ RPC_SVCCTL_SRC = ''' rpc_server/srv_svcctl_nt.c
 RPC_NTSVCS_SRC = '''rpc_server/srv_ntsvcs_nt.c
                  ../librpc/gen_ndr/srv_ntsvcs.c'''
 
-RPC_DFS_SRC = ''' ../librpc/gen_ndr/srv_dfs.c rpc_server/srv_dfs_nt.c'''
+RPC_NETDFS_SRC = '''../librpc/gen_ndr/srv_dfs.c
+                    rpc_server/srv_dfs_nt.c'''
 
 RPC_SPOOLSS_SRC = '''rpc_server/srv_spoolss_nt.c
                      rpc_server/srv_spoolss_util.c
@@ -457,29 +466,26 @@ RPC_SPOOLSS_SRC = '''rpc_server/srv_spoolss_nt.c
 RPC_EVENTLOG_SRC = '''rpc_server/srv_eventlog_nt.c
                    ${LIB_EVENTLOG_SRC} ../librpc/gen_ndr/srv_eventlog.c'''
 
-NPA_TSTREAM_SRC = '''../libcli/named_pipe_auth/npa_tstream.c'''
+NPA_TSTREAM_SRC = '''../libcli/named_pipe_auth/npa_tstream.c
+                     ../librpc/gen_ndr/ndr_named_pipe_auth.c'''
 
-RPC_NCACN_NP_INTERNAL = '''rpc_server/srv_pipe_register.c rpc_server/rpc_ncacn_np_internal.c
-                        rpc_server/rpc_handles.c'''
+RPC_NCACN_NP = '''rpc_server/srv_pipe_register.c rpc_server/rpc_ncacn_np.c
+                  rpc_server/rpc_handles.c'''
+
+RPC_SERVICE = '''rpc_server/rpc_server.c'''
 
 RPC_PIPE_SRC = '''rpc_server/srv_pipe_hnd.c rpc_server/srv_pipe.c
-               ${RPC_NCACN_NP_INTERNAL}'''
+               ${RPC_NCACN_NP} ${RPC_SERVICE}'''
 
-RPC_ECHO_SRC = '''rpc_server/srv_echo_nt.c ../librpc/gen_ndr/srv_echo.c'''
+RPC_RPCECHO_SRC = '''rpc_server/srv_echo_nt.c ../librpc/gen_ndr/srv_echo.c'''
 
-#TODO: RPC_SERVER_SRC used to include RPC_STATIC modules
-RPC_SERVER_SRC = '''${RPC_PIPE_SRC} ${NPA_TSTREAM_SRC}'''
+RPC_SERVER_SRC = '''${RPC_PIPE_SRC} ${NPA_TSTREAM_SRC} ${RPC_STATIC}'''
 
-RPC_CLIENT_SRC = '''rpc_client/cli_pipe.c
-                    librpc/rpc/rpc_common.c
-                    librpc/rpc/dcerpc_gssapi.c
-                    librpc/rpc/dcerpc_spnego.c
-                    rpc_client/rpc_transport_np.c
-                    rpc_client/rpc_transport_sock.c'''
+RPC_CLIENT_SCHANNEL_SRC = '''rpc_client/cli_pipe_schannel.c'''
 
 LOCKING_SRC = '''locking/locking.c locking/brlock.c locking/posix.c'''
 
-PRIVILEGES_BASIC_SRC = '''lib/privileges_basic.c'''
+PRIVILEGES_BASIC_SRC = '''../libcli/security/privileges.c'''
 
 PRIVILEGES_SRC = '''lib/privileges.c'''
 
@@ -487,7 +493,7 @@ PASSDB_GET_SET_SRC = '''passdb/pdb_get_set.c'''
 
 PDB_STATIC =        ''
 PDB_TDBSAM_SRC =    'passdb/pdb_tdb.c'
-PDB_LDAP_SRC =      'passdb/pdb_ldap.c'
+PDB_LDAP_SRC =      'passdb/pdb_ldap.c passdb/pdb_nds.c'
 PDB_ADS_SRC =       'passdb/pdb_ads.c'
 PDB_SMBPASSWD_SRC = 'passdb/pdb_smbpasswd.c'
 PDB_WBC_SAM_SRC =   'passdb/pdb_wbc_sam.c'
@@ -520,7 +526,8 @@ PROFILES_SRC = '''utils/profiles.c
 OPLOCK_SRC = '''smbd/oplock.c smbd/oplock_irix.c smbd/oplock_linux.c
              smbd/oplock_onefs.c'''
 
-NOTIFY_SRC = '''smbd/notify.c smbd/notify_inotify.c smbd/notify_internal.c'''
+NOTIFY_SRC = '''smbd/notify.c smbd/notify_inotify.c smbd/notify_internal.c
+                librpc/gen_ndr/ndr_notify.c'''
 
 FNAME_UTIL_SRC = '''smbd/filename_util.c'''
 
@@ -592,7 +599,7 @@ AUTH_NETLOGOND_SRC = 'auth/auth_netlogond.c'
 AUTH_STATIC = ''
 AUTH_SRC = '''${AUTH_STATIC} auth/auth.c auth/auth_util.c auth/token_util.c
            auth/auth_compat.c auth/auth_ntlmssp.c auth/user_info.c auth/check_samsec.c
-           auth/user_util.c auth/server_info.c auth/server_info_sam.c
+           auth/user_util.c auth/user_krb5.c auth/server_info.c auth/server_info_sam.c
            ${PLAINTEXT_AUTH_SRC} ${SLCACHE_SRC} ${DCUTIL_SRC}'''
 
 #FIXME: set IDMAP_STATIC during configuration
@@ -716,17 +723,19 @@ WINBINDD_SRC1 = '''winbindd/winbindd.c
                    ../nsswitch/libwbclient/wb_reqtrans.c'''
 
 WINBINDD_SRC = '''${WINBINDD_SRC1}
-                  ${LIBMSRPC_SRC} ${LIBMSRPC_GEN_SRC} ${RPC_PARSE_SRC}
+                  ${LIBMSRPC_SRC} ${LIBMSRPC_GEN_SRC}
                   ${PROFILE_SRC} ${SLCACHE_SRC}
                   ${LIBADS_SRC}
                   ${DCUTIL_SRC} ${IDMAP_SRC} ${NSS_INFO_SRC}
                   ${AFS_SRC} ${AFS_SETTOKEN_SRC}
                   ${LIBADS_SERVER_SRC}
-                  ${RPC_NCACN_NP_INTERNAL} ${RPC_SAMR_SRC} ${RPC_LSA_SRC}
+                  ${RPC_NCACN_NP} ${NPA_TSTREAM_SRC} ${RPC_SAMR_SRC} ${RPC_LSARPC_SRC}
                   ${TDB_VALIDATE_SRC}
                   ${LIBCLI_DSSETUP_SRC}
                   ${LIBCLI_LSA_SRC}
-                  ${LIBCLI_SAMR_SRC}'''
+                  ${LIBCLI_SAMR_SRC}
+                  ${LIBCLI_NETLOGON_SRC}
+                  rpc_client/init_netlogon.c'''
 
 LIBNET_SRC = 'libnet/libnet_join.c libnet/libnet_keytab.c librpc/gen_ndr/ndr_libnet_join.c'
 
@@ -784,7 +793,7 @@ SMBD_SRC_SRV = '''smbd/server_reload.c smbd/files.c smbd/connection.c
                ${MANGLE_SRC} ${VFS_STATIC}'''
 
 SMBD_SRC_BASE = '''${SMBD_SRC_SRV}
-                ${RPC_SERVER_SRC} ${RPC_PARSE_SRC}
+                ${RPC_SERVER_SRC}
                 ${LOCKING_SRC} ${PRINTING_SRC}
                 ${PROFILE_SRC} ${PRINTBACKEND_SRC}
                 ${OPLOCK_SRC} ${NOTIFY_SRC} ${FNAME_UTIL_SRC}
@@ -793,25 +802,25 @@ SMBD_SRC_BASE = '''${SMBD_SRC_SRV}
                 ${LIBADS_SERVER_SRC} ${LIBADS_PRINTER_SRC} ${REG_FULL_SRC}
                 ${BUILDOPT_SRC}
                 ${LIBNET_SRC} ${LIBSMBCONF_SRC}
-                ${RPC_LSA_SRC}
-                ${RPC_NETLOG_SRC} ${RPC_SAMR_SRC}
-                ${RPC_INITSHUTDOWN_SRC} ${RPC_REG_SRC}
-                ${RPC_DSSETUP_SRC} ${RPC_SVC_SRC} ${RPC_WKS_SRC}
-                ${RPC_SVCCTL_SRC} ${RPC_NTSVCS_SRC} ${RPC_DFS_SRC}
-                ${RPC_SPOOLSS_SRC} ${RPC_EVENTLOG_SRC}
-                ${RPC_ECHO_SRC}
                 ${LIBCLI_SPOOLSS_SRC}
                 ${LIBCLI_WINREG_SRC}
                 ${LIBCLI_SRVSVC_SRC}
                 ${LIBCLI_LSA_SRC}
                 ${LIBCLI_SAMR_SRC}
+                ${LIBCLI_NETLOGON_SRC}
+                ${RPC_CLIENT_SCHANNEL_SRC}
+                rpc_client/init_netlogon.c
+                rpc_client/init_samr.c
                 ${AUTH_SRC}
-                ${PRIVILEGES_BASIC_SRC}'''
+                ${PRIVILEGES_BASIC_SRC}
+                ${REGFIO_SRC}
+                ${REG_API_REGF_SRC}
+                ${LIBNDR_XATTR_SRC}'''
 
 PRINTING_SRC = '''printing/pcap.c printing/print_svid.c printing/print_aix.c
                printing/print_cups.c printing/print_generic.c
                printing/lpq_parse.c printing/load.c printing/print_standard.c
-               printing/print_iprint.c'''
+               printing/print_iprint.c printing/printer_list.c'''
 
 PRINTBASE_SRC = '''printing/notify.c printing/printing_db.c'''
 PRINTBACKEND_SRC = '''printing/printing.c
@@ -845,9 +854,10 @@ SWAT_SRC1 = '''web/cgi.c web/diagnose.c web/startstop.c web/statuspage.c
 SWAT_SRC = '''${SWAT_SRC1} ${PRINTING_SRC} ${PRINTBASE_SRC}
            ${LOCKING_SRC}
            ${PLAINTEXT_AUTH_SRC}
-           ${RPC_PARSE_SRC} ${LIBMSRPC_GEN_SRC} ${LIBMSRPC_SRC}
+           ${LIBMSRPC_GEN_SRC} ${LIBMSRPC_SRC}
            ${PASSCHANGE_SRC} ${FNAME_UTIL_SRC}
-           ${LIBCLI_SAMR_SRC}'''
+           ${LIBCLI_SAMR_SRC}
+          rpc_client/init_lsa.c'''
 
 WBINFO_SRC = '../nsswitch/wbinfo.c ${AFS_SETTOKEN_SRC}'
 
@@ -862,14 +872,108 @@ EVTLOGADM_SRC = '''${EVTLOGADM_SRC0}
 
 DISPLAY_SEC_SRC= '../libcli/security/display_sec.c'
 
-CLIENT_SRC1 = '''client/client.c client/clitar.c ${RPC_CLIENT_SRC}
-                 ../librpc/rpc/binding.c client/dnsbrowse.c
-                 ${RPC_CLIENT_SRC1} ${RPC_PARSE_SRC}'''
+CLIENT_SRC1 = '''client/client.c client/clitar.c
+                 client/dnsbrowse.c
+                 ${LIBMSRPC_SRC}'''
 
 CLIENT_SRC = '''${CLIENT_SRC1} ${LIBMSRPC_GEN_SRC}
                 ${READLINE_SRC} ${DISPLAY_SEC_SRC}
-                ${LIBCLI_SRVSVC_SRC}'''
-
+                ${LIBCLI_SRVSVC_SRC}
+               rpc_client/init_lsa.c'''
+
+RPCCLIENT_SRC1 = '''rpcclient/rpcclient.c rpcclient/cmd_lsarpc.c
+                    rpcclient/cmd_samr.c rpcclient/cmd_spoolss.c
+                    rpcclient/cmd_netlogon.c rpcclient/cmd_srvsvc.c
+                    rpcclient/cmd_dfs.c rpcclient/cmd_epmapper.c
+                    rpcclient/cmd_dssetup.c rpcclient/cmd_echo.c
+                    rpcclient/cmd_shutdown.c rpcclient/cmd_test.c
+                    rpcclient/cmd_wkssvc.c rpcclient/cmd_ntsvcs.c
+                    rpcclient/cmd_drsuapi.c rpcclient/cmd_eventlog.c
+                    rpcclient/cmd_winreg.c
+                    ${DISPLAY_SEC_SRC}'''
+
+RPCCLIENT_SRC = '''${RPCCLIENT_SRC1}
+                   ${LIBMSRPC_GEN_SRC}
+                   ${LIBMSRPC_SRC}
+                   ${READLINE_SRC}
+                   ${LIBADS_SRC}
+                   ${DCUTIL_SRC}
+                   ${LIBCLI_SPOOLSS_SRC}
+                   ${LIBCLI_EVENTLOG_SRC}
+                   ${LIBCLI_NTSVCS_SRC}
+                   ${LIBCLI_DRSUAPI_SRC}
+                   ${LIBCLI_DFS_SRC}
+                   ${LIBCLI_ECHO_SRC}
+                   ${LIBCLI_DSSETUP_SRC}
+                   ${LIBCLI_WKSSVC_SRC}
+                   ${LIBCLI_SRVSVC_SRC}
+                   ${LIBCLI_LSA_SRC}
+                   ${LIBCLI_SAMR_SRC}
+                   ${LIBCLI_WINREG_SRC}
+                   ${LIBCLI_NETLOGON_SRC}
+                   ${RPC_CLIENT_SCHANNEL_SRC}
+                   rpc_client/init_netlogon.c
+                   rpc_client/init_samr.c'''
+
+LIBNET_DSSYNC_SRC = '''libnet/libnet_dssync.c
+                       libnet/libnet_dssync_keytab.c
+                       ../libcli/drsuapi/repl_decrypt.c'''
+
+LIBNET_SAMSYNC_SRC = '''libnet/libnet_samsync.c
+                        libnet/libnet_samsync_ldif.c
+                        libnet/libnet_samsync_passdb.c
+                        libnet/libnet_samsync_display.c
+                        libnet/libnet_samsync_keytab.c
+                        ../libcli/samsync/decrypt.c'''
+
+PASSWD_UTIL_SRC = 'utils/passwd_util.c'
+
+NET_SRC1 = '''utils/net.c utils/net_ads.c utils/net_help.c
+              utils/net_rap.c utils/net_rpc.c utils/net_rpc_samsync.c
+              utils/net_rpc_join.c utils/net_time.c utils/net_lookup.c
+              utils/net_cache.c utils/net_groupmap.c utils/net_idmap.c
+              utils/net_status.c utils/net_rpc_printer.c utils/net_rpc_rights.c
+              utils/net_rpc_service.c utils/net_rpc_registry.c utils/net_usershare.c
+              utils/netlookup.c utils/net_sam.c utils/net_rpc_shell.c
+              utils/net_util.c utils/net_rpc_sh_acct.c utils/net_rpc_audit.c
+              ${PASSWD_UTIL_SRC} utils/net_dns.c utils/net_ads_gpo.c
+              utils/net_conf.c utils/net_join.c utils/net_user.c
+              utils/net_group.c utils/net_file.c utils/net_registry.c
+              auth/token_util.c utils/net_dom.c utils/net_share.c
+              utils/net_g_lock.c
+              utils/net_serverid.c
+              utils/net_eventlog.c
+              utils/net_printing.c
+              ${LIBNDR_NTPRINTING_SRC}
+              ${LIBNDR_PREG_SRC}
+              ${LIBCLI_SPOOLSS_SRC}
+              ${LIBCLI_WINREG_SRC}
+              ${LIBCLI_DRSUAPI_SRC}
+              ${LIBCLI_INITSHUTDOWN_SRC}
+              ${LIBCLI_DSSETUP_SRC}
+              ${LIBCLI_SVCCTL_SRC}
+              ${LIBCLI_WKSSVC_SRC}
+              ${LIBCLI_SRVSVC_SRC}
+              ${LIBCLI_LSA_SRC}
+              ${LIBCLI_SAMR_SRC}
+              ${LIBCLI_NETLOGON_SRC}
+              ${RPC_CLIENT_SCHANNEL_SRC}
+              rpc_client/init_netlogon.c
+              rpc_client/init_samr.c'''
+
+
+NET_SRC2 = 'utils/net_registry_util.c utils/net_help_common.c'
+
+NET_SRC = '''${NET_SRC1}
+             ${NET_SRC2}
+             ${LIBADDNS_SRC0}
+             ${LIBMSRPC_SRC} ${LIBMSRPC_GEN_SRC}
+             ${LIBADS_SRC} ${LIBADS_SERVER_SRC} ${LIBADS_PRINTER_SRC}
+             ${DCUTIL_SRC}
+             ${AFS_SRC} ${AFS_SETTOKEN_SRC} ${READLINE_SRC}
+             ${LIBGPO_SRC} ${DISPLAY_SEC_SRC}
+             ${LIBNET_SRC} ${LIBNET_DSSYNC_SRC} ${LIBNET_SAMSYNC_SRC}
+             ${LIB_EVENTLOG_SRC} ${REGFIO_SRC}'''
 
 LIBS='ICONV'
 
@@ -921,7 +1025,7 @@ for prefix in bld.env.MODULE_PREFIXES:
 bld.SAMBA_SUBSYSTEM('WBCOMMON',
                     source=WBCOMMON_SRC)
 
-bld.SAMBA_SUBSYSTEM('LIBWBCLIENT',
+bld.SAMBA_LIBRARY('libwbclient',
                     source='''../nsswitch/libwbclient/wbc_guid.c
                               ../nsswitch/libwbclient/wbc_idmap.c
                               ../nsswitch/libwbclient/wbclient.c
@@ -931,6 +1035,24 @@ bld.SAMBA_SUBSYSTEM('LIBWBCLIENT',
                               ../nsswitch/libwbclient/wbc_util.c''',
                     public_deps='talloc WBCOMMON')
 
+bld.SAMBA_LIBRARY('libnetapi',
+                    source='''lib/netapi/netapi.c
+                             lib/netapi/cm.c
+                             librpc/gen_ndr/ndr_libnetapi.c
+                             lib/netapi/libnetapi.c
+                             lib/netapi/joindomain.c
+                             lib/netapi/serverinfo.c
+                             lib/netapi/getdc.c
+                             lib/netapi/user.c
+                             lib/netapi/group.c
+                             lib/netapi/localgroup.c
+                             lib/netapi/samr.c
+                             lib/netapi/sid.c
+                             lib/netapi/share.c
+                             lib/netapi/file.c
+                             lib/netapi/shutdown.c
+                             lib/netapi/netlogon.c''',
+                    public_deps='''talloc tdb''')
 
 bld.SAMBA_SUBSYSTEM('ASN1_UTIL',
                     source='../lib/util/asn1.c',
@@ -1010,14 +1132,14 @@ bld.SAMBA_SUBSYSTEM('SMBLDAP',
 bld.SAMBA_BINARY('smbd/smbd',
                  source=SMBD_SRC,
                  deps='''tdb DYNCONFIG tevent dl krb5 ldap gssapi gssapi_krb5
-                 NSS_WRAPPER LIBWBCLIENT crypt nsl cups cap resolv ZLIB PASSDB
+                 NSS_WRAPPER libwbclient crypt nsl cups cap resolv ZLIB PASSDB
                  PARAM_WITHOUT_REG LIBS LIBSMB POPT_SAMBA KRBCLIENT AVAHI''',
                  install_path='${SBINDIR}',
                  vars=locals())
 
 bld.SAMBA_BINARY('nmbd/nmbd',
                  source=NMBD_SRC,
-                 deps='''talloc tdb tevent ZLIB cap resolv LIBWBCLIENT dl
+                 deps='''talloc tdb tevent ZLIB cap resolv libwbclient dl
                  NSS_WRAPPER DYNCONFIG PASSDB PARAM ldap LIB_NONSMBD LIBSMB
                  POPT_SAMBA KRBCLIENT''',
                  install_path='${SBINDIR}',
@@ -1026,7 +1148,7 @@ bld.SAMBA_BINARY('nmbd/nmbd',
 bld.SAMBA_BINARY('winbindd/winbindd',
                  source=WINBINDD_SRC,
                  deps='''talloc tdb tevent cap dl DYNCONFIG ZLIB NSS_WRAPPER
-                 LIBWBCLIENT PASSDB ldap resolv PARAM LIB_NONSMBD LIBSMB
+                 libwbclient PASSDB ldap resolv PARAM LIB_NONSMBD LIBSMB
                  POPT_SAMBA KRBCLIENT''',
                  enabled=bld.env.build_winbind,
                  install_path='${SBINDIR}',
@@ -1034,7 +1156,7 @@ bld.SAMBA_BINARY('winbindd/winbindd',
 
 bld.SAMBA_BINARY('web/swat',
                  source=SWAT_SRC,
-                 deps='''talloc tevent cap DYNCONFIG LIBS LIBSMB LIBWBCLIENT PARAM
+                 deps='''talloc tevent cap DYNCONFIG LIBS LIBSMB libwbclient PARAM
                  LIB_NONSMBD resolv PASSDB POPT_SAMBA KRBCLIENT cups''',
                  enabled=bld.env.build_swat,
                  install_path='${SBINDIR}',
@@ -1043,12 +1165,18 @@ bld.SAMBA_BINARY('web/swat',
 bld.SAMBA_BINARY('smbclient',
                  source=CLIENT_SRC,
                  deps='''talloc tdb cap resolv POPT_SAMBA PASSDB LIBSMB LIB_NONSMBD
-                 PARAM_WITHOUT_REG LIBWBCLIENT DYNCONFIG PARAM KRBCLIENT''',
+                 PARAM_WITHOUT_REG libwbclient DYNCONFIG PARAM KRBCLIENT''',
+                 vars=locals())
+
+bld.SAMBA_BINARY('rpcclient/rpcclient',
+                 source=RPCCLIENT_SRC,
+                 deps='''talloc tdb cap resolv POPT_SAMBA PASSDB LIBSMB LIB_NONSMBD
+                 PARAM_WITHOUT_REG libwbclient DYNCONFIG PARAM KRBCLIENT''',
                  vars=locals())
 
 bld.SAMBA_BINARY('wbinfo',
                  source=WBINFO_SRC,
-                 deps='''talloc LIBWBCLIENT DYNCONFIG tevent cap
+                 deps='''talloc libwbclient DYNCONFIG tevent cap
                  NSS_WRAPPER ASN1_UTIL LIBTSOCKET PASSDB ldap PARAM LIB_NONSMBD
                  LIBSAMBA POPT_SAMBA''',
                  vars=locals())
@@ -1056,14 +1184,21 @@ bld.SAMBA_BINARY('wbinfo',
 bld.SAMBA_BINARY('testparm',
                  source=TESTPARM_SRC,
                  deps='''talloc tevent DYNCONFIG ldap cap NSS_WRAPPER
-                 LIBWBCLIENT ASN1_UTIL LIBTSOCKET PASSDB PARAM LIB_NONSMBD
+                 libwbclient ASN1_UTIL LIBTSOCKET PASSDB PARAM LIB_NONSMBD
                  LIBSMB_ERR POPT_SAMBA''',
                  vars=locals())
 
 bld.SAMBA_BINARY('eventlogadm',
                  source=EVTLOGADM_SRC,
                  deps='''talloc tevent cap POPT_SAMBA DYNCONFIG LIBS PARAM
-                 LIB_NONSMBD LIBSMB_ERR PASSDB LIBWBCLIENT''',
+                 LIB_NONSMBD LIBSMB_ERR PASSDB libwbclient''',
+                 vars=locals())
+
+bld.SAMBA_BINARY('net',
+                 source=NET_SRC,
+                 deps='''talloc tdb libnetapi cap resolv POPT_SAMBA PASSDB LIBSMB LIB_NONSMBD
+                 PARAM_WITHOUT_REG libwbclient DYNCONFIG PARAM KRBCLIENT
+                 LOCALE_DIR''',
                  vars=locals())
 
 swat_files=recursive_dirlist('../swat', '../swat', '*')