s3:passdb: add sid_check_object_is_for_passdb()
[kai/samba.git] / source3 / wscript_build
index e517b402fba4b7cec330ff42bb1f4103d8b46f29..6fc0d0666e6a46ac559f8afd0c2ef36d22198dba 100755 (executable)
@@ -58,8 +58,7 @@ LIB_SRC = '''
           lib/ms_fnmatch.c
           lib/tallocmsg.c lib/dmallocmsg.c
           intl/lang_tdb.c
-          lib/conn_tdb.c lib/gencache.c
-          lib/sessionid_tdb.c
+          lib/gencache.c
           lib/events.c
           lib/server_contexts.c
           lib/server_prefork.c
@@ -67,6 +66,7 @@ LIB_SRC = '''
           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_UTIL_SRC = '''
@@ -130,7 +130,6 @@ LIBSMB_SRC = '''libsmb/clientgen.c libsmb/cliconnect.c libsmb/clifile.c
              libsmb/clistr.c libsmb/cliquota.c libsmb/clifsinfo.c libsmb/clidfs.c
              libsmb/clioplock.c libsmb/clirap2.c
              libsmb/async_smb.c
-             libsmb/clisigning.c
              libsmb/smb2cli_tcon.c
              libsmb/cli_np_tstream.c
              libsmb/reparse_symlink.c
@@ -210,13 +209,14 @@ PASSDB_GET_SET_SRC = '''passdb/pdb_get_set.c'''
 
 PASSDB_SRC = '''${PASSDB_GET_SET_SRC} passdb/passdb.c
                 lib/util_wellknown.c lib/util_builtin.c passdb/pdb_compat.c
+                lib/util_sid_passdb.c
                 lib/util_unixsids.c passdb/lookup_sid.c
                 passdb/login_cache.c
                 passdb/account_pol.c ${PRIVILEGES_SRC}
                 lib/util_nscd.c lib/winbind_util.c
                 passdb/pdb_util.c passdb/pdb_interface.c
-                passdb/pdb_ldap_schema.c
-                passdb/pdb_secrets.c'''
+                passdb/pdb_secrets.c
+                passdb/pdb_unixid.c'''
 #FIXME: lib/winbind_util.c probably is not part of PASSDB_SRC
 
 GROUPDB_SRC = '''groupdb/mapping.c groupdb/mapping_tdb.c'''
@@ -266,10 +266,9 @@ WINBINDD_SRC1 = '''winbindd/winbindd.c
                    winbindd/wb_lookupsid.c
                    winbindd/wb_lookupsids.c
                    winbindd/wb_lookupname.c
-                   winbindd/wb_sid2uid.c
-                   winbindd/wb_sid2gid.c
                    winbindd/wb_uid2sid.c
                    winbindd/wb_gid2sid.c
+                   winbindd/wb_sids2xids.c
                    winbindd/wb_queryuser.c
                    winbindd/wb_lookupuseraliases.c
                    winbindd/wb_lookupusergroups.c
@@ -348,9 +347,11 @@ SMBD_SRC_SRV = '''smbd/server_reload.c smbd/files.c smbd/connection.c
                smbd/process.c smbd/service.c smbd/error.c
                printing/printspoolss.c printing/spoolssd.c
                lib/sysquotas.c lib/sysquotas_linux.c
-               lib/sysquotas_xfs.c lib/sysquotas_4A.c
+               lib/sysquotas_xfs.c lib/sysquotas_4A.c lib/sysquotas_4B.c
                lib/sysquotas_nfs.c
                lib/background.c
+               lib/sessionid_tdb.c
+               lib/conn_tdb.c
                smbd/fake_file.c
                smbd/quotas.c smbd/ntquotas.c smbd/msdfs.c
                smbd/aio.c smbd/statvfs.c
@@ -375,7 +376,12 @@ SMBD_SRC_SRV = '''smbd/server_reload.c smbd/files.c smbd/connection.c
                smbd/smb2_getinfo.c
                smbd/smb2_setinfo.c
                smbd/smb2_break.c
