diff options
author | Andreas Schneider <asn@samba.org> | 2021-12-03 08:49:24 +0100 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2021-12-06 22:08:32 +0000 |
commit | 238e4c86ca70174e88f11ab876965f9aba866e0d (patch) | |
tree | 659ebb4f02b9ccc7f0fd4ca47960d8e2be0a8c5f | |
parent | 61404faf7671f87359cf7c701ac6e159e7f2c7f9 (diff) | |
download | samba-238e4c86ca70174e88f11ab876965f9aba866e0d.tar.gz |
waf:mitkrb5: Fix MIT KRB5 detection if not in default system location
Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
-rw-r--r-- | wscript_configure_system_mitkrb5 | 61 |
1 files changed, 39 insertions, 22 deletions
diff --git a/wscript_configure_system_mitkrb5 b/wscript_configure_system_mitkrb5 index b095f49f635..1e5d65f7214 100644 --- a/wscript_configure_system_mitkrb5 +++ b/wscript_configure_system_mitkrb5 @@ -36,31 +36,50 @@ conf.CHECK_HEADERS('com_err.h', lib='com_err') conf.find_program('krb5-config', path_list=path_krb5_config, var='KRB5_CONFIG') if conf.env.KRB5_CONFIG: - conf.CHECK_CFG(path=conf.env.KRB5_CONFIG, args="--cflags --libs", - 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']) - - conf.CHECK_CFG(path=conf.env.KRB5_CONFIG, args="--cflags --libs", - package="gssapi", uselib_store="GSSAPI") - krb5_define_syslib(conf, "gssapi", conf.env['LIB_GSSAPI']) - if 'k5crypto' in conf.env['LIB_GSSAPI']: - krb5_define_syslib(conf, "k5crypto", conf.env['LIB_GSSAPI']) - if 'gssapi_krb5' in conf.env['LIB_GSSAPI']: - krb5_define_syslib(conf, "gssapi_krb5", conf.env['LIB_GSSAPI']) - vendor = conf.cmd_and_log(conf.env.KRB5_CONFIG+['--vendor']) conf.env.KRB5_VENDOR = vendor.strip().lower() if conf.env.KRB5_VENDOR == 'heimdal': raise Errors.WafError('--with-system-mitkrb5 cannot be used with system heimdal') + if conf.CHECK_CFG(path=conf.env.KRB5_CONFIG, args="--cflags --libs", + package="", uselib_store="KRB5"): + if 'krb5' in conf.env['LIB_KRB5']: + krb5_define_syslib(conf, "krb5", conf.env['LIB_KRB5']) + if 'k5crypto' in conf.env['LIB_KRB5']: + krb5_define_syslib(conf, "k5crypto", conf.env['LIB_GSSAPI']) + else: + raise Errors.WafError('Unable to find required krb5 library!') + + if conf.CHECK_CFG(path=conf.env.KRB5_CONFIG, args="--cflags --libs", + package="gssapi", uselib_store="GSSAPI"): + krb5_define_syslib(conf, "gssapi", conf.env['LIB_GSSAPI']) + if 'gssapi_krb5' in conf.env['LIB_GSSAPI']: + krb5_define_syslib(conf, "gssapi_krb5", conf.env['LIB_GSSAPI']) + else: + raise Errors.WafError('Unable to find required gssapi library!') + + if conf.CONFIG_SET('AD_DC_BUILD_IS_ENABLED'): + if conf.CHECK_CFG(path=conf.env.KRB5_CONFIG, args="--cflags --libs", + package="gssrpc", uselib_store="GSSRPC"): + krb5_define_syslib(conf, "gssrpc", conf.env['LIB_GSSRPC']) + + if 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']) + conf.CHECK_HEADERS('kdb.h', lib='kdb5') + else: + raise Errors.WafError('Unable to find required kdb5 library!') + + if conf.CHECK_CFG(path=conf.env.KRB5_CONFIG, args="--cflags --libs", + package="kadm-server", uselib_store="KADM5SRV_MIT"): + krb5_define_syslib(conf, + "kadm5srv_mit", + conf.env['LIB_KADM5SRV_MIT']) + conf.CHECK_FUNCS_IN('kadm5_init', 'kadm5srv_mit') + else: + raise Errors.WafError('Unable to find required kadm5srv_mit ' + 'library!') + 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() @@ -81,8 +100,6 @@ if conf.env.KRB5_CONFIG: conf.define('USING_SYSTEM_MITKRB5', '"%s"' % krb5_version) -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" |