-import Logs, Options, sys
+import sys
+from waflib import Logs, Options, Errors
# Check for kerberos
have_gssapi=False
if 'gssapi_krb5' in conf.env['LIB_GSSAPI']:
krb5_define_syslib(conf, "gssapi_krb5", conf.env['LIB_GSSAPI'])
- vendor = conf.cmd_and_log("%(path)s --vendor" % dict(path=conf.env.KRB5_CONFIG)
+ vendor = conf.cmd_and_log(conf.env.KRB5_CONFIG+['--vendor'])
conf.env.KRB5_VENDOR = vendor.strip().lower()
- if conf.env.KRB5_VENDOR != 'heimdal':
- conf.define('USING_SYSTEM_KRB5', 1)
- del conf.env.HEIMDAL_KRB5_CONFIG
- krb5_conf_version = conf.cmd_and_log("%(path)s --version" % dict(path=conf.env.KRB5_CONFIG)).strip()
+ if conf.env.KRB5_VENDOR == 'heimdal':
+ raise Errors.WafError('--with-system-mitkrb5 cannot be used with system heimdal')
- krb5_version = krb5_conf_version.split()[-1]
+ conf.define('USING_SYSTEM_KRB5', 1)
+ del conf.env.HEIMDAL_KRB5_CONFIG
+ krb5_conf_version = conf.cmd_and_log(conf.env.KRB5_CONFIG+['--version']).strip()
- # drop '-prerelease' suffix
- if krb5_version.find('-') > 0:
- krb5_version = krb5_version.split("-")[0]
+ krb5_version = krb5_conf_version.split()[-1]
- if parse_version(krb5_version) < parse_version(krb5_required_version):
- Logs.error('ERROR: The MIT KRB5 build with Samba AD requires at least %s. %s has been found and cannot be used' % (krb5_required_version, krb5_version))
- Logs.error('ERROR: If you want to just build Samba FS (File Server) use the option --without-ad-dc which requires version %s' % (krb5_min_required_version))
- Logs.error('ERROR: You may try to build with embedded Heimdal Kerberos by not specifying --with-system-mitkrb5')
- sys.exit(1)
- else:
- Logs.info('MIT Kerberos %s detected, MIT krb5 build can proceed' % (krb5_version))
+ # drop '-prerelease' suffix
+ if krb5_version.find('-') > 0:
+ krb5_version = krb5_version.split("-")[0]
+
+ if parse_version(krb5_version) < parse_version(krb5_required_version):
+ Logs.error('ERROR: The MIT KRB5 build with Samba AD requires at least %s. %s has been found and cannot be used' % (krb5_required_version, krb5_version))
+ Logs.error('ERROR: If you want to just build Samba FS (File Server) use the option --without-ad-dc which requires version %s' % (krb5_min_required_version))
+ Logs.error('ERROR: You may try to build with embedded Heimdal Kerberos by not specifying --with-system-mitkrb5')
+ sys.exit(1)
+ else:
+ Logs.info('MIT Kerberos %s detected, MIT krb5 build can proceed' % (krb5_version))
+
+ if parse_version(krb5_version) < parse_version('1.18'):
+ conf.DEFINE('HAVE_MIT_KRB5_PRE_1_18', 1)
conf.CHECK_CFG(args="--cflags --libs", package="com_err", uselib_store="com_err")
conf.CHECK_FUNCS_IN('_et_list', 'com_err')
define='HAVE_TICKET_POINTER_IN_KRB5_AP_REQ')
conf.CHECK_STRUCTURE_MEMBER('krb5_prompt', 'type', headers='krb5.h',
define='HAVE_KRB5_PROMPT_TYPE')
-
+conf.CHECK_CODE('krb5_trace_info', 'HAVE_KRB5_TRACE_INFO', headers='krb5.h')
+conf.CHECK_CODE('struct krb5_trace_info', 'HAVE_KRB5_TRACE_INFO_STRUCT', headers='krb5.h')
conf.CHECK_TYPE('krb5_encrypt_block', headers='krb5.h')
conf.CHECK_CODE('''
conf.DEFINE('MIT_KDC_PATH', '"' + Options.options.with_system_mitkdc + '"')
else:
conf.find_program('krb5kdc', path_list=kdc_path_list, var='MIT_KDC_BINARY', mandatory=True)
- conf.DEFINE('MIT_KDC_PATH', '"' + conf.env.MIT_KDC_BINARY + '"')
+ conf.DEFINE('MIT_KDC_PATH', '"' + " ".join(conf.env.MIT_KDC_BINARY) + '"')