From 7fad1ca89c16d848d0447850b2e99feecceed1a9 Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Thu, 12 Jul 2018 12:34:56 +1200 Subject: [PATCH] ldb: Refuse to build Samba against a newer minor version of ldb Samba is not compatible with new versions of ldb (except release versions) Other users would not notice the breakages, but Samba makes many more assuptions about the LDB internals than any other package. (Specifically, LDB 1.2 and 1.4 broke builds against released Samba versions) BUG: https://bugzilla.samba.org/show_bug.cgi?id=13519 Signed-off-by: Andrew Bartlett Reviewed-by: Gary Lockyer (cherry picked from commit 52efa796538ae004ca62ea32fc8c833472991be6) --- lib/ldb/wscript | 32 ++++++++++++++++++++++---------- 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/lib/ldb/wscript b/lib/ldb/wscript index 2477885cd32..15a7caebbf6 100644 --- a/lib/ldb/wscript +++ b/lib/ldb/wscript @@ -63,23 +63,33 @@ def configure(conf): conf.env.standalone_ldb = conf.IN_LAUNCH_DIR() if not conf.env.standalone_ldb: + max_ldb_version = [int(x) for x in VERSION.split(".")] + max_ldb_version[2] = 999 + max_ldb_version_dots = "%d.%d.%d" % tuple(max_ldb_version) + if conf.env.disable_python: - if conf.CHECK_BUNDLED_SYSTEM_PKG('ldb', minversion=VERSION, - onlyif='talloc tdb tevent', - implied_deps='replace talloc tdb tevent'): + if conf.CHECK_BUNDLED_SYSTEM_PKG('ldb', + minversion=VERSION, + maxversion=max_ldb_version_dots, + onlyif='talloc tdb tevent', + implied_deps='replace talloc tdb tevent'): conf.define('USING_SYSTEM_LDB', 1) else: using_system_pyldb_util = True - if not conf.CHECK_BUNDLED_SYSTEM_PKG('pyldb-util', minversion=VERSION, - onlyif='talloc tdb tevent', - implied_deps='replace talloc tdb tevent ldb'): + if not conf.CHECK_BUNDLED_SYSTEM_PKG('pyldb-util', + minversion=VERSION, + maxversion=max_ldb_version_dots, + onlyif='talloc tdb tevent', + implied_deps='replace talloc tdb tevent ldb'): using_system_pyldb_util = False # We need to get a pyldb-util for all the python versions # we are building for if conf.env['EXTRA_PYTHON']: name = 'pyldb-util' + conf.all_envs['extrapython']['PYTHON_SO_ABI_FLAG'] - if not conf.CHECK_BUNDLED_SYSTEM_PKG(name, minversion=VERSION, + if not conf.CHECK_BUNDLED_SYSTEM_PKG(name, + minversion=VERSION, + maxversion=max_ldb_version_dots, onlyif='talloc tdb tevent', implied_deps='replace talloc tdb tevent ldb'): using_system_pyldb_util = False @@ -87,9 +97,11 @@ def configure(conf): if using_system_pyldb_util: conf.define('USING_SYSTEM_PYLDB_UTIL', 1) - if conf.CHECK_BUNDLED_SYSTEM_PKG('ldb', minversion=VERSION, - onlyif='talloc tdb tevent pyldb-util', - implied_deps='replace talloc tdb tevent'): + if conf.CHECK_BUNDLED_SYSTEM_PKG('ldb', + minversion=VERSION, + maxversion=max_ldb_version_dots, + onlyif='talloc tdb tevent pyldb-util', + implied_deps='replace talloc tdb tevent'): conf.define('USING_SYSTEM_LDB', 1) if conf.CONFIG_SET('USING_SYSTEM_LDB'): -- 2.11.0