1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-23 17:34:34 +03:00
samba-mirror/source3/wscript_build
Volker Lendecke 190554c402 lib: Add msghdr.[ch]
This is a little set of routines to deal with the ugly fd-passing macros.

This patch is the first step assisting the creation of msghrds for sending fds.
Receiving fd helpers will follow later.

The basic idea behind these routines is that they fill a variable-sized buffer.
They are supposed to be called twice per msghdr preparation. First with a
0-sized NULL output buffer to calculate the required bufsize, and then a second
time filling in the buffer as such.

This does not take care of the old msg_accrights way of passing file
descriptors. CMSG/SCM_RIGHTS is standardized for quite a while now, and I
believe this intreface can be made to also take care of msg_accrights if
needed.

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
2015-01-06 00:33:09 +01:00

1515 lines
52 KiB
Python
Executable File

#!/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 #################################
bld.SAMBA3_LIBRARY('netapi',
source='''lib/netapi/netapi.c
lib/netapi/cm.c
lib/netapi/libnetapi.c
lib/netapi/joindomain.c
lib/netapi/serverinfo.c
lib/netapi/wkstainfo.c
lib/netapi/getdc.c
lib/netapi/user.c
lib/netapi/group.c
lib/netapi/localgroup.c
lib/netapi/samr.c
lib/netapi/sid.c
lib/netapi/share.c
lib/netapi/file.c
lib/netapi/shutdown.c
lib/netapi/netlogon.c''',
public_deps='''
talloc
util_cmdline
msrpc3
ads
NDR_LIBNETAPI
LIBNET
RPC_CLIENT_SCHANNEL
libcli_netlogon3
LIBCLI_SAMR
INIT_SAMR
auth
''',
public_headers='../source3/lib/netapi/netapi.h',
pc_files='libnet/netapi.pc',
vnum='0')
bld.SAMBA3_LIBRARY('gse',
source='librpc/crypto/gse_krb5.c librpc/crypto/gse.c',
deps='krb5samba gensec param KRBCLIENT secrets3',
private_library=True)
bld.SAMBA3_LIBRARY('msrpc3',
source='''rpc_client/cli_pipe.c
rpc_client/rpc_transport_np.c
rpc_client/rpc_transport_sock.c
rpc_client/rpc_transport_tstream.c
librpc/rpc/dcerpc_helpers.c''',
deps='''ndr ndr-standard
RPC_NDR_EPMAPPER NTLMSSP_COMMON COMMON_SCHANNEL LIBCLI_AUTH
LIBTSOCKET gse dcerpc-binding
libsmb ndr-table NETLOGON_CREDS_CLI
''',
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 smbd/avahi_register.c',
deps='avahi-common avahi-client',
enabled=bld.env.with_avahi)
bld.SAMBA3_SUBSYSTEM('GROUPDB',
source='groupdb/mapping.c groupdb/mapping_tdb.c',
deps='tdb_compat')
bld.SAMBA3_SUBSYSTEM('TLDAP',
source='''lib/tldap.c
lib/tldap_util.c
lib/util_tsock.c''',
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.append('!pdb_ldapsam_init*')
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('samba-passdb',
source='',
deps='pdb',
private_library=False,
grouping_library=True,
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.24.1')
bld.SAMBA3_SUBSYSTEM('pdb',
source='''passdb/pdb_get_set.c
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
lib/privileges.c
lib/util_nscd.c
lib/winbind_util.c
passdb/pdb_util.c
passdb/pdb_interface.c
passdb/pdb_secrets.c
passdb/pdb_unixid.c''',
deps='secrets3 GROUPDB SERVER_MUTEX wbclient LIBCLI_AUTH flag_mapping samba-credentials')
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='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',
source='registry/reg_parse_prs.c')
bld.SAMBA3_SUBSYSTEM('REGFIO',
source='registry/regfio.c',
deps='samba-util REG_PARSE_PRS')
bld.SAMBA3_SUBSYSTEM('REG_API_REGF',
source='registry/reg_api_regf.c',
deps='samba-util')
bld.SAMBA3_LIBRARY('smbregistry',
source='''registry/reg_api.c
registry/reg_dispatcher.c
registry/reg_cachehook.c
registry/reg_objects.c
registry/reg_util_internal.c
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''',
deps='''smbd_shim tdb-wrap3 NDR_SECURITY util_tdb talloc
replace util_reg samba-util samba-security
errors3 dbwrap samba3-util''',
allow_undefined_symbols=True,
private_library=True)
bld.SAMBA3_SUBSYSTEM('REG_SMBCONF',
source='''registry/reg_backend_smbconf.c
registry/reg_init_smbconf.c
registry/reg_util_token.c
registry/reg_api_util.c''',
deps='smbregistry')
bld.SAMBA3_SUBSYSTEM('REG_FULL',
source='''registry/reg_backend_printing.c
registry/reg_backend_shares.c
registry/reg_backend_netlogon_params.c
registry/reg_backend_prod_options.c
registry/reg_backend_tcpip_params.c
registry/reg_backend_hkpt_params.c
registry/reg_backend_current_version.c
registry/reg_backend_perflib.c
registry/reg_init_full.c
registry/reg_perfcount.c''',
deps='REG_SMBCONF tdb-wrap3')
bld.SAMBA3_LIBRARY('popt_samba3',
source='lib/popt_common.c',
deps='popt samba-util util_cmdline',
private_library=True)
bld.SAMBA3_LIBRARY('util_cmdline',
source='lib/util_cmdline.c',
deps='secrets3',
private_library=True)
bld.SAMBA3_SUBSYSTEM('KRBCLIENT',
source='libads/kerberos.c libads/ads_status.c',
public_deps='krb5samba k5crypto gssapi LIBTSOCKET CLDAP LIBNMB')
bld.SAMBA3_LIBRARY('sys_rw',
source='lib/sys_rw.c lib/sys_rw_data.c',
deps='replace iov_buf',
private_library=True)
bld.SAMBA3_LIBRARY('iov_buf',
source='lib/iov_buf.c',
deps='replace',
private_library=True)
bld.SAMBA3_SUBSYSTEM('samba3util',
source='''lib/system.c
lib/sendfile.c
lib/recvfile.c
lib/time.c
lib/util_sid.c
lib/util_file.c
lib/util.c
lib/util_sock.c
lib/util_transfer_file.c
lib/sock_exec.c''',
deps='ndr samba-security NDR_SECURITY samba-util util_tdb ccan-hash sys_rw iov_buf')
if bld.CONFIG_GET("CTDB_CFLAGS") and bld.CONFIG_GET("CTDB_INCLUDE"):
SAMBA_CLUSTER_SUPPORT_SOURCES='''
lib/cluster_support.c
lib/dbwrap/dbwrap_ctdb.c
lib/messages_ctdbd.c
lib/ctdbd_conn.c
lib/ctdb_conn.c
torture/test_ctdbconn.c
'''
SAMBA_CLUSTER_SUPPORT_DEPS='''
talloc
tevent
tdb
'''
else:
SAMBA_CLUSTER_SUPPORT_SOURCES='''
lib/cluster_support.c
lib/ctdb_dummy.c
'''
SAMBA_CLUSTER_SUPPORT_DEPS='''
talloc
tevent
'''
bld.SAMBA3_LIBRARY('samba-cluster-support',
source=SAMBA_CLUSTER_SUPPORT_SOURCES,
deps=SAMBA_CLUSTER_SUPPORT_DEPS,
cflags=bld.CONFIG_GET("CTDB_CFLAGS"),
includes=bld.CONFIG_GET("CTDB_INCLUDE"),
allow_undefined_symbols=True,
private_library=True)
bld.SAMBA3_SUBSYSTEM('TDB_LIB',
source='''lib/dbwrap/dbwrap_open.c
lib/dbwrap/dbwrap_watch.c
lib/g_lock.c''',
deps='dbwrap samba-cluster-support')
bld.SAMBA3_SUBSYSTEM('samba3core',
source='''lib/messages.c
lib/messages_dgm.c
lib/util_cluster.c
lib/id_cache.c
lib/talloc_dict.c
lib/serverid.c
lib/addrchange.c
../lib/util/debug_s3.c
lib/dumpcore.c
lib/interface.c
lib/username.c
lib/access.c lib/smbrun.c
lib/wins_srv.c
lib/substitute.c
lib/substitute_generic.c
lib/ms_fnmatch.c
lib/tallocmsg.c
lib/dmallocmsg.c
intl/lang_tdb.c
lib/gencache.c
lib/events.c
lib/server_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/util_ea.c
lib/background.c''',
deps='''
samba3util
LIBTSOCKET
NDR_MESSAGING
LIBASYNC_REQ
UTIL_PW
SAMBA_VERSION
PTHREADPOOL
UNIX_MSG
POLL_FUNCS_TEVENT
interfaces
param
dbwrap
samba3-util
errors3
server_id_db
TDB_LIB''')
bld.SAMBA3_LIBRARY('smbd_shim',
source='''lib/smbd_shim.c''',
deps='talloc',
private_library=True)
bld.SAMBA3_SUBSYSTEM('LIBNTLMSSP',
source='''libsmb/ntlmssp.c
libsmb/ntlmssp_wrap.c''',
deps='NDR_NTLMSSP NTLMSSP_COMMON wbclient')
bld.SAMBA3_SUBSYSTEM('auth_generic',
source='libsmb/auth_generic.c',
deps='LIBNTLMSSP gse gensec')
bld.SAMBA3_LIBRARY('libsmb',
source='''libsmb/clientgen.c
libsmb/cliconnect.c
libsmb/clifile.c
libsmb/clispnego.c
libsmb/clirap.c
libsmb/clierror.c
libsmb/climessage.c
libsmb/clireadwrite.c
libsmb/clilist.c
libsmb/cliprint.c
libsmb/clitrans.c
libsmb/clisecdesc.c
libsmb/clidgram.c
libsmb/clistr.c
libsmb/cliquota.c
libsmb/clifsinfo.c
libsmb/clidfs.c
libsmb/clioplock.c
libsmb/clirap2.c
libsmb/async_smb.c
libsmb/reparse_symlink.c
libsmb/clisymlink.c
libsmb/smbsock_connect.c
libsmb/cli_smb2_fnum.c''',
deps='''
LIBNTLMSSP
auth_generic
CLDAP
LIBNMB
SPNEGO_PARSE
LIBTSOCKET
KRBCLIENT
cli_smb_common
util_cmdline
tevent''',
private_library=True)
bld.SAMBA3_SUBSYSTEM('CLDAP',
source='libads/cldap.c',
deps='cli-ldap-common cli_cldap LIBTSOCKET')
# NOTE: The secrets3 library is a low level library used by several subsystems.
# PLEASE DO NOT make it depend on high level libraries like PDB, if you are
# doing that your design is wrong and needs changing. -SSS
bld.SAMBA3_LIBRARY('secrets3',
source='''passdb/secrets.c
passdb/machine_account_secrets.c
passdb/machine_sid.c
passdb/secrets_lsa.c''',
deps='NDR_SECRETS param samba3util dbwrap',
private_library=True)
bld.SAMBA3_LIBRARY('smbldap',
source='lib/smbldap.c',
deps='ldap lber samba-util param',
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',
source='''libads/ldap.c
libads/sasl.c
libads/sasl_wrapping.c
libads/krb5_setpw.c
libads/kerberos_util.c
libads/ldap_user.c
libads/ads_struct.c
libads/kerberos_keytab.c
libads/disp_sec.c
libads/ldap_utils.c
libads/ldap_schema.c
libads/util.c
libads/ndr.c''',
deps='cli-ldap-common krb5samba ldap lber KRBCLIENT param LIBNMB libsmb DCUTIL smbldap',
private_library=True)
bld.SAMBA3_SUBSYSTEM('LIBADS_SERVER',
source='libads/authdata.c',
deps='SERVER_MUTEX ndr-krb5pac krb5samba gssapi')
bld.SAMBA3_SUBSYSTEM('LIBADS_PRINTER',
source='libads/ldap_printer.c',
deps='samba-util krb5samba')
bld.SAMBA3_LIBRARY('smbconf',
source='''lib/smbconf/smbconf_init.c
lib/smbconf/smbconf_reg.c''',
deps='''
CHARSET3
LIBSMBCONF
REG_SMBCONF
SAMBA_VERSION
cap
charset
cli_smb_common
errors3
param
samba-util
smbregistry
talloc
util_reg''',
public_headers='../lib/smbconf/smbconf.h',
pc_files=[],
vnum='0')
bld.SAMBA3_LIBRARY('smbd_conn',
source='smbd/conn.c',
deps='samba3-util samba-util',
private_library=True)
bld.SAMBA3_SUBSYSTEM('sysquotas',
source='''
lib/sysquotas.c
lib/sysquotas_linux.c
lib/sysquotas_xfs.c
lib/sysquotas_4A.c
lib/sysquotas_4B.c
lib/sysquotas_nfs.c
''',
allow_warnings=True,
deps='samba3-util samba-util')
NOTIFY_SOURCES=''
if bld.CONFIG_SET("HAVE_INOTIFY"):
NOTIFY_SOURCES += ' smbd/notify_inotify.c'
bld.SAMBA3_LIBRARY('smbd_base',
source='''
smbd/server_reload.c
smbd/files.c
smbd/connection.c
smbd/utmp.c
smbd/session.c
smbd/dfree.c
smbd/dir.c
smbd/password.c
smbd/conn_msg.c
smbd/conn_idle.c
smbd/share_access.c
smbd/fileio.c
smbd/ipc.c
smbd/lanman.c
smbd/negprot.c
smbd/message.c
smbd/nttrans.c
smbd/pipes.c
smbd/reply.c
smbd/sesssetup.c
smbd/trans2.c
smbd/uid.c
smbd/dosmode.c
smbd/filename.c
smbd/open.c
smbd/close.c
smbd/blocking.c
smbd/sec_ctx.c
smbd/srvstr.c
smbd/vfs.c
smbd/perfcount.c
smbd/statcache.c
smbd/seal.c
smbd/posix_acls.c
lib/sysacls.c
smbd/process.c
smbd/service.c
smbd/error.c
printing/printspoolss.c
printing/spoolssd.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
smbd/dmapi.c
smbd/signing.c
smbd/file_access.c
smbd/dnsregister.c smbd/globals.c
smbd/smb2_server.c
smbd/smb2_glue.c
smbd/smb2_negprot.c
smbd/smb2_sesssetup.c
smbd/smb2_tcon.c
smbd/smb2_create.c
smbd/smb2_close.c
smbd/smb2_flush.c
smbd/smb2_read.c
smbd/smb2_write.c
smbd/smb2_lock.c
smbd/smb2_ioctl.c
smbd/smb2_ioctl_dfs.c
smbd/smb2_ioctl_filesys.c
smbd/smb2_ioctl_named_pipe.c
smbd/smb2_ioctl_network_fs.c
smbd/smb2_keepalive.c
smbd/smb2_find.c
smbd/smb2_notify.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
smbd/scavenger.c
smbd/mangle.c
smbd/mangle_hash.c
smbd/mangle_hash2.c
smbd/oplock.c
smbd/oplock_irix.c
smbd/oplock_linux.c
smbd/notify.c
smbd/notify_internal.c
smbd/build_options.c''' + NOTIFY_SOURCES,
deps='''
talloc
tevent
pdb
libsmb
msrpc3
vfs
vfs_default
vfs_posixacl
inotify
popt_samba3
samba3core
smbd_conn
param_service
AVAHI
PRINTBASE
PROFILE
LOCKING
LIBADS_SERVER
LIBAFS
RPC_SERVICE
NDR_SMBXSRV
LEASES_DB
LIBASYS
sysquotas
ccan-hash
NDR_SMB_ACL
netapi
NDR_IOCTL
''' + bld.env['dmapi_lib'],
private_library=True)
bld.SAMBA3_SUBSYSTEM('LOCKING',
source='''locking/locking.c
locking/brlock.c
locking/posix.c
locking/share_mode_lock.c''',
deps='''
tdb_compat
talloc
LEASES_DB
NDR_OPEN_FILES
FNAME_UTIL''')
bld.SAMBA3_SUBSYSTEM('LEASES_DB',
source='locking/leases_db.c',
deps='NDR_LEASES_DB')
if bld.CONFIG_GET("WITH_PROFILE"):
bld.SAMBA3_SUBSYSTEM('PROFILE',
source='profile/profile.c',
deps='samba-util')
else:
bld.SAMBA3_SUBSYSTEM('PROFILE',
source='profile/profile_dummy.c',
deps='')
bld.SAMBA3_SUBSYSTEM('PRINTBASE',
source='''printing/notify.c printing/printing_db.c''',
deps='samba-util tdb_compat')
bld.SAMBA3_SUBSYSTEM('PRINTBACKEND',
source='''printing/printing.c
printing/nt_printing.c
printing/nt_printing_tdb.c
printing/nt_printing_migrate_internal.c
printing/nt_printing_ads.c
printing/queue_process.c''',
deps='PRINTBASE LIBADS_PRINTER tdb_compat printing_migrate')
bld.SAMBA3_LIBRARY('printing_migrate',
source='printing/nt_printing_migrate.c rpc_client/cli_winreg_spoolss.c printing/nt_printing_os2.c',
deps='NDR_NTPRINTING cli_spoolss RPC_NDR_WINREG LIBCLI_WINREG param',
private_library=True)
bld.SAMBA3_SUBSYSTEM('PRINTING',
source='''printing/pcap.c
printing/print_svid.c
printing/print_aix.c
printing/print_cups.c
printing/print_generic.c
printing/lpq_parse.c
printing/load.c
printing/print_standard.c
printing/print_iprint.c
printing/printer_list.c''',
deps='NDR_PRINTCAP tdb_compat cups')
bld.SAMBA3_SUBSYSTEM('PASSWD_UTIL',
source='utils/passwd_util.c',
deps='samba-util')
bld.SAMBA3_SUBSYSTEM('FNAME_UTIL',
source='lib/filename_util.c',
deps='samba-util')
bld.SAMBA3_SUBSYSTEM('LIBNET',
source='libnet/libnet_join.c',
deps='NDR_LIBNET_JOIN INIT_SAMR net_keytab pdb')
bld.SAMBA3_LIBRARY('net_keytab',
source='libnet/libnet_keytab.c',
deps='krb5samba ads',
private_library=True)
bld.SAMBA3_SUBSYSTEM('LIBNET_DSSYNC',
source='''libnet/libnet_dssync.c
libnet/libnet_dssync_passdb.c
libnet/libnet_dssync_keytab.c''',
allow_warnings=True,
deps='LIBNET 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_compat')
bld.SAMBA3_SUBSYSTEM('LIBNMB',
source='''libsmb/unexpected.c
libsmb/namecache.c
libsmb/nmblib.c
libsmb/namequery.c
libsmb/conncache.c
libads/sitename_cache.c''',
deps='addns lmhosts resolv')
bld.SAMBA3_SUBSYSTEM('SERVICES',
source='''services/svc_spoolss.c
services/svc_rcinit.c
services/svc_winreg_glue.c
services/svc_netlogon.c
services/svc_winreg.c
services/svc_wins.c''',
deps='samba-util')
bld.SAMBA3_SUBSYSTEM('PLAINTEXT_AUTH',
source='''auth/pampass.c auth/pass_check.c''',
deps='pam PAM_ERRORS')
bld.SAMBA3_SUBSYSTEM('PASSCHANGE',
source='libsmb/passchange.c',
deps='''LIBCLI_SAMR
INIT_LSA
msrpc3
krb5samba''')
bld.SAMBA3_SUBSYSTEM('SAMBA_VERSION',
source='lib/version.c',
deps='samba-util')
bld.SAMBA3_SUBSYSTEM('SLCACHE',
source='libsmb/samlogon_cache.c',
deps='samba-util tdb_compat')
bld.SAMBA3_SUBSYSTEM('DCUTIL',
source='''libsmb/namequery_dc.c
libsmb/trustdom_cache.c
libsmb/dsgetdcname.c''',
deps='ads msrpc3 libcli_lsa3')
bld.SAMBA3_LIBRARY('trusts_util',
source='libsmb/trusts_util.c',
deps='libcli_netlogon3 msrpc3 samba-passdb',
private_library=True)
bld.SAMBA3_SUBSYSTEM('tdb-wrap3',
source='lib/util_tdb.c',
deps='talloc samba3-util')
bld.SAMBA3_LIBRARY('msghdr',
source='lib/msghdr.c',
deps='replace iov_buf',
private_library=True)
bld.SAMBA3_LIBRARY('samba3-util',
source='''lib/util_sec.c lib/util_str.c lib/adt_tree.c lib/util_malloc.c lib/namearray.c lib/file_id.c''',
deps='samba-util charset',
private_library=True)
bld.SAMBA_LIBRARY('xattr_tdb',
source='lib/xattr_tdb.c',
deps='NDR_XATTR dbwrap samba3-util',
private_library=True)
bld.SAMBA3_LIBRARY('CHARSET3',
source='''lib/charcnv.c lib/fstring.c''',
public_deps='ICONV_WRAPPER charset',
deps='samba-util samba3-util',
private_library=True)
bld.SAMBA3_SUBSYSTEM('errors3',
source='libsmb/errormap.c libsmb/smberr.c lib/errmap_unix.c',
deps='errors')
bld.SAMBA3_SUBSYSTEM('LIBCLI_SAMR',
source='rpc_client/cli_samr.c',
deps='RPC_NDR_SAMR')
bld.SAMBA3_LIBRARY('libcli_lsa3',
source='rpc_client/cli_lsarpc.c',
deps='RPC_NDR_LSA INIT_LSA',
private_library=True)
bld.SAMBA3_LIBRARY('libcli_netlogon3',
source='rpc_client/cli_netlogon.c rpc_client/util_netlogon.c',
deps='msrpc3 RPC_NDR_NETLOGON INIT_NETLOGON cliauth param NETLOGON_CREDS_CLI',
private_library=True)
bld.SAMBA3_LIBRARY('cli_spoolss',
source='''rpc_client/cli_spoolss.c
rpc_client/init_spoolss.c''',
deps='RPC_NDR_SPOOLSS param secrets3',
private_library=True)
bld.SAMBA3_SUBSYSTEM('LIBCLI_WINREG',
source='rpc_client/cli_winreg.c',
deps='RPC_NDR_WINREG')
bld.SAMBA3_SUBSYSTEM('LIBCLI_WINREG_INTERNAL',
source='rpc_client/cli_winreg_int.c',
deps='LIBCLI_WINREG RPC_SERVER')
bld.SAMBA3_SUBSYSTEM('RPC_CLIENT_SCHANNEL',
source='rpc_client/cli_pipe_schannel.c',
deps='samba-util krb5samba')
bld.SAMBA3_SUBSYSTEM('INIT_LSA',
source='rpc_client/init_lsa.c',
deps='samba-util')
bld.SAMBA3_SUBSYSTEM('INIT_NETLOGON',
source='rpc_client/init_netlogon.c',
deps='samba-util')
bld.SAMBA3_SUBSYSTEM('INIT_SAMR',
source='rpc_client/init_samr.c',
deps='samba-util')
bld.SAMBA3_SUBSYSTEM('LIBLSA',
source='lib/lsa.c')
########################## BINARIES #################################
bld.SAMBA3_BINARY('smbd/smbd',
source='smbd/server.c',
deps='smbd_base EPMD LSASD',
install_path='${SBINDIR}')
bld.SAMBA3_BINARY('nmbd/nmbd',
source='''nmbd/asyncdns.c nmbd/nmbd.c nmbd/nmbd_become_dmb.c
nmbd/nmbd_become_lmb.c nmbd/nmbd_browserdb.c
nmbd/nmbd_browsesync.c nmbd/nmbd_elections.c
nmbd/nmbd_incomingdgrams.c nmbd/nmbd_incomingrequests.c
nmbd/nmbd_lmhosts.c nmbd/nmbd_logonnames.c nmbd/nmbd_mynames.c
nmbd/nmbd_namelistdb.c nmbd/nmbd_namequery.c
nmbd/nmbd_nameregister.c nmbd/nmbd_namerelease.c
nmbd/nmbd_nodestatus.c nmbd/nmbd_packets.c
nmbd/nmbd_processlogon.c nmbd/nmbd_responserecordsdb.c
nmbd/nmbd_sendannounce.c nmbd/nmbd_serverlistdb.c
nmbd/nmbd_subnetdb.c nmbd/nmbd_winsproxy.c nmbd/nmbd_winsserver.c
nmbd/nmbd_workgroupdb.c nmbd/nmbd_synclists.c''',
deps='''
talloc
tevent
param
libsmb
popt_samba3
''',
install_path='${SBINDIR}')
bld.SAMBA3_SUBSYSTEM('TDB_VALIDATE',
source='lib/tdb_validate.c',
deps='samba-util')
bld.SAMBA3_BINARY('winbindd/winbindd',
source='''winbindd/winbindd.c
winbindd/winbindd_group.c
winbindd/winbindd_util.c
winbindd/winbindd_cache.c
winbindd/winbindd_pam.c
winbindd/winbindd_misc.c
winbindd/winbindd_cm.c
winbindd/winbindd_wins_byip.c
winbindd/winbindd_wins_byname.c
winbindd/winbindd_msrpc.c
winbindd/winbindd_rpc.c
winbindd/winbindd_reconnect.c
winbindd/winbindd_ads.c
winbindd/winbindd_samr.c
winbindd/winbindd_dual.c
winbindd/winbindd_dual_ndr.c
winbindd/winbindd_dual_srv.c
winbindd/winbindd_async.c
winbindd/winbindd_creds.c
winbindd/winbindd_cred_cache.c
winbindd/winbindd_ccache_access.c
winbindd/winbindd_domain.c
winbindd/winbindd_idmap.c
winbindd/winbindd_locator.c
winbindd/winbindd_ndr.c
winbindd/wb_ping.c
winbindd/wb_lookupsid.c
winbindd/wb_lookupsids.c
winbindd/wb_lookupname.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
winbindd/wb_getpwsid.c
winbindd/wb_gettoken.c
winbindd/wb_seqnum.c
winbindd/wb_seqnums.c
winbindd/wb_group_members.c
winbindd/wb_getgrsid.c
winbindd/wb_query_user_list.c
winbindd/wb_fill_pwent.c
winbindd/wb_next_pwent.c
winbindd/wb_next_grent.c
winbindd/wb_dsgetdcname.c
winbindd/winbindd_lookupsid.c
winbindd/winbindd_lookupsids.c
winbindd/winbindd_lookupname.c
winbindd/winbindd_sid_to_uid.c
winbindd/winbindd_sid_to_gid.c
winbindd/winbindd_uid_to_sid.c
winbindd/winbindd_gid_to_sid.c
winbindd/winbindd_sids_to_xids.c
winbindd/winbindd_allocate_uid.c
winbindd/winbindd_allocate_gid.c
winbindd/winbindd_getpwsid.c
winbindd/winbindd_getpwnam.c
winbindd/winbindd_getpwuid.c
winbindd/winbindd_getsidaliases.c
winbindd/winbindd_getuserdomgroups.c
winbindd/winbindd_getgroups.c
winbindd/winbindd_show_sequence.c
winbindd/winbindd_getgrgid.c
winbindd/winbindd_getgrnam.c
winbindd/winbindd_getusersids.c
winbindd/winbindd_lookuprids.c
winbindd/winbindd_setpwent.c
winbindd/winbindd_getpwent.c
winbindd/winbindd_endpwent.c
winbindd/winbindd_setgrent.c
winbindd/winbindd_getgrent.c
winbindd/winbindd_endgrent.c
winbindd/winbindd_dsgetdcname.c
winbindd/winbindd_getdcname.c
winbindd/winbindd_list_users.c
winbindd/winbindd_list_groups.c
winbindd/winbindd_check_machine_acct.c
winbindd/winbindd_change_machine_acct.c
winbindd/winbindd_irpc.c
winbindd/winbindd_ping_dc.c
winbindd/winbindd_pam_auth.c
winbindd/winbindd_pam_logoff.c
winbindd/winbindd_pam_chauthtok.c
winbindd/winbindd_pam_auth_crap.c
winbindd/winbindd_pam_chng_pswd_auth_crap.c''',
deps='''
talloc
tevent
pdb
popt_samba3
idmap
ads
msrpc3
nss_info
LIBAFS
LIBADS_SERVER
LIBCLI_SAMR
SLCACHE
RPC_NDR_DSSETUP
RPC_NDR_WINBIND
SRV_NDR_WINBIND
RPC_SAMR
RPC_LSARPC
RPC_SERVER
WB_REQTRANS
TDB_VALIDATE
MESSAGING
LIBLSA
''',
enabled=bld.env.build_winbind,
install_path='${SBINDIR}')
bld.SAMBA3_BINARY('rpcclient/rpcclient',
source='''rpcclient/rpcclient.c
rpcclient/cmd_lsarpc.c
rpcclient/cmd_samr.c
rpcclient/cmd_spoolss.c
rpcclient/cmd_netlogon.c
rpcclient/cmd_srvsvc.c
rpcclient/cmd_dfs.c
rpcclient/cmd_epmapper.c
rpcclient/cmd_dssetup.c
rpcclient/cmd_echo.c
rpcclient/cmd_shutdown.c
rpcclient/cmd_test.c
rpcclient/cmd_wkssvc.c
rpcclient/cmd_ntsvcs.c
rpcclient/cmd_drsuapi.c
rpcclient/cmd_eventlog.c
rpcclient/cmd_winreg.c
rpcclient/cmd_fss.c
rpcclient/cmd_witness.c''',
deps='''
talloc
popt_samba3
pdb
libsmb
param
ndr-standard
msrpc3
SMBREADLINE
trusts_util
RPC_NDR_WINREG
RPC_NDR_ECHO
RPC_CLIENT_SCHANNEL
DCUTIL
LIBCLI_SAMR
libcli_lsa3
libcli_netlogon3
cli_spoolss
RPC_NDR_SRVSVC
RPC_NDR_WKSSVC
RPC_NDR_DSSETUP
RPC_NDR_DFS
RPC_NDR_DRSUAPI
RPC_NDR_NTSVCS
RPC_NDR_EVENTLOG
INIT_SAMR
RPC_NDR_FSRVP
RPC_NDR_WITNESS
''')
bld.SAMBA3_BINARY('client/smbclient',
source='''client/client.c
client/clitar.c
client/dnsbrowse.c''',
deps='''
talloc
popt_samba3
param
ndr-standard
SMBREADLINE
libsmb
msrpc3
RPC_NDR_SRVSVC
cli_smb_common
''' + bld.env['archive_lib'])
bld.SAMBA3_BINARY('net',
source='''utils/net.c
utils/net_ads.c
utils/net_help.c
utils/net_rap.c
utils/net_rpc.c
utils/net_rpc_samsync.c
utils/net_time.c
utils/net_lookup.c
utils/net_cache.c
utils/net_groupmap.c
utils/net_idmap.c
utils/net_idmap_check.c
utils/interact.c
utils/net_status.c
utils/net_rpc_printer.c
utils/net_rpc_rights.c
utils/net_rpc_service.c
utils/net_rpc_registry.c
utils/net_usershare.c
utils/netlookup.c
utils/net_sam.c
utils/net_rpc_shell.c
utils/net_util.c
utils/net_rpc_sh_acct.c
utils/net_rpc_audit.c
utils/net_dns.c
utils/net_ads_gpo.c
utils/net_conf.c
utils/net_conf_util.c
utils/net_join.c
utils/net_user.c
utils/net_group.c
utils/net_file.c
utils/net_registry.c
utils/net_registry_check.c
utils/net_dom.c
utils/net_share.c
utils/net_g_lock.c
utils/net_serverid.c
utils/net_eventlog.c
utils/net_printing.c
utils/net_rpc_trust.c
utils/net_rpc_conf.c
utils/net_afs.c
registry/reg_parse.c
registry/reg_format.c
registry/reg_import.c
utils/net_registry_util.c
utils/net_help_common.c''',
deps='''
talloc
netapi
addns
samba_intl
popt_samba3
pdb
libsmb
param
KRBCLIENT
ndr-standard
msrpc3
gpo
ads
smbd_base
LIBADS_SERVER
LIBADS_PRINTER
SMBREADLINE
PASSWD_UTIL
LIBNET
LIBNET_DSSYNC
LIBNET_SAMSYNC
LIBEVENTLOG
REGFIO
NDR_NTPRINTING
RPC_NDR_WINREG
RPC_CLIENT_SCHANNEL
LIBCLI_SAMR
libcli_lsa3
libcli_netlogon3
cli_spoolss
RPC_NDR_SRVSVC
RPC_NDR_SVCCTL
RPC_NDR_DSSETUP
RPC_NDR_INITSHUTDOWN
printing_migrate
trusts_util
IDMAP_AUTORID_TDB''')
bld.SAMBA3_BINARY('profiles',
source='utils/profiles.c',
deps='''
talloc
popt_samba3
param
REGFIO''')
bld.SAMBA3_BINARY('smbspool',
source='client/smbspool.c',
deps='''
talloc
popt_samba3
param
libsmb
samba3core''')
bld.SAMBA3_BINARY('testparm',
source='utils/testparm.c',
deps='''
talloc
param
popt_samba3''')
bld.SAMBA3_BINARY('smbta-util',
source='utils/smbta-util.c',
deps='''
talloc
secrets3
param''')
smbstatus_source = 'utils/status.c smbd/notify_internal.c'
if bld.CONFIG_GET("WITH_PROFILE"):
smbstatus_source += ' utils/status_profile.c'
else:
smbstatus_source += ' utils/status_profile_dummy.c'
bld.SAMBA3_BINARY('smbstatus',
source=smbstatus_source,
deps='''
talloc
param
popt_samba3
smbd_base
LOCKING
PROFILE''')
bld.SAMBA3_BINARY('smbcontrol',
source='utils/smbcontrol.c',
deps='''
talloc
param
popt_samba3
PRINTBASE''')
bld.SAMBA3_BINARY('smbtree',
source='utils/smbtree.c',
deps='''
talloc
param
libsmb
msrpc3
popt_samba3
RPC_NDR_SRVSVC''')
bld.SAMBA3_BINARY('smbpasswd',
source='utils/smbpasswd.c',
deps='''
talloc
param
pdb
PASSWD_UTIL
PASSCHANGE''')
bld.SAMBA3_BINARY('pdbedit',
source='utils/pdbedit.c',
deps='''
talloc
param
popt_samba3
pdb
PASSWD_UTIL''')
bld.SAMBA3_BINARY('smbget',
source='utils/smbget.c',
deps='''
talloc
popt_samba3
smbclient''')
bld.SAMBA3_BINARY('nmblookup',
source='utils/nmblookup.c',
deps='''
talloc
param
popt_samba3
LIBNMB''')
bld.SAMBA3_BINARY('smbtorture' + bld.env.suffix3,
source='''torture/torture.c
torture/nbio.c
torture/scanner.c
torture/utable.c
torture/denytest.c
torture/mangle_test.c
torture/nbench.c
torture/test_async_echo.c
torture/test_addrchange.c
torture/test_posix_append.c
torture/test_nttrans_create.c
torture/test_nttrans_fsctl.c
torture/test_case_insensitive.c
torture/test_notify_online.c
torture/test_chain3.c
torture/test_smb2.c
torture/test_authinfo_structs.c
torture/test_smbsock_any_connect.c
torture/test_cleanup.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/test_buffersize.c
torture/test_messaging_read.c
torture/test_messaging_fd_passing.c
torture/test_oplock_cancel.c
torture/t_strappend.c
torture/bench_pthreadpool.c
torture/wbc_async.c''',
deps='''
talloc
param
libsmb
msrpc3
TLDAP
RPC_NDR_ECHO
WB_REQTRANS
LOCKING
NDR_OPEN_FILES
idmap
samba-cluster-support
''',
cflags='-DWINBINDD_SOCKET_DIR=\"%s\"' % bld.env.WINBINDD_SOCKET_DIR,
install=False)
bld.SAMBA3_BINARY('smbconftort',
source='lib/smbconf/testsuite.c',
deps='''
talloc
param
popt_samba3''',
install=False)
bld.SAMBA3_BINARY('replacetort',
source='../lib/replace/test/main.c',
deps='replace replace-test',
install=False)
bld.SAMBA3_BINARY('msgtest',
source='torture/msgtest.c',
deps='''
talloc
param''',
install=False)
bld.SAMBA3_BINARY('msg_sink',
source='torture/msg_sink.c',
deps='''
talloc
param''',
install=False)
bld.SAMBA3_BINARY('msg_source',
source='torture/msg_source.c',
deps='''
talloc
param''',
install=False)
bld.SAMBA3_BINARY('smbcacls',
source='utils/smbcacls.c',
deps='''
talloc
popt_samba3
msrpc3
libcli_lsa3
krb5samba''')
bld.SAMBA3_BINARY('smbcquotas',
source='utils/smbcquotas.c',
deps='''
talloc
popt_samba3
libsmb
msrpc3
libcli_lsa3''')
bld.SAMBA3_BINARY('eventlogadm',
source='utils/eventlogadm.c',
deps='''
talloc
param
LIBEVENTLOG''')
bld.SAMBA3_BINARY('sharesec',
source='utils/sharesec.c',
deps='''
talloc
popt_samba3''')
bld.SAMBA3_BINARY('pdbtest',
source='torture/pdbtest.c',
deps='''
talloc
pdb
popt_samba3
AUTH_COMMON
auth''',
install=False)
bld.SAMBA3_BINARY('vfstest',
source='''torture/cmd_vfs.c
torture/vfstest.c
torture/vfstest_chain.c''',
deps='''
vfs
popt_samba3
SMBREADLINE''',
install=False)
bld.SAMBA3_BINARY('log2pcap',
source='utils/log2pcaphex.c',
deps='''talloc popt''',
install=False)
bld.SAMBA3_BINARY('locktest2',
source='torture/locktest2.c',
deps='''
talloc
param
libsmb
LOCKING''',
install=False)
bld.SAMBA3_BINARY('debug2html',
source='''utils/debug2html.c utils/debugparse.c''',
deps='''talloc popt''',
install=False)
bld.SAMBA3_BINARY('smbfilter',
source='utils/smbfilter.c',
deps='''
talloc
param
LIBNMB''',
install=False)
bld.SAMBA3_BINARY('versiontest',
source='lib/version_test.c',
deps='''
SAMBA_VERSION
param''',
install=False)
bld.SAMBA3_BINARY('ntlm_auth',
source='''utils/ntlm_auth.c utils/ntlm_auth_diagnostics.c''',
deps='''
talloc
krb5samba
tiniparser
libsmb
popt_samba3
LIBNTLMSSP gse gensec''')
bld.SAMBA3_BINARY('timelimit',
source='script/tests/timelimit.c',
install=False)
bld.SAMBA3_BINARY('rpc_open_tcp',
source='torture/rpc_open_tcp.c',
deps='''
talloc
msrpc3''',
install=False)
bld.SAMBA3_BINARY('dbwrap_tool',
source='utils/dbwrap_tool.c',
deps='''
talloc
popt_samba3''')
bld.SAMBA3_BINARY('dbwrap_torture',
source='utils/dbwrap_torture.c',
deps='''
talloc
popt_samba3''',
install=False)
bld.SAMBA3_BINARY('split_tokens',
source='utils/split_tokens.c',
deps='''
talloc
popt_samba3''',
install=False)
bld.SAMBA3_BINARY('vlp',
source='printing/tests/vlp.c',
deps='''
talloc
param''',
install=False)
bld.SAMBA3_PYTHON('pysmbd',
source='smbd/pysmbd.c',
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'
)
bld.SAMBA3_BINARY('samba-regedit',
source="""utils/regedit.c utils/regedit_samba3.c
utils/regedit_wrap.c utils/regedit_treeview.c
utils/regedit_valuelist.c utils/regedit_dialog.c
utils/regedit_hexedit.c utils/regedit_list.c""",
deps='ncurses menu panel form registry param popt_samba3 smbregistry',
enabled=bld.env.build_regedit)
########################## INCLUDES #################################
bld.RECURSE('auth')
bld.RECURSE('libgpo/gpext')
bld.RECURSE('lib/pthreadpool')
bld.RECURSE('lib/asys')
bld.RECURSE('lib/poll_funcs')
bld.RECURSE('lib/unix_msg')
bld.RECURSE('librpc')
bld.RECURSE('librpc/idl')
bld.RECURSE('libsmb')
bld.RECURSE('modules')
bld.RECURSE('pam_smbpass')
bld.RECURSE('param')
bld.RECURSE('passdb')
bld.RECURSE('rpc_server')
bld.RECURSE('script')
bld.RECURSE('winbindd')
bld.RECURSE('../examples/auth')
bld.RECURSE('../examples/libsmbclient')
bld.RECURSE('../examples/pdb')
bld.RECURSE('../examples/VFS')
bld.RECURSE('lib/netapi/tests')
bld.RECURSE('lib/netapi/examples')
bld.ENFORCE_GROUP_ORDERING()
bld.CHECK_PROJECT_RULES()