X-Git-Url: http://git.samba.org/samba.git/?p=garming%2Fsamba-autobuild%2F.git;a=blobdiff_plain;f=wscript_configure_system_mitkrb5;h=b05ac3f3e50caadc16e74e86a660db1f3ec4da76;hp=9338833d2426087cbdbb1f8ed6091068141ed324;hb=1bc2456b87c4ddc603170d30e25cd615349a48e3;hpb=b5a67b9d24ceb84cf00721770d31c82196dafa56 diff --git a/wscript_configure_system_mitkrb5 b/wscript_configure_system_mitkrb5 index 9338833d242..b05ac3f3e50 100644 --- a/wscript_configure_system_mitkrb5 +++ b/wscript_configure_system_mitkrb5 @@ -1,4 +1,5 @@ -import Logs, Options, sys +import sys +from waflib import Logs, Options, Errors # Check for kerberos have_gssapi=False @@ -35,6 +36,10 @@ if conf.env.KRB5_CONFIG: package="", uselib_store="KRB5") krb5_define_syslib(conf, "krb5", conf.env['LIB_KRB5']) + conf.CHECK_CFG(path=conf.env.KRB5_CONFIG, args="--cflags --libs", + package="kadm-server", uselib_store="KADM-SERVER") + conf.CHECK_FUNCS_IN('kadm5_init', 'kadm5srv_mit') + conf.CHECK_CFG(path=conf.env.KRB5_CONFIG, args="--cflags --libs", package="kdb", uselib_store="KDB5") krb5_define_syslib(conf, "kdb5", conf.env['LIB_KDB5']) @@ -49,26 +54,28 @@ if conf.env.KRB5_CONFIG: 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), dict()) + 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), dict()).strip() + if conf.env.KRB5_VENDOR == 'heimdal': + raise Errors.WafError('--with-system-mitkrb5 cannot be used with system heimdal') + + 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() - krb5_version = krb5_conf_version.split()[-1] + krb5_version = krb5_conf_version.split()[-1] - # drop '-prerelease' suffix - if krb5_version.find('-') > 0: - krb5_version = krb5_version.split("-")[0] + # 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: 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 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 Kerebros 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(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)) conf.CHECK_CFG(args="--cflags --libs", package="com_err", uselib_store="com_err") conf.CHECK_FUNCS_IN('_et_list', 'com_err') @@ -76,6 +83,7 @@ conf.CHECK_HEADERS('com_err.h', lib='com_err') conf.CHECK_HEADERS('kdb.h', lib='kdb5') conf.CHECK_HEADERS('krb5.h krb5/locate_plugin.h', lib='krb5') +conf.CHECK_HEADERS('krb5.h krb5/localauth_plugin.h', lib='krb5') possible_gssapi_headers="gssapi.h gssapi/gssapi_generic.h gssapi/gssapi.h gssapi/gssapi_ext.h gssapi/gssapi_krb5.h gssapi/gssapi_oid.h" conf.CHECK_HEADERS(possible_gssapi_headers, lib='gssapi') @@ -278,7 +286,7 @@ conf.CHECK_CODE(''' ''', 'HAVE_WRFILE_KEYTAB', headers='krb5.h', lib='krb5', execute=True, - msg="Checking whether the WRFILE:-keytab is supported"); + msg="Checking whether the WRFILE -keytab is supported"); # Check for KRB5_DEPRECATED handling conf.CHECK_CODE('''#define KRB5_DEPRECATED 1 #include ''', @@ -305,4 +313,4 @@ if conf.CONFIG_SET('AD_DC_BUILD_IS_ENABLED'): 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) + '"')