+               smbd/smbXsrv_version.c
+               smbd/smbXsrv_session.c
+               smbd/smbXsrv_tcon.c
+               smbd/smbXsrv_open.c
                smbd/server_exit.c
+               smbd/durable.c
                ${MANGLE_SRC}'''
 
 SMBD_SRC_BASE = '''${SMBD_SRC_SRV}
@@ -443,7 +449,7 @@ RPCCLIENT_SRC1 = '''rpcclient/rpcclient.c rpcclient/cmd_lsarpc.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'''
+                    rpcclient/cmd_winreg.c rpcclient/cmd_fss.c'''
 
 RPCCLIENT_SRC = '''${RPCCLIENT_SRC1}'''
 
@@ -545,23 +551,20 @@ SMBTORTURE_SRC1 = '''torture/torture.c torture/nbio.c torture/scanner.c torture/
                 torture/test_authinfo_structs.c
                 torture/test_smbsock_any_connect.c
                 torture/test_cleanup.c
-               torture/test_ctdbconn.c
-               torture/test_msg.c
-               torture/test_notify.c
-               lib/tevent_barrier.c
-               torture/test_dbwrap_watch.c
-               torture/test_idmap_tdb_common.c
+                torture/test_ctdbconn.c
+                torture/test_msg.c
+                torture/test_notify.c
+                lib/tevent_barrier.c
+                torture/test_dbwrap_watch.c
+                torture/test_idmap_tdb_common.c
+                torture/test_dbwrap_ctdb.c
                 torture/t_strappend.c'''
 
 SMBTORTURE_SRC = '''${SMBTORTURE_SRC1}
         torture/wbc_async.c'''
 
-MASKTEST_SRC = '''torture/masktest.c'''
-
 MSGTEST_SRC = '''torture/msgtest.c'''
 
-LOCKTEST_SRC = '''torture/locktest.c'''
-
 PDBTEST_SRC = '''torture/pdbtest.c'''
 
 VFSTEST_SRC = '''torture/cmd_vfs.c torture/vfstest.c
