From: David Mulder Date: Wed, 28 Aug 2024 20:32:30 +0000 (-0600) Subject: Add configure checks for glibc and openssl versions X-Git-Tag: tdb-1.4.13~870 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=549f67a9e655149b1ede7e2858836cb7811cc78c;p=thirdparty%2Fsamba.git Add configure checks for glibc and openssl versions Add configure checks to determine if rust or specifically himmelblau sources can be compiled. Signed-off-by: David Mulder Reviewed-by: Alexander Bokovoy --- diff --git a/buildtools/wafsamba/wscript b/buildtools/wafsamba/wscript index ef9d5be62af..95a4f3f3525 100644 --- a/buildtools/wafsamba/wscript +++ b/buildtools/wafsamba/wscript @@ -8,6 +8,13 @@ import wafsamba from samba_utils import symlink from optparse import SUPPRESS_HELP +def get_libc_version(): + import ctypes + libc = ctypes.CDLL("libc.so.6") + gnu_get_libc_version = libc.gnu_get_libc_version + gnu_get_libc_version.restype = ctypes.c_char_p + return gnu_get_libc_version().decode() + phs = os.environ.get("PYTHONHASHSEED", None) if phs != "1": raise Errors.WafError('''PYTHONHASHSEED=1 missing! Don't use waf directly, use ./configure and make!''') @@ -356,6 +363,10 @@ def configure(conf): conf.env.disable_python = Options.options.disable_python conf.env.enable_rust = Options.options.enable_rust if Options.options.enable_rust: + glibc_vers = float('.'.join(get_libc_version().split('.')[:2])) + if glibc_vers < 2.32: + conf.fatal('--enable-rust cannot be specified with ' + 'glibc version %s' % glibc_vers) conf.DEFINE('HAVE_RUST', '1') if (conf.env.AUTOCONF_HOST and diff --git a/wscript b/wscript index c4387fe737f..c454a718b73 100644 --- a/wscript +++ b/wscript @@ -12,6 +12,7 @@ import shutil import wafsamba, samba_dist, samba_git, samba_version, samba_utils from waflib import Options, Scripting, Logs, Context, Errors from waflib.Tools import bison +import ssl samba_dist.DIST_DIRS('.') samba_dist.DIST_BLACKLIST('.gitignore .bzrignore source4/selftest/provisions') @@ -511,6 +512,13 @@ def configure(conf): conf.env.debug = Options.options.debug conf.env.developer = Options.options.developer conf.env.enable_himmelblau = Options.options.enable_himmelblau + if Options.options.enable_himmelblau: + if not conf.env.enable_rust: + conf.fatal('--with-himmelblau cannot be specified without ' + '--enable-rust') + if ssl.OPENSSL_VERSION_INFO[0] < 3: + conf.fatal('--with-himmelblau cannot be specified with ' + '%s' % ssl.OPENSSL_VERSION) # # FreeBSD is broken. It doesn't include 'extern char **environ'