mirror of
https://github.com/samba-team/samba.git
synced 2024-12-24 21:34:56 +03:00
e36e1f7b12
Configuration values such as HAVE_STDDEF_H can be set to 0 to indicate a test failure. Waf 1.5 has a few bugs that prevent configuration tests from setting such values consistently on failures. Consequently, conditions such as 'if conf.env.VARNAME' must be used to indicate that config test successes are expected. Note that conf.env.VARNAME always returns an empty list (False value) when no variable is defined so there are no risk of raising AttributeError/KeyError exceptions. Reviewed-by: Andrew Bartlett <abartlet@samba.org> Reviewed-by: Uri Simchoni <uri@samba.org> Autobuild-User(master): Uri Simchoni <uri@samba.org> Autobuild-Date(master): Tue Feb 21 13:47:07 CET 2017 on sn-devel-144
88 lines
3.9 KiB
Python
88 lines
3.9 KiB
Python
#!/usr/bin/env python
|
|
|
|
import Options
|
|
from optparse import SUPPRESS_HELP
|
|
|
|
def set_options(opt):
|
|
# allow users to disable gnutls
|
|
opt.add_option('--enable-gnutls',
|
|
help=("Enable use of gnutls"),
|
|
action="store_true", dest='enable_gnutls', default=True)
|
|
opt.add_option('--disable-gnutls', help=SUPPRESS_HELP, action="store_false", dest='enable_gnutls')
|
|
|
|
|
|
def configure(conf):
|
|
conf.env.enable_gnutls = Options.options.enable_gnutls
|
|
if not conf.env.enable_gnutls:
|
|
conf.SET_TARGET_TYPE('gnutls', 'DISABLED')
|
|
conf.SET_TARGET_TYPE('gcrypt', 'DISABLED')
|
|
conf.SET_TARGET_TYPE('gpg-error', 'DISABLED')
|
|
if 'AD_DC_BUILD_IS_ENABLED' in conf.env:
|
|
conf.fatal("--disable-gnutls given: Building the AD DC requires GnuTLS (eg libgnutls-dev, gnutls-devel) for ldaps:// support and for the BackupKey protocol")
|
|
return
|
|
|
|
if Options.options.with_system_mitkrb5 and conf.env.AD_DC_BUILD_IS_ENABLED:
|
|
conf.CHECK_CFG(package='gnutls',
|
|
args='"gnutls >= 3.4.7" --cflags --libs',
|
|
msg='Checking for gnutls >= 3.4.7',
|
|
mandatory=True)
|
|
conf.DEFINE('HAVE_GNUTLS_3_4_7', 1)
|
|
conf.DEFINE('HAVE_GNUTLS3', 1)
|
|
else:
|
|
if conf.CHECK_CFG(package='gnutls',
|
|
args='"gnutls >= 3.4.7" --cflags --libs',
|
|
msg='Checking for gnutls >= 3.4.7',
|
|
mandatory=False):
|
|
conf.DEFINE('HAVE_GNUTLS_3_4_7', 1)
|
|
conf.DEFINE('HAVE_GNUTLS3', 1)
|
|
elif conf.CHECK_CFG(package='gnutls',
|
|
args='"gnutls >= 3.0.0" --cflags --libs',
|
|
msg='Checking for gnutls >= 3.0.0s', mandatory=False):
|
|
conf.DEFINE('HAVE_GNUTLS3', 1)
|
|
else:
|
|
conf.CHECK_CFG(package='gnutls',
|
|
args='"gnutls >= 1.4.0 gnutls != 2.2.4 gnutls != 2.8.0 gnutls != 2.8.1" --cflags --libs',
|
|
msg='Checking for gnutls >= 1.4.0 and broken versions', mandatory=False)
|
|
|
|
if conf.env.HAVE_GNUTLS:
|
|
conf.DEFINE('ENABLE_GNUTLS', 1)
|
|
else:
|
|
if 'AD_DC_BUILD_IS_ENABLED' in conf.env:
|
|
conf.fatal("Building the AD DC requires GnuTLS (eg libgnutls-dev, gnutls-devel) for ldaps:// support and for the BackupKey protocol")
|
|
|
|
conf.CHECK_FUNCS_IN('gnutls_global_init', 'gnutls',
|
|
headers='gnutls/gnutls.h')
|
|
|
|
conf.CHECK_FUNCS_IN('gnutls_certificate_verify_peers3', 'gnutls',
|
|
headers='gnutls/gnutls.h')
|
|
conf.CHECK_DECLS('GNUTLS_CERT_EXPIRED GNUTLS_CERT_NOT_ACTIVATED GNUTLS_CERT_UNEXPECTED_OWNER',
|
|
headers='gnutls/gnutls.h gnutls/x509.h')
|
|
|
|
conf.CHECK_VARIABLE('gnutls_x509_crt_set_version',
|
|
headers='gnutls/gnutls.h gnutls/x509.h',
|
|
define='HAVE_GNUTLS_X509_CRT_SET_VERSION',
|
|
lib='gnutls')
|
|
conf.CHECK_VARIABLE('gnutls_x509_crt_set_subject_key_id',
|
|
headers='gnutls/gnutls.h gnutls/x509.h',
|
|
define='HAVE_GNUTLS_X509_CRT_SET_SUBJECT_KEY_ID',
|
|
lib='gnutls')
|
|
|
|
# check for gnutls_datum types
|
|
conf.CHECK_TYPES('gnutls_datum gnutls_datum_t',
|
|
headers='gnutls/gnutls.h', lib='gnutls')
|
|
|
|
# GnuTLS3 moved to libnettle, so only do this in the < 3.0 case
|
|
if conf.env.HAVE_GNUTLS3:
|
|
conf.CHECK_FUNCS_IN('gcry_control', 'gcrypt', headers='gcrypt.h')
|
|
conf.CHECK_FUNCS_IN('gpg_err_code_from_errno', 'gpg-error')
|
|
else:
|
|
conf.SET_TARGET_TYPE('gcrypt', 'DISABLED')
|
|
conf.SET_TARGET_TYPE('gpg-error', 'DISABLED')
|
|
|
|
|
|
def build(bld):
|
|
bld.SAMBA_SUBSYSTEM('LIBTLS',
|
|
source='tls.c tlscert.c tls_tstream.c',
|
|
public_deps='talloc gnutls gcrypt samba-hostconfig samba_socket LIBTSOCKET tevent tevent-util'
|
|
)
|