winbind: honor WBFLAG_FROM_NSS along with winbind enum users/groups
[samba.git] / source3 / wscript_build
old mode 100755 (executable)
new mode 100644 (file)
index 5cd6dcb..a8ea8e5
@@ -1,22 +1,11 @@
 #!/usr/bin/env python
 
-from samba_utils import *
-import samba_version, samba3
-
 LIBS='ICONV'
 
 config_h = "../include/config.h"
 
 bld.SAMBA_BLDOPTIONS('smbd/build_options.c')
 
-t = bld.SAMBA_GENERATOR('build_env.h',
-                        source='script/build_env.sh',
-                        target='include/build_env.h',
-                        rule='${SRC} ${SRCDIR} ${BUILDDIR} ${CC} > ${TGT}')
-# todo: work out what is really wanted here
-t.env.SRCDIR = bld.path.abspath()
-t.env.BUILDDIR = bld.path.abspath()
-
 bld.SETUP_BUILD_GROUPS()
 
 ######################## SUBSYSTEMS #################################
@@ -57,7 +46,7 @@ bld.SAMBA3_LIBRARY('netapi',
 
 bld.SAMBA3_LIBRARY('gse',
                    source='librpc/crypto/gse_krb5.c librpc/crypto/gse.c',
-                   deps='krb5samba gensec param KRBCLIENT secrets3',
+                   deps='krb5samba gensec smbconf KRBCLIENT secrets3',
                    private_library=True)
 
 bld.SAMBA3_LIBRARY('msrpc3',
@@ -84,25 +73,6 @@ bld.SAMBA3_LIBRARY('msrpc3',
                    ''',
                    private_library=True)
 
-bld.SAMBA3_LIBRARY('gpo',
-                   source='''
-                          ../libgpo/gpo_ldap.c
-                          ../libgpo/gpo_ini.c
-                          ../libgpo/gpo_util.c
-                          ../libgpo/gpo_fetch.c
-                          libgpo/gpo_filesync.c
-                          ../libgpo/gpo_sec.c
-                          libgpo/gpo_reg.c
-                          ''',
-                   deps='''
-                        talloc
-                        ads
-                        TOKEN_UTIL
-                        gpext
-                        auth
-                        ''',
-                   private_library=True)
-
 bld.SAMBA3_SUBSYSTEM('AVAHI',
                     source='''
                            lib/avahi.c
@@ -133,6 +103,17 @@ bld.SAMBA3_SUBSYSTEM('TLDAP',
                          samba3util
                          ''')
 
+bld.SAMBA3_BINARY('test_tldap',
+                  source='lib/test_tldap.c',
+                  deps='''
+                       asn1util
+                       LIBTSOCKET
+                       samba3util
+                       smbconf
+                       cmocka
+                       ''',
+                  install=False)
+
 # libpdb.so should not expose internal symbols that are only usable
 # to the statically linked modules that are merged into libpdb.
 # Note that we always filter these symbols out in libpdb, even
@@ -168,7 +149,7 @@ bld.SAMBA3_LIBRARY('samba-passdb',
                                   ''',
                    abi_match=private_pdb_match,
                    abi_directory='passdb/ABI',
-                   vnum='0.25.0')
+                   vnum='0.27.1')
 
 bld.SAMBA3_SUBSYSTEM('pdb',
                    source='''
@@ -213,26 +194,6 @@ bld.SAMBA3_SUBSYSTEM('SERVER_MUTEX',
                      source='lib/server_mutex.c',
                      deps='talloc')
 
-bld.SAMBA3_SUBSYSTEM('param',
-                   source='''
-                          param/loadparm.c
-                          lib/sharesec.c
-                          lib/ldap_debug_handler.c
-                          lib/util_names.c
-                          ''',
-                   deps='''
-                        samba-util
-                        PARAM_UTIL
-                        ldap
-                        lber
-                        LOADPARM_CTX
-                        samba3core
-                        smbconf
-                        param_local.h
-                        param_global.h
-                        cups
-                        ''')
-
 # this includes only the low level parse code, not stuff
 # that requires knowledge of security contexts
 bld.SAMBA3_SUBSYSTEM('REG_PARSE_PRS',
@@ -246,7 +207,8 @@ bld.SAMBA3_SUBSYSTEM('REG_API_REGF',
                     source='registry/reg_api_regf.c',
                     deps='samba-util')
 
-bld.SAMBA3_LIBRARY('smbregistry',
+# Do not link against this use 'smbconf'
+bld.SAMBA3_SUBSYSTEM('SMBREGISTRY',
                    source='''
                           registry/reg_api.c
                           registry/reg_dispatcher.c
@@ -256,7 +218,6 @@ bld.SAMBA3_LIBRARY('smbregistry',
                           lib/util_nttoken.c
                           registry/reg_backend_db.c
                           registry/reg_parse_internal.c
-                          lib/cbuf.c
                           lib/srprs.c
                           registry/reg_init_basic.c
                           ''',
@@ -273,10 +234,9 @@ bld.SAMBA3_LIBRARY('smbregistry',
                         errors3
                         dbwrap
                         samba3-util
-                        ''',
-                   allow_undefined_symbols=True,
-                   private_library=True)
+                        ''')
 
+# Do not link against this use 'smbconf'
 bld.SAMBA3_SUBSYSTEM('REG_SMBCONF',
                     source='''
                            registry/reg_backend_smbconf.c
@@ -284,7 +244,7 @@ bld.SAMBA3_SUBSYSTEM('REG_SMBCONF',
                            registry/reg_util_token.c
                            registry/reg_api_util.c
                            ''',
-                    deps='smbregistry')
+                    deps='SMBREGISTRY')
 
 bld.SAMBA3_SUBSYSTEM('REG_FULL',
                     source='''
@@ -299,13 +259,18 @@ bld.SAMBA3_SUBSYSTEM('REG_FULL',
                            registry/reg_init_full.c
                            registry/reg_perfcount.c''',
                     deps='''
-                         REG_SMBCONF
+                         smbconf
                          tdb-wrap3
                          ''')
 
 bld.SAMBA3_LIBRARY('popt_samba3',
                    source='lib/popt_common.c',
-                   deps='popt samba-util util_cmdline',
+                   deps='popt samba-util smbconf',
+                   private_library=True)
+
+bld.SAMBA3_LIBRARY('popt_samba3_cmdline',
+                   source='lib/popt_common_cmdline.c',
+                   deps='popt_samba3 util_cmdline cmdline_contexts',
                    private_library=True)
 
 bld.SAMBA3_LIBRARY('util_cmdline',
@@ -313,6 +278,11 @@ bld.SAMBA3_LIBRARY('util_cmdline',
                    deps='secrets3',
                    private_library=True)
 
+bld.SAMBA3_LIBRARY('cmdline_contexts',
+                   source='lib/cmdline_contexts.c',
+                   deps='samba3core',
+                   private_library=True)
+
 bld.SAMBA3_SUBSYSTEM('KRBCLIENT',
                      source='libads/kerberos.c libads/ads_status.c',
                      public_deps='krb5samba asn1util k5crypto gssapi LIBTSOCKET CLDAP LIBNMB')
@@ -333,9 +303,9 @@ bld.SAMBA3_SUBSYSTEM('samba3util',
                           lib/util_tsock.c
                           lib/util_transfer_file.c
                           lib/sys_popen.c
-                          lib/sock_exec.c
                           ''',
                    deps='''
+                        CHARSET3
                         ndr
                         LIBTSOCKET
                         samba-security
@@ -350,7 +320,8 @@ if bld.env.with_ctdb:
     SAMBA_CLUSTER_SUPPORT_SOURCES='''
                      lib/cluster_support.c
                      lib/dbwrap/dbwrap_ctdb.c
-                     lib/messages_ctdbd.c
+                     lib/messages_ctdb.c
+                     lib/messages_ctdb_ref.c
                      lib/ctdbd_conn.c
                    '''
     SAMBA_CLUSTER_SUPPORT_DEPS='''
@@ -409,7 +380,6 @@ bld.SAMBA3_SUBSYSTEM('samba3core',
                           lib/messages.c
                           lib/util_cluster.c
                           lib/id_cache.c
-                          lib/talloc_dict.c
                           lib/serverid.c
                           lib/server_id_watch.c
                           lib/server_id_db_util.c
@@ -428,19 +398,18 @@ bld.SAMBA3_SUBSYSTEM('samba3core',
                           intl/lang_tdb.c
                           lib/gencache.c
                           lib/util_event.c
-                          lib/server_contexts.c
+                          lib/global_contexts.c
                           lib/server_prefork.c
                           lib/server_prefork_util.c
                           lib/ldap_escape.c
-                          lib/fncall.c
                           libads/krb5_errs.c
                           lib/system_smbd.c
                           lib/audit.c
                           lib/tevent_wait.c
                           lib/idmap_cache.c
+                          lib/namemap_cache.c
                           lib/util_ea.c
                           lib/background.c
-                          lib/cleanupdb.c
                           ''',
                    deps='''
                         samba3util
@@ -451,7 +420,7 @@ bld.SAMBA3_SUBSYSTEM('samba3core',
                         SAMBA_VERSION
                         PTHREADPOOL
                         interfaces
-                        param
+                        smbconf
                         dbwrap
                         samba3-util
                         errors3
@@ -507,6 +476,7 @@ bld.SAMBA3_LIBRARY('libsmb',
                         LIBTSOCKET
                         KRBCLIENT
                         NDR_IOCTL
+                       NDR_QUOTA
                         cli_smb_common
                         util_cmdline
                         tevent
@@ -529,7 +499,7 @@ bld.SAMBA3_LIBRARY('secrets3',
                           ''',
                    deps='''
                         NDR_SECRETS
-                        param
+                        smbconf
                         samba3util
                         dbwrap
                         ''',
@@ -537,13 +507,13 @@ bld.SAMBA3_LIBRARY('secrets3',
 
 bld.SAMBA3_LIBRARY('smbldap',
                     source='lib/smbldap.c',
-                    deps='ldap lber samba-util param',
+                    deps='ldap lber samba-util smbconf',
                     enabled=bld.CONFIG_SET("HAVE_LDAP"),
                     private_library=False,
                     abi_directory='lib/ABI',
                     abi_match='smbldap_*',
                     pc_files=[],
-                    vnum='0',
+                    vnum='2',
                     public_headers='include/smbldap.h include/smb_ldap.h')
 
 bld.SAMBA3_LIBRARY('ads',
@@ -561,6 +531,7 @@ bld.SAMBA3_LIBRARY('ads',
                           libads/ldap_schema.c
                           libads/util.c
                           libads/ndr.c
+                          libads/net_ads_setspn.c
                           ''',
                    deps='''
                         cli-ldap-common
@@ -568,11 +539,12 @@ bld.SAMBA3_LIBRARY('ads',
                         ldap
                         lber
                         KRBCLIENT
-                        param
+                        smbconf
                         LIBNMB
                         libsmb
                         DCUTIL
                         smbldap
+                        trusts_util
                         ''',
                    private_library=True)
 
@@ -584,13 +556,33 @@ bld.SAMBA3_SUBSYSTEM('LIBADS_PRINTER',
                     source='libads/ldap_printer.c',
                     deps='samba-util krb5samba')
 
+# Only smbconf should link against this subsystem, else we will create
+# a circular dependency.
+bld.SAMBA3_SUBSYSTEM('SMBCONF_PARAM',
+                   source='''
+                          param/loadparm.c
+                          lib/sharesec.c
+                          lib/ldap_debug_handler.c
+                          lib/util_names.c
+                          ''',
+                   deps='''
+                        samba-util
+                        PARAM_UTIL
+                        ldap
+                        lber
+                        LOADPARM_CTX
+                        samba3core
+                        param_local.h
+                        param_global.h
+                        cups
+                        ''')
+
 bld.SAMBA3_LIBRARY('smbconf',
                    source='''
                           lib/smbconf/smbconf_init.c
                           lib/smbconf/smbconf_reg.c
                           ''',
                    deps='''
-                        CHARSET3
                         LIBSMBCONF
                         REG_SMBCONF
                         SAMBA_VERSION
@@ -598,9 +590,8 @@ bld.SAMBA3_LIBRARY('smbconf',
                         charset
                         cli_smb_common
                         errors3
-                        param
+                        SMBCONF_PARAM
                         samba-util
-                        smbregistry
                         talloc
                         util_reg
                         ''',
@@ -623,7 +614,7 @@ bld.SAMBA3_SUBSYSTEM('sysquotas',
                         lib/sysquotas_nfs.c
                      ''',
                      allow_warnings=True,
-                     deps='samba3-util samba-util')
+                     deps='samba3-util samba-util tirpc')
 
 NOTIFY_SOURCES=''
 NOTIFY_DEPS=''
@@ -678,6 +669,7 @@ bld.SAMBA3_LIBRARY('smbd_base',
                           printing/printspoolss.c
                           lib/sessionid_tdb.c
                           lib/conn_tdb.c
+                          lib/cleanupdb.c
                           smbd/fake_file.c
                           smbd/quotas.c
                           smbd/ntquotas.c
@@ -721,7 +713,6 @@ bld.SAMBA3_LIBRARY('smbd_base',
                           smbd/mangle_hash.c
                           smbd/mangle_hash2.c
                           smbd/oplock.c
-                          smbd/oplock_irix.c
                           smbd/oplock_linux.c
                           smbd/notify.c
                           smbd/notify_msg.c
@@ -737,7 +728,6 @@ bld.SAMBA3_LIBRARY('smbd_base',
                         vfs_default
                         vfs_posixacl
                         inotify
-                        popt_samba3
                         samba3core
                         smbd_conn
                         param_service
@@ -750,11 +740,14 @@ bld.SAMBA3_LIBRARY('smbd_base',
                         RPC_SERVICE
                         NDR_SMBXSRV
                         LEASES_DB
+                        LEASES_UTIL
                         sysquotas
                         NDR_SMB_ACL
                         netapi
                         NDR_IOCTL
                         notifyd
+                        vfs_acl_common
+                        NDR_QUOTA
                    ''' +
                    bld.env['dmapi_lib'] +
                    bld.env['legacy_quota_libs'] +
@@ -772,6 +765,7 @@ bld.SAMBA3_SUBSYSTEM('LOCKING',
                          tdb
                          talloc
                          LEASES_DB
+                         LEASES_UTIL
                          NDR_OPEN_FILES
                          FNAME_UTIL
                          ''')
@@ -780,6 +774,10 @@ bld.SAMBA3_SUBSYSTEM('LEASES_DB',
                     source='locking/leases_db.c',
                     deps='NDR_LEASES_DB')
 
+bld.SAMBA3_SUBSYSTEM('LEASES_UTIL',
+                    source='locking/leases_util.c',
+                    deps='NDR_OPEN_FILES')
+
 if bld.CONFIG_GET("WITH_PROFILE"):
     bld.SAMBA3_SUBSYSTEM('PROFILE',
                          source='profile/profile.c',
@@ -827,7 +825,7 @@ bld.SAMBA3_LIBRARY('printing_migrate',
                          cli_spoolss
                          RPC_NDR_WINREG
                          LIBCLI_WINREG
-                         param
+                         smbconf
                          ''',
                     private_library=True)
 
@@ -875,19 +873,6 @@ bld.SAMBA3_SUBSYSTEM('LIBNET_DSSYNC',
                          RPC_NDR_DRSUAPI
                          ''')
 
-bld.SAMBA3_SUBSYSTEM('LIBNET_SAMSYNC',
-                    source='''
-                           libnet/libnet_samsync.c
-                           libnet/libnet_samsync_ldif.c
-                           libnet/libnet_samsync_passdb.c
-                           libnet/libnet_samsync_display.c
-                           libnet/libnet_samsync_keytab.c
-                           ''',
-                    deps='''
-                         LIBNET
-                         LIBCLI_SAMSYNC
-                         ''')
-
 bld.SAMBA3_SUBSYSTEM('LIBEVENTLOG',
                     source='lib/eventlog/eventlog.c',
                     deps='NDR_EVENTLOG tdb')
@@ -953,7 +938,6 @@ bld.SAMBA3_SUBSYSTEM('SLCACHE',
 bld.SAMBA3_SUBSYSTEM('DCUTIL',
                     source='''
                            libsmb/namequery_dc.c
-                           libsmb/trustdom_cache.c
                            libsmb/dsgetdcname.c
                            ''',
                     deps='''
@@ -983,6 +967,7 @@ bld.SAMBA3_LIBRARY('samba3-util',
                           lib/util_malloc.c
                           lib/namearray.c
                           lib/file_id.c
+                          lib/cbuf.c
                           ''',
                    deps='''
                         samba-util
@@ -1037,7 +1022,7 @@ bld.SAMBA3_LIBRARY('libcli_netlogon3',
                         RPC_NDR_NETLOGON
                         INIT_NETLOGON
                         cliauth
-                        param
+                        smbconf
                         NETLOGON_CREDS_CLI''',
                    private_library=True)
 
@@ -1048,7 +1033,7 @@ bld.SAMBA3_LIBRARY('cli_spoolss',
                           ''',
                    deps='''
                         RPC_NDR_SPOOLSS
-                        param
+                        smbconf
                         secrets3''',
                    private_library=True)
 
@@ -1091,6 +1076,7 @@ bld.SAMBA3_SUBSYSTEM('SPOOLSSD',
 bld.SAMBA3_BINARY('smbd/smbd',
                  source='smbd/server.c smbd/smbd_cleanupd.c',
                  deps='''
+                      popt_samba3
                       smbd_base
                       EPMD
                       LSASD
@@ -1114,8 +1100,8 @@ bld.SAMBA3_BINARY('client/smbclient',
                         ''',
                  deps='''
                       talloc
-                      popt_samba3
-                      param
+                      popt_samba3_cmdline
+                      smbconf
                       ndr-standard
                       SMBREADLINE
                       libsmb
@@ -1130,7 +1116,7 @@ bld.SAMBA3_BINARY('smbspool',
                  deps='''
                       talloc
                       popt_samba3
-                      param
+                      smbconf
                       libsmb
                       samba3core
                       ''')
@@ -1148,7 +1134,7 @@ bld.SAMBA3_BINARY('locktest2',
                  source='torture/locktest2.c',
                  deps='''
                       talloc
-                      param
+                      smbconf
                       libsmb
                       LOCKING
                       ''',
@@ -1165,8 +1151,9 @@ bld.SAMBA3_BINARY('smbstatus',
                  source=smbstatus_source,
                  deps='''
                       talloc
-                      param
+                      smbconf
                       popt_samba3
+                      cmdline_contexts
                       smbd_base
                       LOCKING
                       PROFILE
@@ -1196,19 +1183,24 @@ bld.SAMBA3_BINARY('smbtorture' + bld.env.suffix3,
                         torture/test_notify.c
                         lib/tevent_barrier.c
                         torture/test_dbwrap_watch.c
+                        torture/test_dbwrap_do_locked.c
                         torture/test_idmap_tdb_common.c
                         torture/test_dbwrap_ctdb.c
                         torture/test_buffersize.c
                         torture/test_messaging_read.c
                         torture/test_messaging_fd_passing.c
+                        torture/test_messaging_send_all.c
                         torture/test_oplock_cancel.c
                         torture/test_pthreadpool_tevent.c
                         torture/bench_pthreadpool.c
                         torture/wbc_async.c
+                        torture/test_g_lock.c
+                        torture/test_namemap_cache.c
+                        torture/test_hidenewfiles.c
                         ''',
                  deps='''
                       talloc
-                      param
+                      smbconf
                       libsmb
                       msrpc3
                       TLDAP
@@ -1227,7 +1219,7 @@ bld.SAMBA3_BINARY('smbconftort',
                  source='lib/smbconf/testsuite.c',
                  deps='''
                       talloc
-                      param
+                      smbconf
                       popt_samba3
                       ''',
                  install=False)
@@ -1241,7 +1233,7 @@ bld.SAMBA3_BINARY('msgtest',
                  source='torture/msgtest.c',
                  deps='''
                       talloc
-                      param
+                      smbconf
                       ''',
                  install=False)
 
@@ -1249,7 +1241,7 @@ bld.SAMBA3_BINARY('msg_sink',
                  source='torture/msg_sink.c',
                  deps='''
                       talloc
-                      param
+                      smbconf
                       ''',
                  install=False)
 
@@ -1257,7 +1249,7 @@ bld.SAMBA3_BINARY('msg_source',
                  source='torture/msg_source.c',
                  deps='''
                       talloc
-                      param
+                      smbconf
                       ''',
                  install=False)
 
@@ -1281,6 +1273,7 @@ bld.SAMBA3_BINARY('vfstest',
                  deps='''
                       vfs
                       popt_samba3
+                      smbconf
                       SMBREADLINE
                       ''',
                  install=False)
@@ -1289,7 +1282,7 @@ bld.SAMBA3_BINARY('versiontest',
                  source='lib/version_test.c',
                  deps='''
                       SAMBA_VERSION
-                      param
+                      smbconf
                       ''',
                  install=False)
 
@@ -1309,27 +1302,35 @@ bld.SAMBA3_BINARY('vlp',
                  source='printing/tests/vlp.c',
                  deps='''
                       talloc
-                      param
+                      smbconf
                       ''',
                  install=False)
 
-bld.SAMBA3_PYTHON('pysmbd',
+
+for env in bld.gen_python_environments():
+    pyrpc_util = bld.pyembed_libname('pyrpc_util')
+    pytalloc_util = bld.pyembed_libname('pytalloc-util')
+    bld.SAMBA3_PYTHON('pysmbd',
                   source='smbd/pysmbd.c',
-                  deps='smbd_base pyrpc_util pytalloc-util',
+                  deps=' '.join(['smbd_base', pyrpc_util, pytalloc_util]),
                   realname='samba/samba3/smbd.so'
                   )
 
-bld.SAMBA3_PYTHON('pylibsmb',
+for env in bld.gen_python_environments():
+    pycredentials = 'pycredentials'
+    if bld.env['IS_EXTRA_PYTHON']:
+        pycredentials = 'extra-' + pycredentials
+    bld.SAMBA3_PYTHON('pylibsmb',
                   source='libsmb/pylibsmb.c',
-                  deps='smbclient samba-credentials pycredentials',
+                  deps='smbclient samba-credentials %s' % pycredentials,
                   realname='samba/samba3/libsmb_samba_internal.so'
                   )
 
 bld.SAMBA3_BINARY('spotlight2sparql',
                  source='''
                  rpc_server/mdssvc/sparql_parser_test.c
-                 rpc_server/mdssvc/sparql_parser.c
-                 rpc_server/mdssvc/sparql_lexer.c
+                 rpc_server/mdssvc/sparql_parser.y
+                 rpc_server/mdssvc/sparql_lexer.l
                  rpc_server/mdssvc/sparql_mapping.c''',
                  deps='samba3-util talloc ' + bld.env['libtracker'],
                  enabled=bld.env.with_spotlight,
@@ -1339,7 +1340,6 @@ bld.SAMBA3_BINARY('spotlight2sparql',
 
 bld.RECURSE('auth')
 bld.RECURSE('libgpo/gpext')
-bld.RECURSE('lib/pthreadpool')
 bld.RECURSE('librpc')
 bld.RECURSE('librpc/idl')
 bld.RECURSE('libsmb')
@@ -1354,6 +1354,7 @@ bld.RECURSE('../examples/libsmbclient')
 bld.RECURSE('../examples/pdb')
 bld.RECURSE('../examples/VFS')
 bld.RECURSE('../examples/fuse')
+bld.RECURSE('../examples/winexe')
 bld.RECURSE('lib/netapi/tests')
 bld.RECURSE('lib/netapi/examples')
 bld.RECURSE('smbd/notifyd')