diff --git a/ldb/buildtools/wafsamba/wscript b/ldb/buildtools/wafsamba/wscript index 8802e5a..2243f93 100755 --- a/ldb/buildtools/wafsamba/wscript +++ b/ldb/buildtools/wafsamba/wscript @@ -69,6 +69,9 @@ def set_options(opt): opt.add_option('--with-modulesdir', help=("modules directory [PREFIX/modules]"), action="store", dest='MODULESDIR', default='${PREFIX}/modules') + opt.add_option('--with-samba-modulesdir', + help=("samba domain controller modules directory [PREFIX/samba]"), + action="store", dest='SAMBA_MODULESDIR', default='${PREFIX}/samba') opt.add_option('--with-privatelibdir', help=("private library directory [PREFIX/lib/%s]" % Utils.g_module.APPNAME), diff --git a/ldb/common/ldb.c b/ldb/common/ldb.c index 6067256..6eb82ee 100644 --- a/ldb/common/ldb.c +++ b/ldb/common/ldb.c @@ -95,6 +95,11 @@ struct ldb_context *ldb_init(TALLOC_CTX *mem_ctx, struct tevent_context *ev_ctx) if (modules_path == NULL) { modules_path = LDB_MODULESDIR; + + struct stat st; + ret = stat(LDB_SAMBA_MODULESDIR, &st); + if (ret == 0 && S_ISDIR(st.st_mode)) + modules_path = LDB_MODULESDIR ":" LDB_SAMBA_MODULESDIR; } ret = ldb_modules_load(modules_path, LDB_VERSION); diff --git a/ldb/wscript b/ldb/wscript index 7f05db3..291fa06 100755 --- a/ldb/wscript +++ b/ldb/wscript @@ -51,6 +51,7 @@ def configure(conf): # where does the default LIBDIR end up? in conf.env somewhere? # conf.CONFIG_PATH('LDB_MODULESDIR', conf.SUBST_ENV_VAR('MODULESDIR') + '/ldb') + conf.CONFIG_PATH('LDB_SAMBA_MODULESDIR', conf.SUBST_ENV_VAR('SAMBA_MODULESDIR') + '/ldb') conf.env.standalone_ldb = conf.IN_LAUNCH_DIR() diff --git a/ldb/buildtools/wafsamba/samba_patterns.py b/ldb/buildtools/wafsamba/samba_patterns.py index ceca2cc..1454890 100644 --- a/ldb/buildtools/wafsamba/samba_patterns.py +++ b/ldb/buildtools/wafsamba/samba_patterns.py @@ -115,6 +115,7 @@ def write_build_options_header(fp): fp.write(" output(screen,\" LMHOSTSFILE: %s\\n\",get_dyn_LMHOSTSFILE());\n") fp.write(" output(screen,\" LIBDIR: %s\\n\",get_dyn_LIBDIR());\n") fp.write(" output(screen,\" MODULESDIR: %s\\n\",get_dyn_MODULESDIR());\n") + fp.write(" output(screen,\" SAMBA_MODULESDIR: %s\\n\",get_dyn_SAMBA_MODULESDIR());\n") fp.write(" output(screen,\" SHLIBEXT: %s\\n\",get_dyn_SHLIBEXT());\n") fp.write(" output(screen,\" LOCKDIR: %s\\n\",get_dyn_LOCKDIR());\n") fp.write(" output(screen,\" STATEDIR: %s\\n\",get_dyn_STATEDIR());\n") diff --git a/ldb/buildtools/wafsamba/wscript b/ldb/buildtools/wafsamba/wscript index 8802e5a..86ec408 100755 --- a/ldb/buildtools/wafsamba/wscript +++ b/ldb/buildtools/wafsamba/wscript @@ -261,6 +261,7 @@ def configure(conf): conf.env.BINDIR = Options.options.BINDIR or '${PREFIX}/bin' conf.env.SBINDIR = Options.options.SBINDIR or '${PREFIX}/sbin' conf.env.MODULESDIR = Options.options.MODULESDIR + conf.env.SAMBA_MODULESDIR = Options.options.SAMBA_MODULESDIR conf.env.PRIVATELIBDIR = Options.options.PRIVATELIBDIR conf.env.BUNDLED_LIBS = Options.options.BUNDLED_LIBS.split(',') conf.env.PRIVATE_LIBS = Options.options.PRIVATE_LIBS.split(',') diff --git a/ldb/wscript b/ldb/wscript index 7f05db3..e6ae0a5 100755 --- a/ldb/wscript +++ b/ldb/wscript @@ -157,6 +157,8 @@ def build(bld): # the current modules, not the installed ones modules_dir = os.path.join(os.getcwd(), 'bin/modules/ldb') + samba_modules_dir = bld.EXPAND_VARIABLES('${LDB_SAMBA_MODULESDIR}') + abi_match = '!ldb_*module_ops !ldb_*backend_ops ldb_*' ldb_headers = ('include/ldb.h include/ldb_errors.h ' @@ -266,7 +268,7 @@ def build(bld): 'common/ldb.c', deps='tevent tdb', includes='include', - cflags=['-DLDB_MODULESDIR=\"%s\"' % modules_dir]) + cflags=['-DLDB_MODULESDIR=\"%s\"' % modules_dir, '-DLDB_SAMBA_MODULESDIR=\"%s\"' % samba_modules_dir]) LDB_TOOLS='ldbadd ldbsearch ldbdel ldbmodify ldbedit ldbrename' for t in LDB_TOOLS.split():