From 8e32f81d4d5ceee14b00fac97d529d372de220de Mon Sep 17 00:00:00 2001 From: Kai Blin Date: Sun, 11 Apr 2010 22:05:10 +0200 Subject: [PATCH] s3-waf: Support smbd build without ldap and kerberos --- source3/wscript | 73 ++++++++++++++++++++++++++++----------------------- source3/wscript_build | 24 ++++++++++++----- 2 files changed, 57 insertions(+), 40 deletions(-) diff --git a/source3/wscript b/source3/wscript index 3991ffc3a04..369eb495e26 100644 --- a/source3/wscript +++ b/source3/wscript @@ -19,6 +19,7 @@ def set_options(opt): opt.RECURSE('../lib/nss_wrapper') opt.RECURSE('../lib/socket_wrapper') opt.RECURSE('../lib/tevent') + opt.RECURSE('../lib/tdb') opt.add_option('--with-static-modules', help=("Comma-separated list of names of modules to statically link in"), @@ -61,6 +62,7 @@ def configure(conf): conf.RECURSE('../lib/popt') conf.RECURSE('../lib/nss_wrapper') conf.RECURSE('../lib/socket_wrapper') + conf.RECURSE('../lib/zlib') conf.CHECK_HEADERS('execinfo.h libexc.h libunwind.h') @@ -84,7 +86,9 @@ def configure(conf): conf.CHECK_FUNCS('shmget') conf.CHECK_FUNCS_IN('shm_open', 'rt', checklibc=True) conf.CHECK_FUNCS('gettext dgettext bindtextdomain textdomain') + #FIXME: for some reason this one still fails conf.CHECK_FUNCS_IN('yp_get_default_domain', 'nsl') + conf.CHECK_FUNCS_IN('dn_expand _dn_expand __dn_expand', 'resolv') # Check for inotify support conf.CHECK_HEADERS('linux/inotify.h asm/unistd.h sys/inotify.h') @@ -218,7 +222,6 @@ sizeof_proplist_entry _stat __stat stat64 _stat64 __stat64 statvfs strcasecmp strchr strpbrk strsignal strtol strupr sysconf sysctlbyname __sys_llseek syslog _telldir __telldir telldir64 textdomain timegm updwtmp updwtmpx utimensat vsyslog _write __write __xstat -yp_get_default_domain ''') conf.CHECK_TYPE('struct timespec', headers='sys/time.h time.h') @@ -296,39 +299,43 @@ yp_get_default_domain conf.SET_TARGET_TYPE('cups', 'EMPTY') # Check for LDAP - conf.CHECK_HEADERS('ldap.h lber.h') - conf.CHECK_TYPE('ber_tag_t', 'unsigned int', headers='ldap.h lber.h') - conf.CHECK_FUNCS_IN('ber_scanf ber_sockbuf_add_io', 'lber') - conf.CHECK_VARIABLE('LDAP_OPT_SOCKBUF', headers='ldap.h') - # if ber_sockbuf_add_io() and LDAP_OPT_SOCKBUF are available, we can add - # SASL wrapping hooks - if conf.CONFIG_SET('HAVE_BER_SOCKBUF_ADD_IO') and \ - conf.CONFIG_SET('HAVE_LDAP_OPT_SOCKBUF'): - conf.DEFINE('HAVE_LDAP_SASL_WRAPPING', '1') - - # if we LBER_OPT_LOG_PRINT_FN we can intercept ldap logging and print it out - # for the samba logs - conf.CHECK_VARIABLE('LBER_OPT_LOG_PRINT_FN', - define='HAVE_LBER_LOG_PRINT_FN', headers='lber.h') - - conf.CHECK_FUNCS_IN('ldap_init ldap_initialize ldap_set_rebind_proc', 'ldap') - conf.CHECK_FUNCS_IN('ldap_add_result_entry', 'ldap') - - # Check if ldap_set_rebind_proc() takes three arguments - if conf.CHECK_CODE('ldap_set_rebind_proc(0, 0, 0)', - 'LDAP_SET_REBIND_PROC_ARGS', - msg="Checking whether ldap_set_rebind_proc takes 3 arguments", - headers='ldap.h lber.h', link=False): - conf.DEFINE('LDAP_SET_REBIND_PROC_ARGS', '3') + if Options.options.with_ldap: + conf.CHECK_HEADERS('ldap.h lber.h') + conf.CHECK_TYPE('ber_tag_t', 'unsigned int', headers='ldap.h lber.h') + conf.CHECK_FUNCS_IN('ber_scanf ber_sockbuf_add_io', 'lber') + conf.CHECK_VARIABLE('LDAP_OPT_SOCKBUF', headers='ldap.h') + # if ber_sockbuf_add_io() and LDAP_OPT_SOCKBUF are available, we can add + # SASL wrapping hooks + if conf.CONFIG_SET('HAVE_BER_SOCKBUF_ADD_IO') and \ + conf.CONFIG_SET('HAVE_LDAP_OPT_SOCKBUF'): + conf.DEFINE('HAVE_LDAP_SASL_WRAPPING', '1') + + # if we LBER_OPT_LOG_PRINT_FN we can intercept ldap logging and print it out + # for the samba logs + conf.CHECK_VARIABLE('LBER_OPT_LOG_PRINT_FN', + define='HAVE_LBER_LOG_PRINT_FN', headers='lber.h') + + conf.CHECK_FUNCS_IN('ldap_init ldap_initialize ldap_set_rebind_proc', 'ldap') + conf.CHECK_FUNCS_IN('ldap_add_result_entry', 'ldap') + + # Check if ldap_set_rebind_proc() takes three arguments + if conf.CHECK_CODE('ldap_set_rebind_proc(0, 0, 0)', + 'LDAP_SET_REBIND_PROC_ARGS', + msg="Checking whether ldap_set_rebind_proc takes 3 arguments", + headers='ldap.h lber.h', link=False): + conf.DEFINE('LDAP_SET_REBIND_PROC_ARGS', '3') + else: + conf.DEFINE('LDAP_SET_REBIND_PROC_ARGS', '2') + + # last but not least, if ldap_init() exists, we want to use ldap + if conf.CONFIG_SET('HAVE_LDAP_INIT'): + conf.DEFINE('HAVE_LDAP', '1') + conf.DEFINE('LDAP_DEPRECATED', '1') + conf.env['SMBLDAP'] = 'lib/smbldap.c' + conf.env['SMBLDAPUTIL'] = 'lib/smbldap_util.c' else: - conf.DEFINE('LDAP_SET_REBIND_PROC_ARGS', '2') - - # last but not least, if ldap_init() exists, we want to use ldap - if conf.CONFIG_SET('HAVE_LDAP_INIT') and Options.options.with_ldap: - conf.DEFINE('HAVE_LDAP', '1') - conf.DEFINE('LDAP_DEPRECATED', '1') - conf.env['SMBLDAP'] = 'lib/smbldap.c' - conf.env['SMBLDAPUTIL'] = 'lib/smbldap_util.c' + conf.SET_TARGET_TYPE('ldap', 'EMPTY') + conf.SET_TARGET_TYPE('lber', 'EMPTY') # Check for kerberos conf.find_program('krb5-config', var='KRB5_CONFIG') diff --git a/source3/wscript_build b/source3/wscript_build index 2611b630b82..8f63f3a9ac1 100644 --- a/source3/wscript_build +++ b/source3/wscript_build @@ -431,9 +431,9 @@ PASSDB_GET_SET_SRC = '''passdb/pdb_get_set.c''' #FIXME: Hack around the missing AC_MODULE PDB_STATIC = 'passdb/pdb_tdb.c' -PASSDB_MODULES_SRC = '''passdb/pdb_nds.c passdb/pdb_wbc_sam.c passdb/pdb_ads.c -passdb/pdb_smbpasswd.c passdb/secrets.c passdb/machine_sid.c -passdb/pdb_ldap.c''' +PASSDB_MODULES_SRC = '''passdb/pdb_wbc_sam.c passdb/pdb_ads.c +passdb/pdb_smbpasswd.c passdb/secrets.c passdb/machine_sid.c''' +#passdb/pdb_ldap.c passdb/pdb_nds.c''' PASSDB_SRC = '''${PASSDB_GET_SET_SRC} passdb/passdb.c passdb/pdb_interface.c passdb/util_wellknown.c passdb/util_builtin.c passdb/pdb_compat.c @@ -444,8 +444,8 @@ PASSDB_SRC = '''${PASSDB_GET_SET_SRC} passdb/passdb.c passdb/pdb_interface.c -EXTRA_SRC = '''lib/smbldap.c lib/tldap.c lib/tldap_util.c -lib/util_tsock.c lib/smbldap_util.c''' +EXTRA_SRC = '''lib/tldap.c lib/tldap_util.c +lib/util_tsock.c''' #lib/smbdlap.c lib/smbldap_util.c''' AUTH_SRC1 = '''${AUTH_BUILTIN_SRC} ${AUTH_DOMAIN_SRC} ${AUTH_SAM_SRC} ${AUTH_SERVER_SRC} ${AUTH_UNIX_SRC} ${AUTH_WINBIND_SRC} @@ -681,10 +681,20 @@ bld.RECURSE('build') bld.SAMBA_MKVERSION('include/version.h') +bld.SAMBA_SUBSYSTEM('LIBWBCLIENT', + source='''../nsswitch/libwbclient/wbc_guid.c + ../nsswitch/libwbclient/wbc_idmap.c + ../nsswitch/libwbclient/wbclient.c + ../nsswitch/libwbclient/wbc_pam.c + ../nsswitch/libwbclient/wbc_pwd.c + ../nsswitch/libwbclient/wbc_sid.c + ../nsswitch/libwbclient/wbc_util.c''', + public_deps='talloc') + bld.SAMBA_BINARY('smbd/smbd', source=SMBD_SRC, deps='''tdb DYNCONFIG tevent popt dl krb5 ldap gssapi gssapi_krb5 - NSS_WRAPPER LIBWBCLIENT crypt nsl cups cap''', + NSS_WRAPPER LIBWBCLIENT crypt nsl cups cap resolv z''', includes='lib', vars=locals()) @@ -694,7 +704,7 @@ bld.RECURSE('../lib/tdb') bld.RECURSE('../lib/nss_wrapper') bld.RECURSE('../lib/tevent') bld.RECURSE('../lib/popt') -bld.RECURSE('../nsswitch/libwbclient') +bld.RECURSE('../lib/zlib') bld.ENFORCE_GROUP_ORDERING() bld.CHECK_PROJECT_RULES() -- 2.11.4.GIT