]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
glibc needs to be at least vers 2.32 for rust
authorDavid Mulder <dmulder@samba.org>
Wed, 28 Aug 2024 19:34:09 +0000 (13:34 -0600)
committerDavid Mulder <dmulder@samba.org>
Wed, 23 Oct 2024 14:21:34 +0000 (14:21 +0000)
The libc crate won't build on versions older than
2.32.

Signed-off-by: David Mulder <dmulder@samba.org>
Reviewed-by: Alexander Bokovoy <ab@samba.org>
script/autobuild.py

index 700e1148bc87dffe056c9bb4b67af3fbc4ea0e38..972bf127a6edfb155e409e18f1dd38db4f9512bc 100755 (executable)
@@ -20,6 +20,13 @@ from sysconfig import get_path
 import platform
 import ssl
 
+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()
+
 import logging
 
 try:
@@ -170,10 +177,14 @@ builddirs = {
 ctdb_configure_params = " --enable-developer ${PREFIX}"
 samba_configure_params = " ${ENABLE_COVERAGE} ${PREFIX} --with-profiling-data"
 
-# We cannot configure himmelblau on old systems missing openssl 3
+# We cannot configure himmelblau on old systems missing openssl 3 or with glibc
+# older than version 2.32.
 himmelblau_configure_params = ''
-rust_configure_param = ' --enable-rust'
-if ssl.OPENSSL_VERSION_INFO[0] >= 3:
+rust_configure_param = ''
+glibc_vers = float('.'.join(get_libc_version().split('.')[:2]))
+if glibc_vers >= 2.32:
+    rust_configure_param = ' --enable-rust'
+if ssl.OPENSSL_VERSION_INFO[0] >= 3 and rust_configure_param:
     himmelblau_configure_params = rust_configure_param + ' --with-himmelblau'
 
 samba_libs_envvars = "PYTHONPATH=${PYTHON_PREFIX}:$PYTHONPATH"