@@ -633,18 +636,19 @@ bld.SAMBA3_LIBRARY('netapi',
                     libcli_netlogon3
                     LIBCLI_SAMR
                     INIT_SAMR
+                    auth
                     ''',
                     public_headers='../source3/lib/netapi/netapi.h',
-                    pc_files=[],
+                    pc_files='libnet/netapi.pc',
                     vnum='0',
                     vars=locals())
 
 bld.SAMBA3_LIBRARY('smbsharemodes',
                     source=LIBSMBSHAREMODES_SRC,
                     public_deps='''talloc tdb_compat''',
-                    deps='''ccan''',
+                    deps='''ccan-hash''',
                     public_headers='include/smb_share_modes.h',
-                    pc_files=[],
+                    pc_files='libsmb/smbsharemodes.pc',
                     vnum='0',
                     vars=locals())
 
@@ -652,6 +656,7 @@ bld.SAMBA3_LIBRARY('nss_wins',
                   source=WINBIND_WINS_NSS_SRC,
                   deps='''param libsmb LIBTSOCKET''',
                   realname='libnss_wins.so.2',
+                  soname='libnss_wins.so',
                   vnum='2')
 
 bld.SAMBA3_LIBRARY('gse',
@@ -670,7 +675,7 @@ bld.SAMBA3_LIBRARY('msrpc3',
 
 bld.SAMBA3_LIBRARY('gpo',
                    source='${LIBGPO_SRC}',
-                   deps='talloc ads TOKEN_UTIL gpext',
+                   deps='talloc ads TOKEN_UTIL gpext auth',
                    vars=locals(),
                    private_library=True)
 
@@ -687,16 +692,57 @@ bld.SAMBA3_SUBSYSTEM('TLDAP',
                     source=TLDAP_SRC,
                     deps='asn1util LIBTSOCKET')
 
+# 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
+# when modules are not linked statically. In the latter case
+# symbols will not be present in the libpdb anyway so no hurt is
+# done to the version script.
+static_pdb_match = ['tdbsam', 'smbpasswd', 'wbc_sam']
+private_pdb_match = []
+
+# AD DC module when linked statically will pull in few source4/winbind
+# dependencies which are not used outside AD DC module
+static_pdb_match.append('samba_dsdb')
+private_pdb_match.append('!idmap_init')
+private_pdb_match.append('!idmap_sids_to_xids')
+private_pdb_match.append('!idmap_xids_to_sids')
+
+# ldap module is actually three modules merged together: ldapsam, ipa, and nds
+static_pdb_match = static_pdb_match + ['ldap', 'ipa', 'nds']
+ldapsam_pdb_match = ['!priv2ld', '!smbldap_search_domain_info',
+                     '!ldapsam_*', '!groupmap_attr_list*', '!get_userattr_list',
+                     '!dominfo_attr_list', '!get_attr_key2string',
+                     '!sidmap_attr_list', '!attrib_map_*', '!idpool_attr_list',
+                     '!get_attr_list']
+private_pdb_match.append('!pdb_nds_*')
+private_pdb_match.append('!pdb_init_ldapsam')
+private_pdb_match = private_pdb_match + ldapsam_pdb_match
+
+private_pdb_match = private_pdb_match + map(lambda x: '!pdb_%s_init' % x, static_pdb_match)
+
 bld.SAMBA3_LIBRARY('pdb',
                    source=PASSDB_SRC,
                    deps='secrets3 GROUPDB SERVER_MUTEX wbclient LIBCLI_AUTH flag_mapping',
-                   private_library=True,
+                   private_library=False,
+                   pc_files=[],
+                   public_headers_install=True,
                    public_headers='''
                                include/passdb.h
                                passdb/machine_sid.h
                                passdb/lookup_sid.h''',
+                   abi_match=private_pdb_match + ['*'],
+                   abi_directory='passdb/ABI',
+                   vnum='0',
                    vars=locals())
 
+bld.SAMBA3_LIBRARY('smbldaphelper',
+                   source='passdb/pdb_ldap_schema.c passdb/pdb_ldap_util.c',
+                   deps='smbldap secrets3',
+                   allow_undefined_symbols=True,
+                   enabled=bld.CONFIG_SET('HAVE_LDAP'),
+                   private_library=True)
+
 bld.SAMBA3_SUBSYSTEM('SERVER_MUTEX',
                      source=SERVER_MUTEX_SRC,
                     deps='talloc')
@@ -711,9 +757,9 @@ bld.SAMBA3_SUBSYSTEM('LOADPARM_CTX',
                      vars=locals())
 
 bld.SAMBA_GENERATOR('param/param_global_h',
-                    source= 'param/loadparm.c ../script/mkparamdefs.pl',
+                    source= '../script/mkparamdefs.pl param/loadparm.c ../lib/param/param_functions.c',
                     target='param/param_global.h',
-                    rule='${PERL} ${SRC[1].abspath(env)} ${SRC[0].abspath(env)} --file ${TGT} --generate-scope=GLOBAL')
+                    rule='${PERL} ${SRC[0].abspath(env)} ${SRC[1].abspath(env)} ${SRC[2].abspath(env)} --file ${TGT} --generate-scope=GLOBAL')
 
 bld.SAMBA3_SUBSYSTEM('param',
                    source=PARAM_WITHOUT_REG_SRC,
@@ -742,7 +788,7 @@ bld.SAMBA3_SUBSYSTEM('REG_API_REGF',
 bld.SAMBA3_LIBRARY('smbregistry',
                    source=REG_BASE_SRC,
                    deps='''smbd_shim tdb-wrap3 NDR_SECURITY util_tdb talloc
-                   replace util_reg samba-util security
+                   replace util_reg samba-util samba-security
                    errors3 dbwrap samba3-util''',
                    allow_undefined_symbols=True,
                    private_library=True)
@@ -775,18 +821,12 @@ bld.SAMBA3_SUBSYSTEM('KRBCLIENT',
 
 bld.SAMBA3_SUBSYSTEM('samba3util',
                    source=LIB_UTIL_SRC,
-                   deps='ndr security NDR_SECURITY samba-util util_tdb ccan',
+                   deps='ndr samba-security NDR_SECURITY samba-util util_tdb ccan-hash',
                    vars=locals())
 
-bld.SAMBA3_SUBSYSTEM('pidfile',
-                     source='lib/pidfile.c',
-                     # only pidfile.c assumes that CONFIGFILE is set
-                     cflags = ['-DCONFIGFILE="%s"' % bld.env['CONFIGFILE']])
-
 bld.SAMBA3_SUBSYSTEM('samba3core',
                    source=LIB_SRC,
                    deps='''
-                        pidfile
                         samba3util
                         LIBTSOCKET
                         NDR_MESSAGING
@@ -798,7 +838,6 @@ bld.SAMBA3_SUBSYSTEM('samba3core',
                         param
                         dbwrap
                         samba3-util
-                        ccan
                         errors3''',
                    vars=locals())
 
@@ -851,8 +890,12 @@ bld.SAMBA3_LIBRARY('smbldap',
                     source=SMBLDAP_SRC,
                     deps='ldap lber samba-util param',
                     vars=locals(),
-                    enabled=bld.env.HAVE_LDAP,
-                    private_library=True,
+                    enabled=bld.CONFIG_SET("HAVE_LDAP"),
+                    private_library=False,
+                    abi_directory='lib/ABI',
+                    abi_match='smbldap_*',
+                    pc_files=[],
+                    vnum='0',
                     public_headers='include/smbldap.h include/smb_ldap.h')
 
 bld.SAMBA3_LIBRARY('ads',
@@ -868,7 +911,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',
@@ -929,7 +972,12 @@ bld.SAMBA3_LIBRARY('smbd_base',
                     LIBAFS
                     LIBAFS_SETTOKEN
                     RPC_SERVER
-                    ''',
+                    NDR_SMBXSRV
+                   LIBASYS
+                    ccan-hash
+                    NDR_SMB_ACL
+                    netapi
+                    ''' + bld.env['dmapi_lib'],
                     private_library=True,
                     vars=locals())
 
@@ -1024,7 +1072,8 @@ bld.SAMBA3_SUBSYSTEM('PASSCHANGE',
                     source=PASSCHANGE_SRC,
                     deps='''LIBCLI_SAMR
                     INIT_LSA
-                    msrpc3''',
+                    msrpc3
+                    krb5samba''',
                     vars=locals())
 
 bld.SAMBA3_SUBSYSTEM('SAMBA_VERSION',
@@ -1054,7 +1103,7 @@ bld.SAMBA3_SUBSYSTEM('tdb-wrap3',
                     vars=locals())
 
 bld.SAMBA3_LIBRARY('samba3-util',
-                   source='''lib/util_sec.c lib/util_str.c lib/adt_tree.c lib/util_malloc.c lib/memcache.c lib/string_init.c lib/namearray.c lib/file_id.c''',
+                   source='''lib/util_sec.c lib/util_str.c lib/adt_tree.c lib/util_malloc.c lib/memcache.c lib/namearray.c lib/file_id.c''',
                    deps='samba-util charset',
                    private_library=True)
 
@@ -1102,7 +1151,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',
@@ -1175,6 +1224,7 @@ bld.SAMBA3_BINARY('web/swat',
                  param
                  pdb
                  popt_samba3
+                 smbd_base
                  LOCKING
                  PLAINTEXT_AUTH
                  PASSCHANGE
@@ -1213,10 +1263,11 @@ bld.SAMBA3_BINARY('rpcclient/rpcclient',
                  RPC_NDR_NTSVCS
                  RPC_NDR_EVENTLOG
                  INIT_SAMR
+                RPC_NDR_FSRVP
                  ''',
                  vars=locals())
 
-bld.SAMBA3_BINARY('client/smbclient' + bld.env.suffix3,
+bld.SAMBA3_BINARY('client/smbclient',
                  source=CLIENT_SRC,
                  deps='''
                  talloc
@@ -1245,6 +1296,7 @@ bld.SAMBA3_BINARY('net',
                  msrpc3
                  gpo
                  ads
+                 smbd_base
                  LIBADS_SERVER
                  LIBADS_PRINTER
                  SMBREADLINE
@@ -1310,6 +1362,7 @@ bld.SAMBA3_BINARY('smbstatus',
                  talloc
                  param
                  popt_samba3
+                 smbd_base
                  LOCKING
                  PROFILE''',
                  vars=locals())
@@ -1363,7 +1416,7 @@ bld.SAMBA3_BINARY('smbget',
                  smbclient''',
                  vars=locals())
 
-bld.SAMBA3_BINARY('nmblookup' + bld.env.suffix3,
+bld.SAMBA3_BINARY('nmblookup',
                  source=NMBLOOKUP_SRC,
                  deps='''
                  talloc
@@ -1382,8 +1435,11 @@ bld.SAMBA3_BINARY('smbtorture' + bld.env.suffix3,
                  TLDAP
                  RPC_NDR_ECHO
                  WB_REQTRANS
+                 LOCKING
+                NDR_OPEN_FILES
                 idmap
                  ''',
+                 install=False,
                  vars=locals())
 
 bld.SAMBA3_BINARY('smbconftort',
@@ -1392,6 +1448,7 @@ bld.SAMBA3_BINARY('smbconftort',
                  talloc
                  param
                  popt_samba3''',
+                 install=False,
                  vars=locals())
 
 bld.SAMBA3_BINARY('replacetort',
@@ -1399,19 +1456,12 @@ bld.SAMBA3_BINARY('replacetort',
                  deps='replace replace-test',
                  install=False)
 
-bld.SAMBA3_BINARY('masktest' + bld.env.suffix3,
-                 source=MASKTEST_SRC,
-                 deps='''
-                 talloc
-                 param
-                 libsmb''',
-                 vars=locals())
-
 bld.SAMBA3_BINARY('msgtest',
                  source=MSGTEST_SRC,
                  deps='''
                  talloc
                  param''',
+                 install=False,
                  vars=locals())
 
 bld.SAMBA3_BINARY('smbcacls',
@@ -1420,7 +1470,8 @@ bld.SAMBA3_BINARY('smbcacls',
                  talloc
                  popt_samba3
                  msrpc3
-                 libcli_lsa3''',
+                 libcli_lsa3
+                 krb5samba''',
                  vars=locals())
 
 bld.SAMBA3_BINARY('smbcquotas',
@@ -1448,21 +1499,15 @@ bld.SAMBA3_BINARY('sharesec',
                  popt_samba3''',
                  vars=locals())
 
-bld.SAMBA3_BINARY('locktest' + bld.env.suffix3,
-                 source=LOCKTEST_SRC,
-                 deps='''
-                 talloc
-                 param
-                 libsmb
-                 LOCKING''',
-                 vars=locals())
-
 bld.SAMBA3_BINARY('pdbtest',
                  source=PDBTEST_SRC,
                  deps='''
                  talloc
                  pdb
-                 popt_samba3''',
+                 popt_samba3
+                 AUTH_COMMON
+                 auth''',
+                 install=False,
                  vars=locals())
 
 bld.SAMBA3_BINARY('vfstest',
@@ -1471,11 +1516,13 @@ bld.SAMBA3_BINARY('vfstest',
                  vfs
                  popt_samba3
                  SMBREADLINE''',
+                 install=False,
                  vars=locals())
 
 bld.SAMBA3_BINARY('log2pcap',
                  source=LOG2PCAP_SRC,
                  deps='''talloc popt''',
+                 install=False,
                  vars=locals())
 
 bld.SAMBA3_BINARY('locktest2',
@@ -1485,11 +1532,13 @@ bld.SAMBA3_BINARY('locktest2',
                  param
                  libsmb
                  LOCKING''',
+                 install=False,
                  vars=locals())
 
 bld.SAMBA3_BINARY('debug2html',
                  source=DEBUG2HTML_SRC,
                  deps='''talloc popt''',
+                 install=False,
                  vars=locals())
 
 bld.SAMBA3_BINARY('smbfilter',
@@ -1498,6 +1547,7 @@ bld.SAMBA3_BINARY('smbfilter',
                  talloc
                  param
                  LIBNMB''',
+                 install=False,
                  vars=locals())
 
 bld.SAMBA3_BINARY('versiontest',
@@ -1505,9 +1555,10 @@ bld.SAMBA3_BINARY('versiontest',
                  deps='''
                  SAMBA_VERSION
                  param''',
+                 install=False,
                  vars=locals())
 
-bld.SAMBA3_BINARY('ntlm_auth' + bld.env.suffix3,
+bld.SAMBA3_BINARY('ntlm_auth',
                  source=NTLM_AUTH_SRC,
                  deps='''
                  talloc
@@ -1520,6 +1571,7 @@ bld.SAMBA3_BINARY('ntlm_auth' + bld.env.suffix3,
 
 bld.SAMBA3_BINARY('timelimit',
                  source='script/tests/timelimit.c',
+                 install=False,
                  vars=locals())
 
 bld.SAMBA3_BINARY('rpc_open_tcp',
@@ -1527,6 +1579,7 @@ bld.SAMBA3_BINARY('rpc_open_tcp',
                  deps='''
                  talloc
                  msrpc3''',
+                 install=False,
                  vars=locals())
 
 bld.SAMBA3_BINARY('test_lp_load',
@@ -1535,6 +1588,7 @@ bld.SAMBA3_BINARY('test_lp_load',
                  talloc
                  param
                  popt_samba3''',
+                 install=False,
                  vars=locals())
 
 bld.SAMBA3_BINARY('dbwrap_tool',
@@ -1549,6 +1603,7 @@ bld.SAMBA3_BINARY('dbwrap_torture',
                  deps='''
                  talloc
                  popt_samba3''',
+                 install=False,
                  vars=locals())
 
 bld.SAMBA3_BINARY('split_tokens',
@@ -1556,6 +1611,7 @@ bld.SAMBA3_BINARY('split_tokens',
                  deps='''
                  talloc
                  popt_samba3''',
+                 install=False,
                  vars=locals())
 
 bld.SAMBA3_BINARY('vlp',
@@ -1563,14 +1619,21 @@ bld.SAMBA3_BINARY('vlp',
                  deps='''
                  talloc
                  param''',
+                 install=False,
                  vars=locals())
 
 bld.SAMBA3_PYTHON('pysmbd',
                   source='smbd/pysmbd.c',
-                  deps='smbd_base',
+                  deps='smbd_base pyrpc_util',
                   realname='samba/samba3/smbd.so'
                   )
 
+bld.SAMBA3_PYTHON('pylibsmb',
+                  source='libsmb/pylibsmb.c',
+                  deps='smbclient samba-credentials',
+                  realname='samba/samba3/libsmb_samba_internal.so'
+                  )
+
 swat_dir = os.path.join(bld.curdir, '../swat')
 swat_files = recursive_dirlist(swat_dir, swat_dir, '*')
 bld.INSTALL_FILES('${SWATDIR}', swat_files, base_name='../swat')
@@ -1580,6 +1643,7 @@ bld.INSTALL_FILES('${SWATDIR}', swat_files, base_name='../swat')
 bld.RECURSE('auth')
 bld.RECURSE('libgpo/gpext')
 bld.RECURSE('lib/pthreadpool')
+bld.RECURSE('lib/asys')
 bld.RECURSE('librpc')
 bld.RECURSE('librpc/idl')
 bld.RECURSE('libsmb')