Introduce system MIT krb5 build with --with-system-mitkrb5 option.
authorAlexander Bokovoy <ab@samba.org>
Mon, 21 May 2012 09:45:12 +0000 (12:45 +0300)
committerAlexander Bokovoy <ab@samba.org>
Wed, 23 May 2012 14:51:50 +0000 (17:51 +0300)
System MIT krb5 build also enabled by specifying --without-ad-dc

When --with-system-mitkrb5 (or --withou-ad-dc) option is passed to top level
configure in WAF build we are trying to detect and use system-wide MIT krb5
libraries. As result, Samba 4 DC functionality will be disabled due to the fact
that it is currently impossible to implement embedded KDC server with MIT krb5.

Thus, --with-system-mitkrb5/--without-ad-dc build will only produce
  * Samba 4 client libraries and their Python bindings
  * Samba 3 server (smbd, nmbd, winbindd from source3/)
  * Samba 3 client libraries

In addition, Samba 4 DC server-specific tests will not be compiled into smbtorture.
This in particular affects spoolss_win, spoolss_notify, and remote_pac rpc tests.

48 files changed:
buildtools/wafsamba/samba_utils.py
buildtools/wafsamba/wafsamba.py
lib/addns/dns.h
lib/addns/dnsgss.c
lib/addns/wscript_build
lib/krb5_wrap/wscript_build
lib/replace/system/gssapi.h
source3/auth/wscript_build
source3/configure.in
source3/librpc/wscript_build
source3/modules/getdate.h
source3/modules/wscript_build
source3/passdb/wscript_build
source3/winbindd/wscript_build
source3/wscript
source3/wscript_build
source4/auth/gensec/wscript_build
source4/auth/kerberos/wscript_build
source4/dns_server/wscript_build
source4/dsdb/samdb/cracknames.c
source4/dsdb/samdb/ldb_modules/wscript_build
source4/dsdb/samdb/ldb_modules/wscript_build_server [new file with mode: 0755]
source4/dsdb/wscript_build
source4/echo_server/wscript_build
source4/heimdal_build/wscript_configure
source4/ldap_server/wscript_build
source4/libnet/wscript_build
source4/nbt_server/wscript_build
source4/ntp_signd/wscript_build
source4/ntptr/wscript_build
source4/ntvfs/posix/wscript_build
source4/ntvfs/wscript_build
source4/param/loadparm.c
source4/rpc_server/common/loadparm.c [new file with mode: 0644]
source4/rpc_server/wscript_build
source4/scripting/bin/wscript_build
source4/scripting/wscript_build
source4/smb_server/smb/wscript_build
source4/smb_server/smb2/wscript_build
source4/smb_server/wscript_build
source4/smbd/wscript_build
source4/torture/rpc/remote_pac.c
source4/torture/rpc/rpc.c
source4/torture/wscript_build
source4/web_server/wscript_build
wscript
wscript_build
wscript_configure_system_mitkrb5 [moved from wscript_configure_krb5 with 93% similarity]

index 477e0b4..70d0670 100644 (file)
@@ -642,8 +642,17 @@ def PROCESS_SEPARATE_RULE(self, rule):
     if txt:
         dc = {'ctx': self}
         if getattr(self.__class__, 'pre_recurse', None):
-            dc = self.pre_recurse(txt, file_path, [])
+            dc = self.pre_recurse(txt, file_path, self.curdir)
         exec(compile(txt, file_path, 'exec'), dc)
+        if getattr(self.__class__, 'post_recurse', None):
+            dc = self.post_recurse(txt, file_path, self.curdir)
 
 Build.BuildContext.PROCESS_SEPARATE_RULE = PROCESS_SEPARATE_RULE
 ConfigurationContext.PROCESS_SEPARATE_RULE = PROCESS_SEPARATE_RULE
