1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-25 23:21:54 +03:00
samba-mirror/source3/wscript_build
Uri Simchoni 0a9acd445d build: fix disk-free quota support on Solaris 10
Samba has no code to support quota on Solaris 10 (and possibly other
os's such as AIX) using the new quota interface. The new interface
serves both disk size/free space reporting (clamping the underlying
file system numbers with quota), and direct manipulation of the user's
quota.

However, there's legacy code that supports only disk size/free space on
Solaris 10. In the waf build, this code is not compiled because there is
no test for it.

This patch adds a test to see whether the legacy code can be used.

Issue reported and fix tested by Andrew Morgan <morgan@orst.edu>.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=11788

Signed-off-by: Uri Simchoni <uri@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>

Autobuild-User(master): Jeremy Allison <jra@samba.org>
Autobuild-Date(master): Sun Mar 13 01:37:58 CET 2016 on sn-devel-144
2016-03-13 01:37:58 +01:00

1540 lines
53 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')
bld.SAMBA3_SUBSYSTEM('TLDAP',
source='''lib/tldap.c
lib/tldap_util.c
''',
deps='asn1util LIBTSOCKET samba3util')
# 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.
private_pdb_match = []
private_pdb_match.append('!idmap_init')
private_pdb_match.append('!idmap_sids_to_xids')
private_pdb_match.append('!idmap_xids_to_sids')
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_ldapsam_init*')
private_pdb_match.append('!pdb_*_init')
private_pdb_match = private_pdb_match + ldapsam_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.25.0')
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_SUBSYSTEM('samba3util',
source='''lib/system.c
lib/sendfile.c
lib/recvfile.c
lib/time.c
lib/util_sid.c
lib/util_specialsids.c
lib/util_file.c
lib/util.c
lib/util_path.c
lib/util_procid.c
lib/util_sock.c
lib/util_tsock.c
lib/util_transfer_file.c
lib/sys_popen.c
lib/sock_exec.c''',
deps='ndr LIBTSOCKET samba-security NDR_SECURITY samba-util util_tdb sys_rw iov_buf')
if bld.env.with_ctdb:
SAMBA_CLUSTER_SUPPORT_SOURCES='''
lib/cluster_support.c
lib/dbwrap/dbwrap_ctdb.c
lib/messages_ctdbd.c
lib/ctdbd_conn.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,
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_LIBRARY('messages_dgm',
source='''lib/messages_dgm.c lib/messages_dgm_ref.c''',
deps='''talloc UNIX_MSG POLL_FUNCS_TEVENT samba-debug
genrand''',
private_library=True)
bld.SAMBA3_LIBRARY('messages_util',
source='''lib/messages_util.c''',
deps='samba-util',
private_library=True)
bld.SAMBA3_SUBSYSTEM('samba3core',
source='''lib/messages.c
lib/util_cluster.c
lib/id_cache.c
lib/talloc_dict.c
lib/serverid.c
lib/server_id_db_util.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
messages_util
messages_dgm
talloc_report
TDB_LIB''')
bld.SAMBA3_LIBRARY('smbd_shim',
source='''lib/smbd_shim.c''',
deps='talloc',
private_library=True)
bld.SAMBA3_SUBSYSTEM('auth_generic',
source='libsmb/auth_generic.c',
deps='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='''
auth_generic
CLDAP
LIBNMB
SPNEGO_PARSE
LIBTSOCKET
KRBCLIENT
NDR_IOCTL
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=''
NOTIFY_DEPS=''
if bld.CONFIG_SET("HAVE_INOTIFY"):
NOTIFY_SOURCES += ' smbd/notify_inotify.c'
if bld.CONFIG_SET('SAMBA_FAM_LIBS'):
NOTIFY_SOURCES += ' smbd/notify_fam.c'
NOTIFY_DEPS += ' ' + bld.CONFIG_GET('SAMBA_FAM_LIBS')
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_query_directory.c
smbd/smb2_notify.c
smbd/smb2_getinfo.c
smbd/smb2_setinfo.c
smbd/smb2_break.c
smbd/smbXsrv_version.c
smbd/smbXsrv_client.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_msg.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
NDR_SMB_ACL
netapi
NDR_IOCTL
notifyd
''' +
bld.env['dmapi_lib'] +
bld.env['legacy_quota_libs'] +
NOTIFY_DEPS,
private_library=True)
bld.SAMBA3_SUBSYSTEM('LOCKING',
source='''locking/locking.c
locking/brlock.c
locking/posix.c
locking/share_mode_lock.c''',
deps='''
tdb
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')
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 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 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''',
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')
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='LIBTSOCKET samba3util 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')
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='samba-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 smbd/smbd_cleanupd.c',
deps='smbd_base EPMD LSASD FSSD MDSSD',
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_reconnect_ads.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_sids2xids.c
winbindd/wb_xids2sids.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_query_group_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_sids_to_xids.c
winbindd/winbindd_xids_to_sids.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
rpcclient/cmd_clusapi.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
RPC_NDR_CLUSAPI
''')
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
archive
''')
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
utils/net_notify.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('smbspool_krb5_wrapper',
source='client/smbspool_krb5_wrapper.c',
deps='''
DYNCONFIG
cups
''',
install_path='${LIBEXECDIR}/samba',
enabled=bld.CONFIG_SET('HAVE_CUPS'))
bld.SAMBA3_BINARY('testparm',
source='utils/testparm.c',
deps='''
talloc
param
popt_samba3''')
smbstatus_source = 'utils/status.c smbd/notify_msg.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
IDMAP_TDB_COMMON
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 lib/util_sd.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 lib/util_sd.c',
deps='''
talloc
msrpc3
libcli_lsa3
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
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 pytalloc-util',
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)
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_mapping.c''',
deps='samba3-util talloc ' + bld.env['libtracker'],
enabled=bld.env.with_spotlight,
install=False)
########################## 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('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.RECURSE('smbd/notifyd')
bld.ENFORCE_GROUP_ORDERING()
bld.CHECK_PROJECT_RULES()