+
+def AD_DC_BUILD_IS_ENABLED(self):
+    if self.CONFIG_SET('AD_DC_BUILD_IS_ENABLED'):
+        return True
+    return False
+
+Build.BuildContext.AD_DC_BUILD_IS_ENABLED = AD_DC_BUILD_IS_ENABLED
index 534bace..f1e7aff 100644 (file)
@@ -413,6 +413,9 @@ def SAMBA_MODULE(bld, modname, source,
         source = bld.SUBDIR(subdir, source)
 
     if internal_module or BUILTIN_LIBRARY(bld, modname):
+        # Do not create modules for disabled subsystems
+        if subsystem and GET_TARGET_TYPE(bld, subsystem) == 'DISABLED':
+            return
         bld.SAMBA_SUBSYSTEM(modname, source,
                     deps=deps,
                     includes=includes,
@@ -430,6 +433,10 @@ def SAMBA_MODULE(bld, modname, source,
         SET_TARGET_TYPE(bld, modname, 'DISABLED')
         return
 
+    # Do not create modules for disabled subsystems
+    if subsystem and GET_TARGET_TYPE(bld, subsystem) == 'DISABLED':
+        return
+
     obj_target = modname + '.objlist'
 
     realname = modname
index 2e80577..2864bdf 100644 (file)
@@ -436,7 +436,7 @@ const char *dns_errstr(DNS_ERROR err);
 
 /* from dnsgss.c */
 
-#ifdef HAVE_KRB5
+#ifdef HAVE_GSSAPI
 
 void display_status( const char *msg, OM_uint32 maj_stat, OM_uint32 min_stat ); 
 DNS_ERROR dns_negotiate_sec_ctx( const char *target_realm,
@@ -450,6 +450,6 @@ DNS_ERROR dns_sign_update(struct dns_update_request *req,
                          const char *algorithmname,
                          time_t time_signed, uint16 fudge);
 
-#endif /* HAVE_KRB5 */
+#endif /* HAVE_GSSAPI */
 
 #endif /* _DNS_H */
index 4fef832..4f7571f 100644 (file)
@@ -26,7 +26,7 @@
 #include <ctype.h>
 
 
-#ifdef HAVE_KRB5
+#ifdef HAVE_GSSAPI
 
 /*********************************************************************
 *********************************************************************/
@@ -331,4 +331,4 @@ DNS_ERROR dns_sign_update(struct dns_update_request *req,
        return err;
 }
 
-#endif /* HAVE_KRB5 */
+#endif /* HAVE_GSSAPI */
index 921815a..f1bab05 100755 (executable)
@@ -2,6 +2,6 @@
 
 bld.SAMBA_LIBRARY('addns',
                    source='dnsquery.c dnsrecord.c dnsutils.c dnssock.c dnsgss.c dnsmarshall.c error.c',
-                   public_deps='DNS_HOSTS_FILE samba-util krb5 gssapi_krb5 uuid resolv',
+                   public_deps='DNS_HOSTS_FILE samba-util gssapi uuid resolv',
                    private_library=True,
                    vars=locals())
index 2a61f56..f5190bc 100755 (executable)
@@ -1,7 +1,11 @@
 #!/usr/bin/env python
 
+add_deps = ''
+if bld.CONFIG_SET('SAMBA4_USES_HEIMDAL'):
+    add_deps = ' asn1'
+
 bld.SAMBA_LIBRARY('krb5samba',
                   source='krb5_samba.c keytab_util.c',
-                  deps='samba-util asn1util talloc krb5 com_err',
-                 private_library=True
-                 )
+                  deps='samba-util asn1util talloc krb5 com_err' + add_deps,
+                  private_library=True
+                 )
index c22663c..6386c7b 100644 (file)
@@ -27,7 +27,7 @@
 
 */
 
-#ifdef HAVE_LIBGSSAPI
+#ifdef HAVE_GSSAPI
 
 #ifdef HAVE_GSSAPI_GSSAPI_EXT_H
 #include <gssapi/gssapi_ext.h>
index 54d710c..47dbea0 100644 (file)
@@ -104,5 +104,5 @@ bld.SAMBA3_MODULE('auth_samba4',
                   source='auth_samba4.c',
                   init_function='',
                   deps='auth4 samba_server_gensec gensec',
-                  internal_module=bld.SAMBA3_IS_STATIC_MODULE('auth_samba4'),
-                  enabled=bld.SAMBA3_IS_ENABLED_MODULE('auth_samba4'))
+                  internal_module=bld.SAMBA3_IS_STATIC_MODULE('auth_samba4') and bld.AD_DC_BUILD_IS_ENABLED(),
+                  enabled=bld.SAMBA3_IS_ENABLED_MODULE('auth_samba4') and bld.AD_DC_BUILD_IS_ENABLED())
index 43a090d..3e35d8f 100644 (file)
@@ -3547,7 +3547,7 @@ if test x"$with_ads_support" != x"no"; then
        AC_MSG_WARN([Samba cannot be supported without GSSAPI])
        use_ads=no
   else
-       AC_DEFINE(HAVE_LIBGSSAPI, , [Whether the platform has GSSAPI support])
+       AC_DEFINE(HAVE_GSSAPI, , [Whether the platform has GSSAPI support])
   fi
 
   AC_CHECK_FUNC_EXT(krb5_set_real_time, $KRB5_LIBS)
index 8aa0161..ab4c23f 100644 (file)
@@ -7,7 +7,7 @@ bld.SAMBA3_SUBSYSTEM('NDR_LIBNETAPI',
 
 bld.SAMBA3_SUBSYSTEM('NDR_LIBNET_JOIN',
        source='gen_ndr/ndr_libnet_join.c',
-       public_deps='ndr'
+       public_deps='ndr krb5samba'
        )
 
 bld.SAMBA3_SUBSYSTEM('NDR_MESSAGING',
index 93d95dd..80b4a98 100644 (file)
@@ -13,7 +13,7 @@
    You should have received a copy of the GNU General Public License
    along with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
-#if HAVE_CONFIG_H
+#ifdef HAVE_CONFIG_H
 # include <config.h>
 #endif
 
index 3b257bc..b912b8c 100644 (file)
@@ -188,8 +188,8 @@ bld.SAMBA3_MODULE('vfs_posix_eadb',
                  source='vfs_posix_eadb.c',
                  deps='tdb-wrap posix_eadb',
                  init_function='',
-                 internal_module=bld.SAMBA3_IS_STATIC_MODULE('vfs_posix_eadb'),
-                 enabled=bld.SAMBA3_IS_ENABLED_MODULE('vfs_posix_eadb'))
+                 internal_module=bld.SAMBA3_IS_STATIC_MODULE('vfs_posix_eadb') and bld.AD_DC_BUILD_IS_ENABLED(),
+                 enabled=bld.SAMBA3_IS_ENABLED_MODULE('vfs_posix_eadb') and bld.AD_DC_BUILD_IS_ENABLED())
 
 bld.SAMBA3_MODULE('vfs_posixacl',
                  subsystem='vfs',
@@ -457,8 +457,8 @@ bld.SAMBA3_MODULE('vfs_dfs_samba4',
                  source='vfs_dfs_samba4.c',
                  deps='samba-util dfs_server_ad samdb tevent',
                  init_function='',
-                 internal_module=bld.SAMBA3_IS_STATIC_MODULE('vfs_dfs_samba4'),
-                 enabled=bld.SAMBA3_IS_ENABLED_MODULE('vfs_dfs_samba4'))
+                 internal_module=bld.SAMBA3_IS_STATIC_MODULE('vfs_dfs_samba4') and bld.AD_DC_BUILD_IS_ENABLED(),
+                 enabled=bld.SAMBA3_IS_ENABLED_MODULE('vfs_dfs_samba4') and bld.AD_DC_BUILD_IS_ENABLED())
 
 PERFCOUNT_TEST_SRC = 'perfcount_test.c'
 
index 82c9634..59a7f80 100644 (file)
@@ -51,8 +51,8 @@ bld.SAMBA3_MODULE('pdb_samba4',
                   source='pdb_samba4.c',
                   init_function='',
                   deps='IDMAP samdb',
-                  internal_module=bld.SAMBA3_IS_STATIC_MODULE('pdb_samba4'),
-                  enabled=bld.SAMBA3_IS_ENABLED_MODULE('pdb_samba4'))
+                  internal_module=bld.SAMBA3_IS_STATIC_MODULE('pdb_samba4') and bld.AD_DC_BUILD_IS_ENABLED(),
+                  enabled=bld.SAMBA3_IS_ENABLED_MODULE('pdb_samba4') and bld.AD_DC_BUILD_IS_ENABLED())
 
 bld.SAMBA3_PYTHON('pypassdb',
                   source='py_passdb.c',
index 07241e4..3b5d1d3 100644 (file)
@@ -37,7 +37,7 @@ bld.SAMBA3_SUBSYSTEM('IDMAP_ADEX',
 
 bld.SAMBA3_SUBSYSTEM('IDMAP_HASH',
                     source=IDMAP_HASH_SRC,
-                    deps='samba-util',
+                    deps='samba-util krb5samba',
                     vars=locals())
 
 bld.SAMBA3_SUBSYSTEM('IDMAP_AD',
@@ -142,7 +142,7 @@ bld.SAMBA3_LIBRARY('nss_info',
 bld.SAMBA3_MODULE('nss_info_template',
                  subsystem='nss_info',
                  source=NSS_INFO_TEMPLATE_SRC,
-                 deps='samba-util',
+                 deps='samba-util krb5samba',
                  init_function='',
                  internal_module=bld.SAMBA3_IS_STATIC_MODULE('nss_info_template'),
                  enabled=bld.SAMBA3_IS_ENABLED_MODULE('nss_info_template'))
index 8bf378c..0b36b22 100755 (executable)
@@ -28,7 +28,6 @@ def set_options(opt):
     opt.SAMBA3_ADD_OPTION('winbind')
     opt.SAMBA3_ADD_OPTION('swat')
     opt.SAMBA3_ADD_OPTION('ads')
-    opt.SAMBA3_ADD_OPTION('mit-krb5-checks', default=False)
     opt.SAMBA3_ADD_OPTION('ldap')
     opt.SAMBA3_ADD_OPTION('cups', with_name="enable", without_name="disable")
     opt.SAMBA3_ADD_OPTION('iprint', with_name="enable", without_name="disable")
@@ -1396,7 +1395,8 @@ main() {
         default_shared_modules.extend(TO_LIST('vfs_skel_opaque vfs_skel_transparent vfs_shadow_copy_test'))
         default_shared_modules.extend(TO_LIST('auth_skel pdb_test'))
 
-    default_static_modules.extend(TO_LIST('pdb_samba4 auth_samba4 vfs_dfs_samba4'))
+    if conf.CONFIG_SET('AD_DC_BUILD_IS_ENABLED'):
+        default_static_modules.extend(TO_LIST('pdb_samba4 auth_samba4 vfs_dfs_samba4'))
 
     if Options.options.with_acl_support and conf.CONFIG_SET('HAVE_POSIX_ACLS'):
         default_static_modules.extend(TO_LIST('vfs_posixacl'))
index 69d9889..f923463 100755 (executable)
@@ -869,7 +869,7 @@ bld.SAMBA3_SUBSYSTEM('LIBADS_SERVER',
 
 bld.SAMBA3_SUBSYSTEM('LIBADS_PRINTER',
                     source=LIBADS_PRINTER_SRC,
-                    deps='samba-util',
+                    deps='samba-util krb5samba',
                    vars=locals())
 
 bld.SAMBA3_SUBSYSTEM('LIBAFS',
@@ -1025,7 +1025,8 @@ bld.SAMBA3_SUBSYSTEM('PASSCHANGE',
                     source=PASSCHANGE_SRC,
                     deps='''LIBCLI_SAMR
                     INIT_LSA
-                    msrpc3''',
+                    msrpc3
+                    krb5samba''',
                     vars=locals())
 
 bld.SAMBA3_SUBSYSTEM('SAMBA_VERSION',
@@ -1103,7 +1104,7 @@ bld.SAMBA3_SUBSYSTEM('LIBCLI_WINREG_INTERNAL',
 
 bld.SAMBA3_SUBSYSTEM('RPC_CLIENT_SCHANNEL',
                     source=RPC_CLIENT_SCHANNEL_SRC,
-                    deps='samba-util',
+                    deps='samba-util krb5samba',
                     vars=locals())
 
 bld.SAMBA3_SUBSYSTEM('INIT_LSA',
@@ -1421,7 +1422,8 @@ bld.SAMBA3_BINARY('smbcacls',
                  talloc
                  popt_samba3
                  msrpc3
-                 libcli_lsa3''',
+                 libcli_lsa3
+                 krb5samba''',
                  vars=locals())
 
 bld.SAMBA3_BINARY('smbcquotas',
index e7bc021..04fccc5 100755 (executable)
@@ -11,6 +11,7 @@ bld.SAMBA_MODULE('gensec_krb5',
        init_function='gensec_krb5_init',
        deps='samba-credentials authkrb5 com_err gensec_util',
        internal_module=False,
+        enabled=bld.AD_DC_BUILD_IS_ENABLED()
        )
 
 
index 0588bfb..ffcb54c 100755 (executable)
@@ -16,7 +16,7 @@ bld.SAMBA_LIBRARY('authkrb5',
 bld.SAMBA_SUBSYSTEM('KERBEROS_UTIL',
        autoproto='kerberos_util.h',
        source='kerberos_util.c',
-       deps='authkrb5 com_err CREDENTIALS_KRB5',
+       deps='authkrb5 krb5samba com_err CREDENTIALS_KRB5',
        )
 
 bld.SAMBA_SUBSYSTEM('KERBEROS_SRV_KEYTAB',
index afd1d9c..960aefc 100644 (file)
@@ -7,6 +7,7 @@ bld.SAMBA_MODULE('service_dns',
         deps='samba-hostconfig LIBTSOCKET LIBSAMBA_TSOCKET ldbsamba LIBCLI_DNS',
         local_include=False,
         internal_module=False,
+        enabled=bld.AD_DC_BUILD_IS_ENABLED()
         )
 
 # a bind9 dlz module giving access to the Samba DNS SAM
@@ -17,7 +18,8 @@ bld.SAMBA_LIBRARY('dlz_bind9',
                   link_name='modules/bind9/dlz_bind9.so',
                   realname='dlz_bind9.so',
                   install_path='${MODULESDIR}/bind9',
-                  deps='samba-hostconfig samdb-common gensec popt')
+                  deps='samba-hostconfig samdb-common gensec popt',
+                  enabled=bld.AD_DC_BUILD_IS_ENABLED())
 
 bld.SAMBA_LIBRARY('dlz_bind9_9',
                   source='dlz_bind9.c',
@@ -26,4 +28,5 @@ bld.SAMBA_LIBRARY('dlz_bind9_9',
                   link_name='modules/bind9/dlz_bind9_9.so',
                   realname='dlz_bind9_9.so',
                   install_path='${MODULESDIR}/bind9',
-                  deps='samba-hostconfig samdb-common gensec popt')
+                  deps='samba-hostconfig samdb-common gensec popt',
+                  enabled=bld.AD_DC_BUILD_IS_ENABLED())
index 0c0fb82..bac592c 100644 (file)
@@ -24,7 +24,6 @@
 #include "includes.h"
 #include "librpc/gen_ndr/drsuapi.h"
 #include "lib/events/events.h"
-#include "rpc_server/common/common.h"
 #include <ldb.h>
 #include <ldb_errors.h>
 #include "auth/kerberos/kerberos.h"
index ab9ba13..98651e5 100755 (executable)
@@ -18,358 +18,5 @@ bld.SAMBA_SUBSYSTEM('DSDB_MODULE_HELPER_RIDALLOC',
        deps='MESSAGING',
        )
 
-bld.SAMBA_MODULE('ldb_samba_dsdb',
-       source='samba_dsdb.c',
-       subsystem='ldb',
-       init_function='ldb_samba_dsdb_module_init',
-       module_init_name='ldb_init_module',
-       deps='samdb talloc ndr DSDB_MODULE_HELPERS',
-       internal_module=False,
-       )
-
-
-bld.SAMBA_MODULE('ldb_samba_secrets',
-       source='samba_secrets.c',
-       subsystem='ldb',
-       init_function='ldb_samba_secrets_module_init',
-       module_init_name='ldb_init_module',
-       internal_module=False,
-       deps='samdb talloc ndr'
-       )
-
-
-bld.SAMBA_MODULE('ldb_objectguid',
-       source='objectguid.c',
-       subsystem='ldb',
-       init_function='ldb_objectguid_module_init',
-       module_init_name='ldb_init_module',
-       internal_module=False,
-       deps='samdb talloc ndr DSDB_MODULE_HELPERS'
-       )
-
-
-bld.SAMBA_MODULE('ldb_repl_meta_data',
-       source='repl_meta_data.c',
-       subsystem='ldb',
-       init_function='ldb_repl_meta_data_module_init',
-       module_init_name='ldb_init_module',
-       internal_module=False,
-       deps='samdb talloc ndr NDR_DRSUAPI NDR_DRSBLOBS ndr DSDB_MODULE_HELPERS security'
-       )
-
-
-bld.SAMBA_MODULE('ldb_schema_load',
-       source='schema_load.c',
-       subsystem='ldb',
-       init_function='ldb_schema_load_module_init',
-       module_init_name='ldb_init_module',
-       internal_module=False,
-       deps='samdb talloc DSDB_MODULE_HELPERS'
-       )
-
-
-bld.SAMBA_MODULE('ldb_schema_data',
-       source='schema_data.c',
-       subsystem='ldb',
-       init_function='ldb_schema_data_module_init',
-       module_init_name='ldb_init_module',
-       internal_module=False,
-       deps='samdb talloc DSDB_MODULE_HELPERS'
-       )
-
-
-bld.SAMBA_MODULE('ldb_samldb',
-       source='samldb.c',
-       subsystem='ldb',
-       init_function='ldb_samldb_module_init',
-       module_init_name='ldb_init_module',
-       internal_module=False,
-       deps='talloc samdb DSDB_MODULE_HELPERS DSDB_MODULE_HELPER_RIDALLOC'
-       )
-
-
-bld.SAMBA_MODULE('ldb_samba3sam',
-       source='samba3sam.c',
-       subsystem='ldb',
-       init_function='ldb_samba3sam_module_init',
-       module_init_name='ldb_init_module',
-       internal_module=False,
-       deps='talloc ldb smbpasswdparser security NDR_SECURITY'
-       )
-
-
-bld.SAMBA_MODULE('ldb_samba3sid',
-       source='samba3sid.c',
-       subsystem='ldb',
-       init_function='ldb_samba3sid_module_init',
-       module_init_name='ldb_init_module',
-       internal_module=False,
-       deps='talloc ldb security NDR_SECURITY ldbsamba DSDB_MODULE_HELPERS'
-       )
-
-
-bld.SAMBA_MODULE('ldb_simple_ldap_map',
-       source='simple_ldap_map.c',
-       subsystem='ldb',
-       init_function='ldb_simple_ldap_map_module_init',
-       module_init_name='ldb_init_module',
-       internal_module=False,
-       deps='talloc ldb ndr ldbsamba samdb-common'
-       )
-
-
-bld.SAMBA_MODULE('ldb_rootdse',
-       source='rootdse.c',
-       subsystem='ldb',
-       init_function='ldb_rootdse_module_init',
-       module_init_name='ldb_init_module',
-       internal_module=False,
-       deps='talloc samdb MESSAGING security DSDB_MODULE_HELPERS'
-       )
-
-
-bld.SAMBA_MODULE('ldb_password_hash',
-       source='password_hash.c',
-       subsystem='ldb',
-       init_function='ldb_password_hash_module_init',
-       module_init_name='ldb_init_module',
-       internal_module=False,
-       deps='talloc samdb LIBCLI_AUTH NDR_DRSBLOBS authkrb5 krb5 DSDB_MODULE_HELPERS'
-       )
-
-
-bld.SAMBA_MODULE('ldb_local_password',
-       source='local_password.c',
-       subsystem='ldb',
-       init_function='ldb_local_password_module_init',
-       module_init_name='ldb_init_module',
-       internal_module=False,
-       deps='talloc ndr samdb'
-       )
-
-bld.SAMBA_MODULE('ldb_extended_dn_in',
-       source='extended_dn_in.c',
-       subsystem='ldb',
-       init_function='ldb_extended_dn_in_module_init',
-       module_init_name='ldb_init_module',
-       internal_module=False,
-       deps='ldb talloc samba-util DSDB_MODULE_HELPERS'
-       )
-
-
-bld.SAMBA_MODULE('ldb_extended_dn_out',
-       source='extended_dn_out.c',
-       init_function='ldb_extended_dn_out_module_init',
-       module_init_name='ldb_init_module',
-       subsystem='ldb',
-       deps='talloc ndr samba-util samdb DSDB_MODULE_HELPERS',
-       internal_module=False,
-       )
-
-
-bld.SAMBA_MODULE('ldb_extended_dn_store',
-       source='extended_dn_store.c',
-       subsystem='ldb',
-       init_function='ldb_extended_dn_store_module_init',
-       module_init_name='ldb_init_module',
-       internal_module=False,
-       deps='talloc samba-util samdb DSDB_MODULE_HELPERS'
-       )
-
-
-bld.SAMBA_MODULE('ldb_show_deleted',
-       source='show_deleted.c',
-       subsystem='ldb',
-       init_function='ldb_show_deleted_module_init',
-       module_init_name='ldb_init_module',
-       internal_module=False,
-       deps='talloc samba-util DSDB_MODULE_HELPERS'
-       )
-
-
-bld.SAMBA_MODULE('ldb_partition',
-       source='partition.c partition_init.c partition_metadata.c',
-       autoproto='partition_proto.h',
-       subsystem='ldb',
-       init_function='ldb_partition_module_init',
-       module_init_name='ldb_init_module',
-       internal_module=False,
-       deps='talloc samdb DSDB_MODULE_HELPERS'
-       )
-
-
-bld.SAMBA_MODULE('ldb_new_partition',
-       source='new_partition.c',
-       subsystem='ldb',
-       init_function='ldb_new_partition_module_init',
-       module_init_name='ldb_init_module',
-       internal_module=False,
-       deps='talloc samdb DSDB_MODULE_HELPERS'
-       )
-
-
-bld.SAMBA_MODULE('ldb_update_keytab',
-       source='update_keytab.c',
-       subsystem='ldb',
-       init_function='ldb_update_keytab_module_init',
-       module_init_name='ldb_init_module',
-       internal_module=False,
-       deps='talloc samba-credentials ldb com_err KERBEROS_SRV_KEYTAB SECRETS DSDB_MODULE_HELPERS'
-       )
-
-
-bld.SAMBA_MODULE('ldb_objectclass',
-       source='objectclass.c',
-       subsystem='ldb',
-       init_function='ldb_objectclass_module_init',
-       module_init_name='ldb_init_module',
-       internal_module=False,
-       deps='talloc samdb DSDB_MODULE_HELPERS samba-util'
-       )
-
-
-bld.SAMBA_MODULE('ldb_objectclass_attrs',
-       source='objectclass_attrs.c',
-       subsystem='ldb',
-       init_function='ldb_objectclass_attrs_module_init',
-       module_init_name='ldb_init_module',
-       deps='talloc samdb samba-util',
-       internal_module=False,
-       )
-
-
-bld.SAMBA_MODULE('ldb_subtree_rename',
-       source='subtree_rename.c',
-       subsystem='ldb',
-       init_function='ldb_subtree_rename_module_init',
-       module_init_name='ldb_init_module',
-       internal_module=False,
-       deps='talloc samba-util ldb samdb-common'
-       )
-
-
-bld.SAMBA_MODULE('ldb_subtree_delete',
-       source='subtree_delete.c',
-       subsystem='ldb',
-       init_function='ldb_subtree_delete_module_init',
-       module_init_name='ldb_init_module',
-       internal_module=False,
-       deps='talloc samba-util DSDB_MODULE_HELPERS'
-       )
-
-
-bld.SAMBA_MODULE('ldb_linked_attributes',
-       source='linked_attributes.c',
-       subsystem='ldb',
-       init_function='ldb_linked_attributes_module_init',
-       module_init_name='ldb_init_module',
-       internal_module=False,
-       deps='talloc samdb DSDB_MODULE_HELPERS'
-       )
-
-
-bld.SAMBA_MODULE('ldb_ranged_results',
-       source='ranged_results.c',
-       subsystem='ldb',
-       init_function='ldb_ranged_results_module_init',
-       module_init_name='ldb_init_module',
-       internal_module=False,
-       deps='talloc samba-util ldb'
-       )
-
-
-bld.SAMBA_MODULE('ldb_anr',
-       source='anr.c',
-       subsystem='ldb',
-       init_function='ldb_anr_module_init',
-       module_init_name='ldb_init_module',
-       internal_module=False,
-       deps='talloc samba-util samdb'
-       )
-
-
-bld.SAMBA_MODULE('ldb_instancetype',
-       source='instancetype.c',
-       subsystem='ldb',
-       init_function='ldb_instancetype_module_init',
-       module_init_name='ldb_init_module',
-       internal_module=False,
-       deps='talloc samba-util samdb DSDB_MODULE_HELPERS'
-       )
-
-
-bld.SAMBA_MODULE('ldb_operational',
-       source='operational.c',
-       subsystem='ldb',
-       init_function='ldb_operational_module_init',
-       module_init_name='ldb_init_module',
-       internal_module=False,
-       deps='talloc samba-util samdb-common DSDB_MODULE_HELPERS samdb'
-       )
-
-
-bld.SAMBA_MODULE('ldb_descriptor',
-       source='descriptor.c',
-       subsystem='ldb',
-       init_function='ldb_descriptor_module_init',
-       module_init_name='ldb_init_module',
-       internal_module=False,
-       deps='talloc security NDR_SECURITY samdb DSDB_MODULE_HELPERS'
-       )
-
-
-bld.SAMBA_MODULE('ldb_resolve_oids',
-       source='resolve_oids.c',
-       subsystem='ldb',
-       init_function='ldb_resolve_oids_module_init',
-       module_init_name='ldb_init_module',
-       internal_module=False,
-       deps='samdb talloc ndr'
-       )
-
-
-bld.SAMBA_MODULE('ldb_acl',
-       source='acl.c',
-       subsystem='ldb',
-       init_function='ldb_acl_module_init',
-       module_init_name='ldb_init_module',
-       internal_module=False,
-       deps='talloc security samdb DSDB_MODULE_HELPERS'
-       )
-
-
-bld.SAMBA_MODULE('ldb_lazy_commit',
-       source='lazy_commit.c',
-       subsystem='ldb',
-       internal_module=False,
-       module_init_name='ldb_init_module',
-       init_function='ldb_lazy_commit_module_init',
-       deps='samdb DSDB_MODULE_HELPERS'
-       )
-
-bld.SAMBA_MODULE('ldb_aclread',
-       source='acl_read.c',
-       subsystem='ldb',
-       init_function='ldb_aclread_module_init',
-       module_init_name='ldb_init_module',
-       internal_module=False,
-       deps='talloc security samdb DSDB_MODULE_HELPERS',
-       )
-
-bld.SAMBA_MODULE('ldb_simple_dn',
-       source='simple_dn.c',
-       subsystem='ldb',
-       init_function='ldb_simple_dn_module_init',
-       module_init_name='ldb_init_module',
-       internal_module=False,
-       deps='talloc DSDB_MODULE_HELPERS'
-       )
-
-bld.SAMBA_MODULE('ldb_dirsync',
-       source='dirsync.c',
-       subsystem='ldb',
-       init_function='ldb_dirsync_module_init',
-       module_init_name='ldb_init_module',
-       internal_module=False,
-       deps='talloc security samdb DSDB_MODULE_HELPERS'
-       )
+if bld.AD_DC_BUILD_IS_ENABLED():
+    bld.PROCESS_SEPARATE_RULE("server")
diff --git a/source4/dsdb/samdb/ldb_modules/wscript_build_server b/source4/dsdb/samdb/ldb_modules/wscript_build_server
new file mode 100755 (executable)
index 0000000..ae184dc
--- /dev/null
@@ -0,0 +1,357 @@
+#!/usr/bin/env python
+
+bld.SAMBA_MODULE('ldb_samba_dsdb',
+       source='samba_dsdb.c',
+       subsystem='ldb',
+       init_function='ldb_samba_dsdb_module_init',
+       module_init_name='ldb_init_module',
+       deps='samdb talloc ndr DSDB_MODULE_HELPERS',
+       internal_module=False,
+       )
+
+
+bld.SAMBA_MODULE('ldb_samba_secrets',
+       source='samba_secrets.c',
+       subsystem='ldb',
+       init_function='ldb_samba_secrets_module_init',
+       module_init_name='ldb_init_module',
+       internal_module=False,
+       deps='samdb talloc ndr'
+       )
+
+
+bld.SAMBA_MODULE('ldb_objectguid',
+       source='objectguid.c',
+       subsystem='ldb',
+       init_function='ldb_objectguid_module_init',
+       module_init_name='ldb_init_module',
+       internal_module=False,
+       deps='samdb talloc ndr DSDB_MODULE_HELPERS'
+       )
+
+
+bld.SAMBA_MODULE('ldb_repl_meta_data',
+       source='repl_meta_data.c',
+       subsystem='ldb',
+       init_function='ldb_repl_meta_data_module_init',
+       module_init_name='ldb_init_module',
+       internal_module=False,
+       deps='samdb talloc ndr NDR_DRSUAPI NDR_DRSBLOBS ndr DSDB_MODULE_HELPERS security'
+       )
+
+
+bld.SAMBA_MODULE('ldb_schema_load',
+       source='schema_load.c',
+       subsystem='ldb',
+       init_function='ldb_schema_load_module_init',
+       module_init_name='ldb_init_module',
+       internal_module=False,
+       deps='samdb talloc DSDB_MODULE_HELPERS'
+       )
+
+
+bld.SAMBA_MODULE('ldb_schema_data',
+       source='schema_data.c',
+       subsystem='ldb',
+       init_function='ldb_schema_data_module_init',
+       module_init_name='ldb_init_module',
+       internal_module=False,
+       deps='samdb talloc DSDB_MODULE_HELPERS'
+       )
+
+
+bld.SAMBA_MODULE('ldb_samldb',
+       source='samldb.c',
+       subsystem='ldb',
+       init_function='ldb_samldb_module_init',
+       module_init_name='ldb_init_module',
+       internal_module=False,
+       deps='talloc samdb DSDB_MODULE_HELPERS DSDB_MODULE_HELPER_RIDALLOC'
+       )
+
+
+bld.SAMBA_MODULE('ldb_samba3sam',
+       source='samba3sam.c',
+       subsystem='ldb',
+       init_function='ldb_samba3sam_module_init',
+       module_init_name='ldb_init_module',
+       internal_module=False,
+       deps='talloc ldb smbpasswdparser security NDR_SECURITY'
+       )
+
+
+bld.SAMBA_MODULE('ldb_samba3sid',
+       source='samba3sid.c',
+       subsystem='ldb',
+       init_function='ldb_samba3sid_module_init',
+       module_init_name='ldb_init_module',
+       internal_module=False,
+       deps='talloc ldb security NDR_SECURITY ldbsamba DSDB_MODULE_HELPERS'
+       )
+
+
+bld.SAMBA_MODULE('ldb_simple_ldap_map',
+       source='simple_ldap_map.c',
+       subsystem='ldb',
+       init_function='ldb_simple_ldap_map_module_init',
+       module_init_name='ldb_init_module',
+       internal_module=False,
+       deps='talloc ldb ndr ldbsamba samdb-common'
+       )
+
+
+bld.SAMBA_MODULE('ldb_rootdse',
+       source='rootdse.c',
+       subsystem='ldb',
+       init_function='ldb_rootdse_module_init',
+       module_init_name='ldb_init_module',
+       internal_module=False,
+       deps='talloc samdb MESSAGING security DSDB_MODULE_HELPERS'
+       )
+
+
+bld.SAMBA_MODULE('ldb_password_hash',
+       source='password_hash.c',
+       subsystem='ldb',
+       init_function='ldb_password_hash_module_init',
+       module_init_name='ldb_init_module',
+       internal_module=False,
+       deps='talloc samdb LIBCLI_AUTH NDR_DRSBLOBS authkrb5 krb5 DSDB_MODULE_HELPERS'
+       )
+
+
+bld.SAMBA_MODULE('ldb_local_password',
+       source='local_password.c',
+       subsystem='ldb',
+       init_function='ldb_local_password_module_init',
+       module_init_name='ldb_init_module',
+       internal_module=False,
+       deps='talloc ndr samdb'
+       )
+
+bld.SAMBA_MODULE('ldb_extended_dn_in',
+       source='extended_dn_in.c',
+       subsystem='ldb',
+       init_function='ldb_extended_dn_in_module_init',
+       module_init_name='ldb_init_module',
+       internal_module=False,
+       deps='ldb talloc samba-util DSDB_MODULE_HELPERS'
+       )
+
+
+bld.SAMBA_MODULE('ldb_extended_dn_out',
+       source='extended_dn_out.c',
+       init_function='ldb_extended_dn_out_module_init',
+       module_init_name='ldb_init_module',
+       subsystem='ldb',
+       deps='talloc ndr samba-util samdb DSDB_MODULE_HELPERS',
+       internal_module=False,
+       )
+
+
+bld.SAMBA_MODULE('ldb_extended_dn_store',
+       source='extended_dn_store.c',
+       subsystem='ldb',
+       init_function='ldb_extended_dn_store_module_init',
+       module_init_name='ldb_init_module',
+       internal_module=False,
+       deps='talloc samba-util samdb DSDB_MODULE_HELPERS'
+       )
+
+
+bld.SAMBA_MODULE('ldb_show_deleted',
+       source='show_deleted.c',
+       subsystem='ldb',
+       init_function='ldb_show_deleted_module_init',
+       module_init_name='ldb_init_module',
+       internal_module=False,
+       deps='talloc samba-util DSDB_MODULE_HELPERS'
+       )
+
+
+bld.SAMBA_MODULE('ldb_partition',
+       source='partition.c partition_init.c partition_metadata.c',
+       autoproto='partition_proto.h',
+       subsystem='ldb',
+       init_function='ldb_partition_module_init',
+       module_init_name='ldb_init_module',
+       internal_module=False,
+       deps='talloc samdb DSDB_MODULE_HELPERS'
+       )
+
+
+bld.SAMBA_MODULE('ldb_new_partition',
+       source='new_partition.c',
+       subsystem='ldb',
+       init_function='ldb_new_partition_module_init',
+       module_init_name='ldb_init_module',
+       internal_module=False,
+       deps='talloc samdb DSDB_MODULE_HELPERS'
+       )
+
+
+bld.SAMBA_MODULE('ldb_update_keytab',
+       source='update_keytab.c',
+       subsystem='ldb',
+       init_function='ldb_update_keytab_module_init',
+       module_init_name='ldb_init_module',
+       internal_module=False,
+       deps='talloc samba-credentials ldb com_err KERBEROS_SRV_KEYTAB SECRETS DSDB_MODULE_HELPERS'
+       )
+
+
+bld.SAMBA_MODULE('ldb_objectclass',
+       source='objectclass.c',
+       subsystem='ldb',
+       init_function='ldb_objectclass_module_init',
+       module_init_name='ldb_init_module',
+       internal_module=False,
+       deps='talloc samdb DSDB_MODULE_HELPERS samba-util'
+       )
+
+
+bld.SAMBA_MODULE('ldb_objectclass_attrs',
+       source='objectclass_attrs.c',
+       subsystem='ldb',
+       init_function='ldb_objectclass_attrs_module_init',
+       module_init_name='ldb_init_module',
+       deps='talloc samdb samba-util',
+       internal_module=False,
+       )
+
+
+bld.SAMBA_MODULE('ldb_subtree_rename',
+       source='subtree_rename.c',
+       subsystem='ldb',
+       init_function='ldb_subtree_rename_module_init',
+       module_init_name='ldb_init_module',
+       internal_module=False,
+       deps='talloc samba-util ldb samdb-common'
+       )
+
+
+bld.SAMBA_MODULE('ldb_subtree_delete',
+       source='subtree_delete.c',
+       subsystem='ldb',
+       init_function='ldb_subtree_delete_module_init',
+       module_init_name='ldb_init_module',
+       internal_module=False,
+       deps='talloc samba-util DSDB_MODULE_HELPERS'
+       )
+
+
+bld.SAMBA_MODULE('ldb_linked_attributes',
+       source='linked_attributes.c',
+       subsystem='ldb',
+       init_function='ldb_linked_attributes_module_init',
+       module_init_name='ldb_init_module',
+       internal_module=False,
+       deps='talloc samdb DSDB_MODULE_HELPERS'
+       )
+
+
+bld.SAMBA_MODULE('ldb_ranged_results',
+       source='ranged_results.c',
+       subsystem='ldb',
+       init_function='ldb_ranged_results_module_init',
+       module_init_name='ldb_init_module',
+       internal_module=False,
+       deps='talloc samba-util ldb'
+       )
+
+
+bld.SAMBA_MODULE('ldb_anr',
+       source='anr.c',
+       subsystem='ldb',
+       init_function='ldb_anr_module_init',
+       module_init_name='ldb_init_module',
+       internal_module=False,
+       deps='talloc samba-util samdb'
+       )
+
+
+bld.SAMBA_MODULE('ldb_instancetype',
+       source='instancetype.c',
+       subsystem='ldb',
+       init_function='ldb_instancetype_module_init',
+       module_init_name='ldb_init_module',
+       internal_module=False,
+       deps='talloc samba-util samdb DSDB_MODULE_HELPERS'
+       )
+
+
+bld.SAMBA_MODULE('ldb_operational',
+       source='operational.c',
+       subsystem='ldb',
+       init_function='ldb_operational_module_init',
+       module_init_name='ldb_init_module',
+       internal_module=False,
+       deps='talloc samba-util samdb-common DSDB_MODULE_HELPERS samdb'
+       )
+
+
+bld.SAMBA_MODULE('ldb_descriptor',
+       source='descriptor.c',
+       subsystem='ldb',
+       init_function='ldb_descriptor_module_init',
+       module_init_name='ldb_init_module',
+       internal_module=False,
+       deps='talloc security NDR_SECURITY samdb DSDB_MODULE_HELPERS'
+       )
+
+
+bld.SAMBA_MODULE('ldb_resolve_oids',
+       source='resolve_oids.c',
+       subsystem='ldb',
+       init_function='ldb_resolve_oids_module_init',
+       module_init_name='ldb_init_module',
+       internal_module=False,
+       deps='samdb talloc ndr'
+       )
+
+
+bld.SAMBA_MODULE('ldb_acl',
+       source='acl.c',
+       subsystem='ldb',
+       init_function='ldb_acl_module_init',
+       module_init_name='ldb_init_module',
+       internal_module=False,
+       deps='talloc security samdb DSDB_MODULE_HELPERS'
+       )
+
+
+bld.SAMBA_MODULE('ldb_lazy_commit',
+       source='lazy_commit.c',
+       subsystem='ldb',
+       internal_module=False,
+       module_init_name='ldb_init_module',
+       init_function='ldb_lazy_commit_module_init',
+       deps='samdb DSDB_MODULE_HELPERS'
+       )
+
+bld.SAMBA_MODULE('ldb_aclread',
+       source='acl_read.c',
+       subsystem='ldb',
+       init_function='ldb_aclread_module_init',
+       module_init_name='ldb_init_module',
+       internal_module=False,
+       deps='talloc security samdb DSDB_MODULE_HELPERS',
+       )
+
+bld.SAMBA_MODULE('ldb_simple_dn',
+       source='simple_dn.c',
+       subsystem='ldb',
+       init_function='ldb_simple_dn_module_init',
+       module_init_name='ldb_init_module',
+       internal_module=False,
+       deps='talloc DSDB_MODULE_HELPERS'
+       )
+
+bld.SAMBA_MODULE('ldb_dirsync',
+       source='dirsync.c',
+       subsystem='ldb',
+       init_function='ldb_dirsync_module_init',
+       module_init_name='ldb_init_module',
+       internal_module=False,
+       deps='talloc security samdb DSDB_MODULE_HELPERS'
+       )
index af0defd..a80c45c 100755 (executable)
@@ -12,7 +12,6 @@ bld.SAMBA_LIBRARY('samdb',
        deps='ndr NDR_DRSUAPI NDR_DRSBLOBS auth_system_session LIBCLI_AUTH ndr SAMDB_SCHEMA ldbsamba samdb-common LIBCLI_DRSUAPI cli-ldap-common samba-util com_err authkrb5 samba-credentials ldbwrap errors krb5samba',
        )
 
-
 bld.SAMBA_LIBRARY('samdb-common',
        source='common/util.c common/util_groups.c common/util_samr.c common/dsdb_dn.c common/dsdb_access.c',
        autoproto='common/proto.h',
@@ -35,6 +34,7 @@ bld.SAMBA_MODULE('service_drepl',
        init_function='server_service_drepl_init',
        deps='samdb process_model RPC_NDR_DRSUAPI',
        internal_module=False,
+       enabled=bld.AD_DC_BUILD_IS_ENABLED()
        )
 
 
@@ -45,6 +45,7 @@ bld.SAMBA_MODULE('service_kcc',
        init_function='server_service_kcc_init',
        deps='samdb process_model RPC_NDR_IRPC RPC_NDR_DRSUAPI UTIL_RUNCMD',
        internal_module=False,
+       enabled=bld.AD_DC_BUILD_IS_ENABLED()
        )
 
 
@@ -53,7 +54,8 @@ bld.SAMBA_MODULE('service_dns_update',
        subsystem='service',
        init_function='server_service_dnsupdate_init',
        deps='samdb UTIL_RUNCMD samba-util ldb samdb-common errors talloc auth_system_session samba-hostconfig',
-       internal_module=False
+       internal_module=False,
+       enabled=bld.AD_DC_BUILD_IS_ENABLED()
        )
 
 bld.SAMBA_PYTHON('python_dsdb',
index 660baf4..8c40ec8 100644 (file)
@@ -5,5 +5,6 @@ bld.SAMBA_MODULE('ECHO',
         subsystem='service',
         init_function='server_service_echo_init',
         deps='samba-hostconfig LIBTSOCKET LIBSAMBA_TSOCKET',
-        local_include=False
+        local_include=False,
+        enabled=bld.AD_DC_BUILD_IS_ENABLED()
         )
index 0b6ae88..31e0c5c 100755 (executable)
@@ -89,7 +89,7 @@ conf.define('HAVE_GSSKRB5_GET_SUBKEY', 1)
 conf.define('HAVE_GSS_KRB5_EXPORT_LUCID_SEC_CONTEXT', 1)
 conf.define('HAVE_GSS_IMPORT_CRED', 1)
 conf.define('HAVE_GSS_EXPORT_CRED', 1)
-conf.define('HAVE_LIBGSSAPI', 1)
+conf.define('HAVE_GSSAPI', 1)
 conf.define('HAVE_ADDR_TYPE_IN_KRB5_ADDRESS', 1)
 conf.define('HAVE_CHECKSUM_IN_KRB5_CHECKSUM', 1)
 conf.define('HAVE_DECL_KRB5_AUTH_CON_SET_REQ_CKSUMTYPE', 0)
index 743facc..32a77c7 100644 (file)
@@ -8,5 +8,6 @@ bld.SAMBA_MODULE('service_ldap',
        init_function='server_service_ldap_init',
        deps='samba-credentials cli-ldap samdb process_model gensec samba-hostconfig samba_server_gensec',
        internal_module=False,
+       enabled=bld.AD_DC_BUILD_IS_ENABLED()
        )
 
index 57e3160..55fedcd 100644 (file)
@@ -17,5 +17,6 @@ bld.SAMBA_PYTHON('python_net',
 bld.SAMBA_PYTHON('python_dckeytab',
        source='py_net_dckeytab.c libnet_export_keytab.c',
        deps='pyrpc_util HDB_SAMBA4 com_err',
-       realname='samba/dckeytab.so'
+       realname='samba/dckeytab.so',
+        enabled=bld.AD_DC_BUILD_IS_ENABLED()
        )
index 252a9b8..665ccd4 100644 (file)
@@ -3,7 +3,8 @@
 bld.SAMBA_SUBSYSTEM('WINSDB',
        source='wins/winsdb.c wins/wins_hook.c',
        autoproto='wins/winsdb_proto.h',
-       public_deps='ldb ldbsamba'
+       public_deps='ldb ldbsamba',
+       enabled=bld.AD_DC_BUILD_IS_ENABLED()
        )
 
 
@@ -14,27 +15,31 @@ bld.SAMBA_MODULE('ldb_wins_ldb',
         module_init_name='ldb_init_module',
        deps='ldb netif samba-hostconfig samba-util',
        internal_module=False,
+       enabled=bld.AD_DC_BUILD_IS_ENABLED()
        )
 
 
 bld.SAMBA_SUBSYSTEM('NBTD_WINS',
        source='wins/winsserver.c wins/winsclient.c wins/winswack.c wins/wins_dns_proxy.c',
        autoproto='wins/winsserver_proto.h',
-       deps='cli-nbt WINSDB'
+       deps='cli-nbt WINSDB',
+       enabled=bld.AD_DC_BUILD_IS_ENABLED()
        )
 
 
 bld.SAMBA_SUBSYSTEM('NBTD_DGRAM',
        source='dgram/request.c dgram/netlogon.c dgram/browse.c',
        autoproto='dgram/proto.h',
-       deps='LIBCLI_DGRAM CLDAPD'
+       deps='LIBCLI_DGRAM CLDAPD',
+       enabled=bld.AD_DC_BUILD_IS_ENABLED()
        )
 
 
 bld.SAMBA_SUBSYSTEM('NBT_SERVER',
        source='interfaces.c register.c query.c nodestatus.c defense.c packet.c irpc.c',
        autoproto='nbt_server_proto.h',
-       deps='cli-nbt NBTD_WINS NBTD_DGRAM'
+       deps='cli-nbt NBTD_WINS NBTD_DGRAM service',
+       enabled=bld.AD_DC_BUILD_IS_ENABLED()
        )
 
 
@@ -44,5 +49,6 @@ bld.SAMBA_MODULE('service_nbtd',
        init_function='server_service_nbtd_init',
        deps='NBT_SERVER process_model',
        internal_module=False,
+       enabled=bld.AD_DC_BUILD_IS_ENABLED()
        )
 
index ad12925..a7f925d 100644 (file)
@@ -6,5 +6,6 @@ bld.SAMBA_MODULE('service_ntp_signd',
        init_function='server_service_ntp_signd_init',
        deps='samdb NDR_NTP_SIGND LIBTSOCKET LIBSAMBA_TSOCKET',
        internal_module=False,
+       enabled=bld.AD_DC_BUILD_IS_ENABLED()
        )
 
index ce858ae..32c46fa 100644 (file)
@@ -4,13 +4,15 @@ bld.SAMBA_MODULE('ntptr_simple_ldb',
        source='simple_ldb/ntptr_simple_ldb.c',
        subsystem='ntptr',
        init_function='ntptr_simple_ldb_init',
-       deps='ldb NDR_SPOOLSS DCERPC_COMMON ldbsamba'
+       deps='ldb NDR_SPOOLSS DCERPC_COMMON ldbsamba',
+       enabled=bld.AD_DC_BUILD_IS_ENABLED()
        )
 
 
 bld.SAMBA_SUBSYSTEM('ntptr',
        source='ntptr_base.c ntptr_interface.c',
        autoproto='ntptr_proto.h',
-       public_deps='DCERPC_COMMON'
+       public_deps='DCERPC_COMMON',
+       enabled=bld.AD_DC_BUILD_IS_ENABLED()
        )
 
index 2a6a3dc..6ac22e1 100644 (file)
@@ -50,7 +50,7 @@ bld.SAMBA_LIBRARY('posix_eadb',
                   source='posix_eadb.c',
                   deps='tdb tdb-wrap',
                   autoproto='posix_eadb_proto.h',
-                private_library=True)
+                  private_library=True)
 
 bld.SAMBA_PYTHON('python_posix_eadb',
        source='python/pyposix_eadb.c',
index 455e7f0..6e3ee6d 100644 (file)
@@ -1,9 +1,18 @@
 #!/usr/bin/env python
 
-bld.RECURSE('posix')
-bld.RECURSE('common')
-bld.RECURSE('unixuid')
-bld.RECURSE('sysdep')
+bld.SAMBA_LIBRARY('ntvfs',
+                  source='ntvfs_base.c ntvfs_generic.c ntvfs_interface.c ntvfs_util.c',
+                  autoproto='ntvfs_proto.h',
+                  deps='tevent samba-modules',
+                  private_library=True,
+                  enabled=bld.AD_DC_BUILD_IS_ENABLED()
+                  )
+
+if bld.AD_DC_BUILD_IS_ENABLED():
+    bld.RECURSE('posix')
+    bld.RECURSE('common')
+    bld.RECURSE('unixuid')
+    bld.RECURSE('sysdep')
 
 bld.SAMBA_MODULE('ntvfs_cifs',
        source='cifs/vfs_cifs.c',
@@ -64,10 +73,3 @@ bld.SAMBA_MODULE('ntvfs_nbench',
        )
 
 
-bld.SAMBA_LIBRARY('ntvfs',
-                  source='ntvfs_base.c ntvfs_generic.c ntvfs_interface.c ntvfs_util.c',
-                  autoproto='ntvfs_proto.h',
-                  deps='tevent samba-modules',
-                  private_library=True
-                  )
-
index b1c3db6..3fbf852 100644 (file)
@@ -29,7 +29,6 @@
 #include "includes.h"
 #include "lib/param/param.h"
 #include "libcli/raw/libcliraw.h"
-#include "rpc_server/common/common.h"
 
 void lpcfg_smbcli_options(struct loadparm_context *lp_ctx,
                         struct smbcli_options *options)
@@ -54,15 +53,3 @@ void lpcfg_smbcli_session_options(struct loadparm_context *lp_ctx,
        options->plaintext_auth = lpcfg_client_plaintext_auth(lp_ctx);
 }
 
-_PUBLIC_ struct dcerpc_server_info *lpcfg_dcerpc_server_info(TALLOC_CTX *mem_ctx, struct loadparm_context *lp_ctx)
-{
-       struct dcerpc_server_info *ret = talloc_zero(mem_ctx, struct dcerpc_server_info);
-
-       ret->domain_name = talloc_reference(mem_ctx, lpcfg_workgroup(lp_ctx));
-       ret->version_major = lpcfg_parm_int(lp_ctx, NULL, "server_info", "version_major", 5);
-       ret->version_minor = lpcfg_parm_int(lp_ctx, NULL, "server_info", "version_minor", 2);
-       ret->version_build = lpcfg_parm_int(lp_ctx, NULL, "server_info", "version_build", 3790);
-
-       return ret;
-}
-
diff --git a/source4/rpc_server/common/loadparm.c b/source4/rpc_server/common/loadparm.c
new file mode 100644 (file)
index 0000000..174063e
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+   Unix SMB/CIFS implementation.
+   DCERPC server info param function
+   Moved into rpc_server/common to break dependencies to rpc_server from param
+   Copyright (C) Karl Auer 1993-1998
+
+   Largely re-written by Andrew Tridgell, September 1994
+
+   Copyright (C) Simo Sorce 2001
+   Copyright (C) Alexander Bokovoy 2002
+   Copyright (C) Stefan (metze) Metzmacher 2002
+   Copyright (C) Jim McDonough (jmcd@us.ibm.com)  2003.
+   Copyright (C) James Myers 2003 <myersjj@samba.org>
+   Copyright (C) Jelmer Vernooij <jelmer@samba.org> 2007
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "includes.h"
+#include "lib/param/param.h"
+#include "rpc_server/common/common.h"
+
+_PUBLIC_ struct dcerpc_server_info *lpcfg_dcerpc_server_info(TALLOC_CTX *mem_ctx, struct loadparm_context *lp_ctx)
+{
+       struct dcerpc_server_info *ret = talloc_zero(mem_ctx, struct dcerpc_server_info);
+
+       ret->domain_name = talloc_reference(mem_ctx, lpcfg_workgroup(lp_ctx));
+       ret->version_major = lpcfg_parm_int(lp_ctx, NULL, "server_info", "version_major", 5);
+       ret->version_minor = lpcfg_parm_int(lp_ctx, NULL, "server_info", "version_minor", 2);
+       ret->version_build = lpcfg_parm_int(lp_ctx, NULL, "server_info", "version_build", 3790);
+
+       return ret;
+}
+
index c684c05..e3a863a 100755 (executable)
@@ -3,15 +3,27 @@
 bld.SAMBA_SUBSYSTEM('DCERPC_SHARE',
        source='common/server_info.c common/share_info.c',
        autoproto='common/share.h',
-       deps='ldb'
+       deps='ldb',
+       enabled=bld.AD_DC_BUILD_IS_ENABLED()
        )
 
 bld.SAMBA_SUBSYSTEM('DCERPC_COMMON',
-       source='common/forward.c common/reply.c dcesrv_auth.c',
+       source='common/forward.c common/reply.c dcesrv_auth.c common/loadparm.c',
        autoproto='common/proto.h',
-       deps='ldb DCERPC_SHARE samba_server_gensec'
+       deps='ldb DCERPC_SHARE samba_server_gensec',
+       enabled=bld.AD_DC_BUILD_IS_ENABLED()
        )
 
+bld.SAMBA_LIBRARY('dcerpc_server',
+       source='dcerpc_server.c dcesrv_mgmt.c handles.c',
+       pc_files='dcerpc_server.pc',
+       deps='LIBCLI_AUTH ndr samba_server_gensec dcerpc_remote service',
+       public_deps='dcerpc',
+       autoproto='dcerpc_server_proto.h',
+       public_headers='dcerpc_server.h',
+       vnum='0.0.1',
+       enabled=bld.AD_DC_BUILD_IS_ENABLED()
+       )
 
 bld.SAMBA_MODULE('dcerpc_rpcecho',
        source='echo/rpc_echo.c',
@@ -144,15 +156,6 @@ bld.SAMBA_MODULE('dcerpc_dnsserver',
     deps='DCERPC_COMMON'
     )
 
-bld.SAMBA_LIBRARY('dcerpc_server',
-       source='dcerpc_server.c dcesrv_mgmt.c handles.c',
-       pc_files='dcerpc_server.pc',
-       deps='LIBCLI_AUTH ndr samba_server_gensec dcerpc_remote service',
-       public_deps='dcerpc',
-       autoproto='dcerpc_server_proto.h',
-       public_headers='dcerpc_server.h',
-       vnum='0.0.1'
-       )
 
 bld.SAMBA_MODULE('service_dcerpc',
        source='service_rpc.c',
index 459b917..200562b 100644 (file)
@@ -1,8 +1,7 @@
 #!/usr/bin/env python
 
-bld.SAMBA_SCRIPT('samba_dnsupdate', pattern='samba_dnsupdate', installdir='.')
-bld.SAMBA_SCRIPT('samba_spnupdate', pattern='samba_spnupdate', installdir='.')
-bld.SAMBA_SCRIPT('samba_kcc', pattern='samba_kcc', installdir='.')
-bld.SAMBA_SCRIPT('upgradeprovision', pattern='upgradeprovision', installdir='.')
+if bld.CONFIG_SET('AD_DC_BUILD_IS_ENABLED'):
+    for script in ['samba_dnsupdate', 'samba_spnupdate', 'samba_kcc', 'upgradeprovision', 'samba_upgradedns']:
+        bld.SAMBA_SCRIPT(script, pattern=script, installdir='.')
+
 bld.SAMBA_SCRIPT('samba-tool', pattern='samba-tool', installdir='.')
-bld.SAMBA_SCRIPT('samba_upgradedns', pattern='samba_upgradedns', installdir='.')
index 1cd0241..221f030 100644 (file)
@@ -2,12 +2,19 @@
 
 from samba_utils import MODE_755
 
-bld.INSTALL_FILES('${SBINDIR}',
-                  'bin/upgradeprovision bin/samba_dnsupdate bin/samba_spnupdate bin/samba_upgradedns',
-                  chmod=MODE_755, python_fixup=True, flat=True)
+sbin_files = None
+bin_files = 'bin/samba-tool'
+if bld.CONFIG_SET('AD_DC_BUILD_IS_ENABLED'):
+    sbin_files = 'bin/upgradeprovision bin/samba_dnsupdate bin/samba_spnupdate bin/samba_upgradedns'
+    bin_files = bin_files + ' bin/samba_kcc'
+
+if sbin_files:
+    bld.INSTALL_FILES('${SBINDIR}',
+                      'bin/upgradeprovision bin/samba_dnsupdate bin/samba_spnupdate bin/samba_upgradedns',
+                      chmod=MODE_755, python_fixup=True, flat=True)
 
 bld.INSTALL_FILES('${BINDIR}',
-                  'bin/samba-tool bin/samba_kcc',
+                  bin_files,
                   chmod=MODE_755, python_fixup=True, flat=True)
 
 bld.RECURSE('bin')
index 5c717a3..a17de06 100644 (file)
@@ -4,6 +4,7 @@ bld.SAMBA_SUBSYSTEM('SMB_PROTOCOL',
        source='receive.c negprot.c nttrans.c reply.c request.c search.c service.c sesssetup.c srvtime.c trans2.c signing.c',
        autoproto='smb_proto.h',
        deps='dfs_server_ad',
-       public_deps='ntvfs LIBPACKET samba-credentials samba_server_gensec'
+       public_deps='ntvfs LIBPACKET samba-credentials samba_server_gensec',
+       enabled=bld.AD_DC_BUILD_IS_ENABLED()
        )
 
index fd140eb..18a2b29 100644 (file)
@@ -3,6 +3,7 @@
 bld.SAMBA_SUBSYSTEM('SMB2_PROTOCOL',
        source='receive.c negprot.c sesssetup.c tcon.c fileio.c fileinfo.c find.c keepalive.c',
        autoproto='smb2_proto.h',
-       public_deps='ntvfs LIBPACKET LIBCLI_SMB2 samba_server_gensec NDR_DFSBLOBS'
+       public_deps='ntvfs LIBPACKET LIBCLI_SMB2 samba_server_gensec NDR_DFSBLOBS',
+       enabled=bld.AD_DC_BUILD_IS_ENABLED()
        )
 
index 5bf004a..bfeba0e 100644 (file)
@@ -7,12 +7,14 @@ bld.SAMBA_MODULE('service_smb',
        init_function='server_service_smb_init',
        deps='SMB_SERVER netif shares samba-hostconfig',
        internal_module=False,
+       enabled=bld.AD_DC_BUILD_IS_ENABLED()
        )
 
 bld.SAMBA_SUBSYSTEM('SMB_SERVER',
        source='handle.c tcon.c session.c blob.c management.c smb_server.c',
        autoproto='smb_server_proto.h',
-       public_deps='share LIBPACKET SMB_PROTOCOL SMB2_PROTOCOL'
+       public_deps='share LIBPACKET SMB_PROTOCOL SMB2_PROTOCOL',
+       enabled=bld.AD_DC_BUILD_IS_ENABLED()
        )
 
 bld.RECURSE('smb')
index ab92e3c..97877fc 100644 (file)
@@ -4,7 +4,8 @@ bld.SAMBA_LIBRARY('service',
        source='service.c service_stream.c service_named_pipe.c service_task.c',
        autoproto='service_proto.h',
        deps='tevent MESSAGING samba_socket RPC_NDR_IRPC NDR_NAMED_PIPE_AUTH npa_tstream gssapi samba-credentials LIBTSOCKET LIBSAMBA_TSOCKET process_model',
-       private_library=True
+       private_library=True,
+       enabled=bld.AD_DC_BUILD_IS_ENABLED()
        )
 
 
@@ -14,6 +15,13 @@ bld.SAMBA_SUBSYSTEM('PIDFILE',
        autoproto='pidfile.h'
        )
 
+bld.SAMBA_LIBRARY('process_model',
+                  source='process_model.c',
+                  autoproto='process_model_proto.h',
+                  deps='samba-util samba-hostconfig samba-modules',
+                  private_library=True,
+                  enabled=bld.AD_DC_BUILD_IS_ENABLED()
+                  )
 
 bld.SAMBA_BINARY('samba',
        source='server.c',
@@ -22,12 +30,10 @@ bld.SAMBA_BINARY('samba',
        deps='''events process_model service samba-hostconfig samba-util POPT_SAMBA PIDFILE
                 popt gensec registry ntptr ntvfs share cluster COMMON_SCHANNEL SECRETS''',
        pyembed=True,
-       install_path='${SBINDIR}'
+       install_path='${SBINDIR}',
+       enabled=bld.AD_DC_BUILD_IS_ENABLED()
        )
 
-
-
-
 bld.SAMBA_MODULE('process_model_single',
                  source='process_single.c',
                  subsystem='process_model',
@@ -73,10 +79,3 @@ bld.SAMBA_MODULE('process_model_onefork',
                  )
 
 
-bld.SAMBA_LIBRARY('process_model',
-                  source='process_model.c',
-                  autoproto='process_model_proto.h',
-                  deps='samba-util samba-hostconfig samba-modules',
-                  private_library=True
-                  )
-
index 0e70cab..75e9418 100644 (file)
@@ -437,6 +437,8 @@ static bool test_PACVerify_workstation_des(struct torture_context *tctx,
        struct samr_SetUserInfo r;
        union samr_UserInfo user_info;
        struct dcerpc_pipe *samr_pipe = torture_join_samr_pipe(join_ctx);
+
+#ifdef AD_DC_BUILD_IS_ENABLED
        struct smb_krb5_context *smb_krb5_context;
        krb5_error_code ret;
 
@@ -448,6 +450,9 @@ static bool test_PACVerify_workstation_des(struct torture_context *tctx,
                                         "allow_weak_crypto", NULL) == FALSE) {
                torture_skip(tctx, "Cannot test DES without [libdefaults] allow_weak_crypto = yes");
        }
+#else
+       torture_skip(tctx, "Skipping DES test in non-AD DC build");
+#endif
 
        /* Mark this workstation with DES-only */
        user_info.info16.acct_flags = ACB_USE_DES_KEY_ONLY | ACB_WSTRUST;
index f33ba79..37ff085 100644 (file)
@@ -478,8 +478,10 @@ NTSTATUS torture_rpc_init(void)
        torture_suite_add_suite(suite, torture_rpc_object_uuid(suite));
        torture_suite_add_suite(suite, torture_rpc_winreg(suite));
        torture_suite_add_suite(suite, torture_rpc_spoolss(suite));
+#ifdef AD_DC_BUILD_IS_ENABLED
        torture_suite_add_suite(suite, torture_rpc_spoolss_notify(suite));
        torture_suite_add_suite(suite, torture_rpc_spoolss_win(suite));
+#endif
        torture_suite_add_suite(suite, torture_rpc_spoolss_driver(suite));
        torture_suite_add_suite(suite, torture_rpc_spoolss_access(suite));
        torture_suite_add_simple_test(suite, "samr", torture_rpc_samr);
index c59c2ea..c0f003d 100755 (executable)
@@ -37,7 +37,8 @@ heimdal_specific['ndr'] = ('','')
 heimdal_specific['rpc'] = ('','')
 if bld.CONFIG_SET('SAMBA4_USES_HEIMDAL'):
        heimdal_specific['ndr'] = (' ndr/backupkey.c','')
-       heimdal_specific['rpc'] = (' rpc/backupkey.c',' RPC_NDR_BACKUPKEY')
+       heimdal_specific['rpc'] = (' rpc/backupkey.c rpc/spoolss_notify.c rpc/spoolss_win.c',
+                                   ' RPC_NDR_BACKUPKEY SMB_SERVER dcerpc_server ntvfs')
 
 bld.SAMBA_SUBSYSTEM('TORTURE_NDR',
        source='ndr/ndr.c ndr/winreg.c ndr/atsvc.c ndr/lsa.c ndr/epmap.c ndr/dfs.c ndr/netlogon.c ndr/drsuapi.c ndr/spoolss.c ndr/samr.c ndr/dfsblob.c ndr/drsblobs.c ndr/nbt.c ndr/ntlmssp.c ndr/string.c'+heimdal_specific['ndr'][0],
@@ -47,11 +48,11 @@ bld.SAMBA_SUBSYSTEM('TORTURE_NDR',
 
 
 bld.SAMBA_MODULE('torture_rpc',
-       source='rpc/join.c rpc/lsa.c rpc/forest_trust.c rpc/lsa_lookup.c rpc/session_key.c rpc/echo.c rpc/dfs.c rpc/drsuapi.c rpc/drsuapi_cracknames.c rpc/dsgetinfo.c rpc/spoolss.c rpc/spoolss_notify.c rpc/spoolss_win.c rpc/spoolss_access.c rpc/unixinfo.c rpc/samr.c rpc/samr_accessmask.c rpc/samr_priv.c rpc/wkssvc.c rpc/srvsvc.c rpc/svcctl.c rpc/atsvc.c rpc/eventlog.c rpc/epmapper.c rpc/winreg.c rpc/initshutdown.c rpc/oxidresolve.c rpc/remact.c rpc/mgmt.c rpc/scanner.c rpc/autoidl.c rpc/countcalls.c rpc/testjoin.c rpc/schannel.c rpc/netlogon.c rpc/remote_pac.c rpc/samlogon.c rpc/samsync.c rpc/multi_bind.c rpc/dssetup.c rpc/alter_context.c rpc/bench.c rpc/samba3rpc.c rpc/rpc.c rpc/async_bind.c rpc/handles.c rpc/frsapi.c rpc/object_uuid.c rpc/ntsvcs.c rpc/browser.c rpc/bind.c '+heimdal_specific['rpc'][0],
+       source='rpc/join.c rpc/lsa.c rpc/forest_trust.c rpc/lsa_lookup.c rpc/session_key.c rpc/echo.c rpc/dfs.c rpc/drsuapi.c rpc/drsuapi_cracknames.c rpc/dsgetinfo.c rpc/spoolss.c rpc/spoolss_access.c rpc/unixinfo.c rpc/samr.c rpc/samr_accessmask.c rpc/samr_priv.c rpc/wkssvc.c rpc/srvsvc.c rpc/svcctl.c rpc/atsvc.c rpc/eventlog.c rpc/epmapper.c rpc/winreg.c rpc/initshutdown.c rpc/oxidresolve.c rpc/remact.c rpc/mgmt.c rpc/scanner.c rpc/autoidl.c rpc/countcalls.c rpc/testjoin.c rpc/schannel.c rpc/netlogon.c rpc/remote_pac.c rpc/samlogon.c rpc/samsync.c rpc/multi_bind.c rpc/dssetup.c rpc/alter_context.c rpc/bench.c rpc/samba3rpc.c rpc/rpc.c rpc/async_bind.c rpc/handles.c rpc/frsapi.c rpc/object_uuid.c rpc/ntsvcs.c rpc/browser.c rpc/bind.c '+heimdal_specific['rpc'][0],
        autoproto='rpc/proto.h',
        subsystem='smbtorture',
        init_function='torture_rpc_init',
-       deps='ndr-table RPC_NDR_UNIXINFO dcerpc-samr RPC_NDR_WINREG RPC_NDR_INITSHUTDOWN RPC_NDR_OXIDRESOLVER RPC_NDR_EVENTLOG RPC_NDR_ECHO RPC_NDR_SVCCTL RPC_NDR_NETLOGON dcerpc-atsvc RPC_NDR_DRSUAPI RPC_NDR_LSA RPC_NDR_EPMAPPER RPC_NDR_DFS RPC_NDR_FRSAPI RPC_NDR_SPOOLSS RPC_NDR_SRVSVC RPC_NDR_WKSSVC RPC_NDR_ROT RPC_NDR_DSSETUP RPC_NDR_REMACT RPC_NDR_OXIDRESOLVER RPC_NDR_NTSVCS WB_HELPER samba-net LIBCLI_AUTH POPT_CREDENTIALS TORTURE_LDAP TORTURE_UTIL TORTURE_RAP dcerpc_server service process_model ntvfs RPC_NDR_BROWSER LIBCLI_DRSUAPI TORTURE_DFS SMB_SERVER'+heimdal_specific['rpc'][1],
+       deps='ndr-table RPC_NDR_UNIXINFO dcerpc-samr RPC_NDR_WINREG RPC_NDR_INITSHUTDOWN RPC_NDR_OXIDRESOLVER RPC_NDR_EVENTLOG RPC_NDR_ECHO RPC_NDR_SVCCTL RPC_NDR_NETLOGON dcerpc-atsvc RPC_NDR_DRSUAPI RPC_NDR_LSA RPC_NDR_EPMAPPER RPC_NDR_DFS RPC_NDR_FRSAPI RPC_NDR_SPOOLSS RPC_NDR_SRVSVC RPC_NDR_WKSSVC RPC_NDR_ROT RPC_NDR_DSSETUP RPC_NDR_REMACT RPC_NDR_OXIDRESOLVER RPC_NDR_NTSVCS WB_HELPER samba-net LIBCLI_AUTH POPT_CREDENTIALS TORTURE_LDAP TORTURE_UTIL TORTURE_RAP service process_model RPC_NDR_BROWSER LIBCLI_DRSUAPI TORTURE_DFS'+heimdal_specific['rpc'][1],
        internal_module=True
        )
 
index bf7e86b..b845067 100644 (file)
@@ -5,6 +5,7 @@ bld.SAMBA_SUBSYSTEM('WEB_WSGI',
                source='wsgi.c',
                pyext=True,
                deps='talloc LIBTSOCKET',
+               enabled=bld.AD_DC_BUILD_IS_ENABLED()
                )
 
 
@@ -15,4 +16,5 @@ bld.SAMBA_MODULE('service_web',
                deps='LIBTLS process_model LIBPYTHON WEB_WSGI',
                pyembed=True,
                internal_module=False,
+               enabled=bld.AD_DC_BUILD_IS_ENABLED()
                )
diff --git a/wscript b/wscript
index 15ac7f5..26a5c86 100755 (executable)
--- a/wscript
+++ b/wscript
@@ -32,6 +32,14 @@ def set_options(opt):
     opt.RECURSE('source3')
     opt.RECURSE('lib/util')
 
+    opt.add_option('--with-system-mitkrb5',
+                   help='enable system MIT krb5 build (includes Samba 4 client and Samba 3 code base)',
+                   action='store_true', dest='with_system_mitkrb5', default=False)
+
+    opt.add_option('--without-ad-dc',
+                   help='disable AD DC functionality (enables Samba 4 client and Samba 3 code base). Requires system MIT krb5',
+                   action='store_true', dest='with_system_mitkrb5', default=False)
+
     gr = opt.option_group('developer options')
     gr.add_option('--enable-build-farm',
                    help='enable special build farm options',
@@ -84,8 +92,11 @@ def configure(conf):
 
     conf.RECURSE('dynconfig')
     conf.RECURSE('lib/ldb')
-    if Options.options.with_mit_krb5_checks:
-        conf.PROCESS_SEPARATE_RULE('krb5')
+
+    if Options.options.with_system_mitkrb5:
+        conf.PROCESS_SEPARATE_RULE('system_mitkrb5')
+    else:
+        conf.DEFINE('AD_DC_BUILD_IS_ENABLED', 1)
     # Only process heimdal_build for non-MIT KRB5 builds
     # When MIT KRB5 checks are done as above, conf.env.KRB5_VENDOR will be set
     # to the lowcased output of 'krb5-config --vendor'.
index ddec579..f136ac1 100755 (executable)
@@ -124,7 +124,8 @@ else:
 
 bld.RECURSE('libcli/smbreadline')
 bld.RECURSE('codepages')
-bld.RECURSE('source4/setup')
+if bld.AD_DC_BUILD_IS_ENABLED():
+    bld.RECURSE('source4/setup')
 bld.RECURSE('source4/scripting')
 bld.RECURSE('pidl')
 bld.RECURSE('lib')
similarity index 93%
rename from wscript_configure_krb5
rename to wscript_configure_system_mitkrb5
index ba7ecf3..7523103 100644 (file)
@@ -3,24 +3,40 @@ import Logs, Options
 # Check for kerberos
 have_gssapi=False
 
-conf.check_cfg(args="--cflags --libs", package="com_err", uselib_store="com_err")
-conf.CHECK_FUNCS_IN('_et_list', 'com_err')
-conf.CHECK_HEADERS('com_err.h', lib='com_err')
+def krb5_define_syslib(conf, lib, deps):
+    found = 'FOUND_SYSTEMLIB_' + lib
+    if found in conf.env:
+        return
+    conf.SET_TARGET_TYPE(lib, 'SYSLIB')
+    conf.SET_SYSLIB_DEPS(lib, deps)
+    conf.env[found] = True
 
 Logs.info("Looking for kerberos features")
 conf.find_program('krb5-config.heimdal', var='HEIMDAL_KRB5_CONFIG')
 conf.find_program('krb5-config', var='KRB5_CONFIG')
 if conf.env.KRB5_CONFIG:
     conf.check_cfg(path="krb5-config", args="--cflags --libs",
-               package="gssapi", uselib_store="KRB5")
+               package="", uselib_store="KRB5")
+    krb5_define_syslib(conf, "krb5", conf.env['LIB_KRB5'])
+    for lib in conf.env['LIB_KRB5']:
+        krb5_define_syslib(conf, lib, lib)
+
+    conf.check_cfg(path="krb5-config", args="--cflags --libs",
+               package="gssapi", uselib_store="GSSAPI")
+    krb5_define_syslib(conf, "gssapi", conf.env['LIB_GSSAPI'])
+
     vendor = conf.cmd_and_log("%(path)s --vendor" % dict(path=conf.env.KRB5_CONFIG), dict())
     conf.env.KRB5_VENDOR = vendor.strip().lower()
     if conf.env.KRB5_VENDOR != 'heimdal':
         conf.define('USING_SYSTEM_KRB5', 1)
         del conf.env.HEIMDAL_KRB5_CONFIG
 
+conf.check_cfg(args="--cflags --libs", package="com_err", uselib_store="com_err")
+conf.CHECK_FUNCS_IN('_et_list', 'com_err')
+conf.CHECK_HEADERS('com_err.h', lib='com_err')
+
 conf.CHECK_HEADERS('krb5.h krb5/locate_plugin.h', lib='krb5')
-conf.CHECK_HEADERS('gssapi.h gssapi/gssapi_generic.h gssapi/gssapi.h gssapi/gssapi_ext.h gssapi/gssapi_krb5.h', lib='krb5')
+conf.CHECK_HEADERS('gssapi.h gssapi/gssapi_generic.h gssapi/gssapi.h gssapi/gssapi_ext.h gssapi/gssapi_krb5.h', lib='gssapi')
 
 conf.CHECK_FUNCS_IN('krb5_encrypt_data', 'k5crypto')
 conf.CHECK_FUNCS_IN('des_set_key','crypto')