From df813453373c61c2066e8da42f2cc19cf2ce209f Mon Sep 17 00:00:00 2001 From: Howard Chu Date: Thu, 1 Sep 2011 16:56:56 -0700 Subject: [PATCH] Add MDB support to configure and test framework. Does not update the tests themselves. In configure --help, call it "mdb database backend" instead of something with "memory-mapped" which could confuse somebody about a memory-only DB. Conflicts: servers/slapd/back-mdb/Makefile.in --- configure | 68 +++++++++++++++++++++++++++++++++++++------- configure.in | 20 +++++++++++++ include/portable.hin | 3 ++ tests/Makefile.in | 10 +++++++ tests/README | 1 + tests/run.in | 5 ++-- 6 files changed, 94 insertions(+), 13 deletions(-) diff --git a/configure b/configure index deb4078732..034725e75b 100755 --- a/configure +++ b/configure @@ -1,5 +1,5 @@ #! /bin/sh -# From configure.in Id: 9a6b25c794bb8f0aa9697d73b7b082c759e4de1a . +# From configure.in Id: d70d5c72ac4d46432c8be2361e4f7b543378319b . # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.65. # @@ -813,6 +813,7 @@ BUILD_NULL BUILD_NDB BUILD_MONITOR BUILD_META +BUILD_MDB BUILD_LDAP BUILD_HDB BUILD_DNSSRV @@ -974,6 +975,7 @@ enable_bdb enable_dnssrv enable_hdb enable_ldap +enable_mdb enable_meta enable_monitor enable_ndb @@ -1672,6 +1674,7 @@ SLAPD Backend Options: --enable-dnssrv enable dnssrv backend no|yes|mod [no] --enable-hdb enable Hierarchical DB backend no|yes|mod [yes] --enable-ldap enable ldap backend no|yes|mod [no] + --enable-mdb enable mdb database backend no|yes|mod [yes] --enable-meta enable metadirectory backend no|yes|mod [no] --enable-monitor enable monitor backend no|yes|mod [yes] --enable-ndb enable MySQL NDB Cluster backend no|yes|mod [no] @@ -4048,6 +4051,7 @@ Backends="bdb \ dnssrv \ hdb \ ldap \ + mdb \ meta \ monitor \ ndb \ @@ -4168,6 +4172,27 @@ else fi # end --enable-ldap +# OpenLDAP --enable-mdb + + # Check whether --enable-mdb was given. +if test "${enable_mdb+set}" = set; then : + enableval=$enable_mdb; + ol_arg=invalid + for ol_val in no yes mod ; do + if test "$enableval" = "$ol_val" ; then + ol_arg="$ol_val" + fi + done + if test "$ol_arg" = "invalid" ; then + as_fn_error "bad value $enableval for --enable-mdb" "$LINENO" 5 + fi + ol_enable_mdb="$ol_arg" + +else + ol_enable_mdb=${ol_enable_backends:-yes} +fi + +# end --enable-mdb # OpenLDAP --enable-meta # Check whether --enable-meta was given. @@ -4994,6 +5019,7 @@ elif test $ol_enable_modules != yes && test $ol_enable_dnssrv = no && test $ol_enable_hdb = no && test $ol_enable_ldap = no && + test $ol_enable_mdb = no && test $ol_enable_meta = no && test $ol_enable_monitor = no && test $ol_enable_ndb = no && @@ -5054,6 +5080,7 @@ BUILD_BDB=no BUILD_DNSSRV=no BUILD_HDB=no BUILD_LDAP=no +BUILD_MDB=no BUILD_META=no BUILD_MONITOR=no BUILD_NDB=no @@ -6883,7 +6910,7 @@ ia64-*-hpux*) ;; *-*-irix6*) # Find out which ABI we are using. - echo '#line 6886 "configure"' > conftest.$ac_ext + echo '#line 6913 "configure"' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? @@ -8564,11 +8591,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:8567: $lt_compile\"" >&5) + (eval echo "\"\$as_me:8594: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:8571: \$? = $ac_status" >&5 + echo "$as_me:8598: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -8826,11 +8853,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:8829: $lt_compile\"" >&5) + (eval echo "\"\$as_me:8856: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:8833: \$? = $ac_status" >&5 + echo "$as_me:8860: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -8888,11 +8915,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:8891: $lt_compile\"" >&5) + (eval echo "\"\$as_me:8918: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:8895: \$? = $ac_status" >&5 + echo "$as_me:8922: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -10760,7 +10787,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext < conftest.$ac_ext <>confdefs.h <<_ACEOF +#define SLAPD_MDB $MFLAG +_ACEOF + +fi + if test "$ol_enable_meta" != no ; then BUILD_SLAPD=yes BUILD_META=$ol_enable_meta @@ -24787,6 +24831,7 @@ fi + # Check whether --with-xxinstall was given. @@ -24796,7 +24841,7 @@ fi -ac_config_files="$ac_config_files Makefile:build/top.mk:Makefile.in:build/dir.mk doc/Makefile:build/top.mk:doc/Makefile.in:build/dir.mk doc/man/Makefile:build/top.mk:doc/man/Makefile.in:build/dir.mk doc/man/man1/Makefile:build/top.mk:doc/man/man1/Makefile.in:build/man.mk doc/man/man3/Makefile:build/top.mk:doc/man/man3/Makefile.in:build/man.mk doc/man/man5/Makefile:build/top.mk:doc/man/man5/Makefile.in:build/man.mk doc/man/man8/Makefile:build/top.mk:doc/man/man8/Makefile.in:build/man.mk clients/Makefile:build/top.mk:clients/Makefile.in:build/dir.mk clients/tools/Makefile:build/top.mk:clients/tools/Makefile.in:build/rules.mk include/Makefile:build/top.mk:include/Makefile.in libraries/Makefile:build/top.mk:libraries/Makefile.in:build/dir.mk libraries/liblber/Makefile:build/top.mk:libraries/liblber/Makefile.in:build/lib.mk:build/lib-shared.mk libraries/libldap/Makefile:build/top.mk:libraries/libldap/Makefile.in:build/lib.mk:build/lib-shared.mk libraries/libldap_r/Makefile:build/top.mk:libraries/libldap_r/Makefile.in:build/lib.mk:build/lib-shared.mk libraries/liblunicode/Makefile:build/top.mk:libraries/liblunicode/Makefile.in:build/lib.mk:build/lib-static.mk libraries/liblutil/Makefile:build/top.mk:libraries/liblutil/Makefile.in:build/lib.mk:build/lib-static.mk libraries/librewrite/Makefile:build/top.mk:libraries/librewrite/Makefile.in:build/lib.mk:build/lib-static.mk servers/Makefile:build/top.mk:servers/Makefile.in:build/dir.mk servers/slapd/Makefile:build/top.mk:servers/slapd/Makefile.in:build/srv.mk servers/slapd/back-bdb/Makefile:build/top.mk:servers/slapd/back-bdb/Makefile.in:build/mod.mk servers/slapd/back-dnssrv/Makefile:build/top.mk:servers/slapd/back-dnssrv/Makefile.in:build/mod.mk servers/slapd/back-hdb/Makefile:build/top.mk:servers/slapd/back-hdb/Makefile.in:build/mod.mk servers/slapd/back-ldap/Makefile:build/top.mk:servers/slapd/back-ldap/Makefile.in:build/mod.mk servers/slapd/back-ldif/Makefile:build/top.mk:servers/slapd/back-ldif/Makefile.in:build/mod.mk servers/slapd/back-meta/Makefile:build/top.mk:servers/slapd/back-meta/Makefile.in:build/mod.mk servers/slapd/back-monitor/Makefile:build/top.mk:servers/slapd/back-monitor/Makefile.in:build/mod.mk servers/slapd/back-ndb/Makefile:build/top.mk:servers/slapd/back-ndb/Makefile.in:build/mod.mk servers/slapd/back-null/Makefile:build/top.mk:servers/slapd/back-null/Makefile.in:build/mod.mk servers/slapd/back-passwd/Makefile:build/top.mk:servers/slapd/back-passwd/Makefile.in:build/mod.mk servers/slapd/back-perl/Makefile:build/top.mk:servers/slapd/back-perl/Makefile.in:build/mod.mk servers/slapd/back-relay/Makefile:build/top.mk:servers/slapd/back-relay/Makefile.in:build/mod.mk servers/slapd/back-shell/Makefile:build/top.mk:servers/slapd/back-shell/Makefile.in:build/mod.mk servers/slapd/back-sock/Makefile:build/top.mk:servers/slapd/back-sock/Makefile.in:build/mod.mk servers/slapd/back-sql/Makefile:build/top.mk:servers/slapd/back-sql/Makefile.in:build/mod.mk servers/slapd/shell-backends/Makefile:build/top.mk:servers/slapd/shell-backends/Makefile.in:build/srv.mk servers/slapd/slapi/Makefile:build/top.mk:servers/slapd/slapi/Makefile.in:build/lib.mk:build/lib-shared.mk servers/slapd/overlays/Makefile:build/top.mk:servers/slapd/overlays/Makefile.in:build/lib.mk tests/Makefile:build/top.mk:tests/Makefile.in:build/dir.mk tests/run tests/progs/Makefile:build/top.mk:tests/progs/Makefile.in:build/rules.mk" +ac_config_files="$ac_config_files Makefile:build/top.mk:Makefile.in:build/dir.mk doc/Makefile:build/top.mk:doc/Makefile.in:build/dir.mk doc/man/Makefile:build/top.mk:doc/man/Makefile.in:build/dir.mk doc/man/man1/Makefile:build/top.mk:doc/man/man1/Makefile.in:build/man.mk doc/man/man3/Makefile:build/top.mk:doc/man/man3/Makefile.in:build/man.mk doc/man/man5/Makefile:build/top.mk:doc/man/man5/Makefile.in:build/man.mk doc/man/man8/Makefile:build/top.mk:doc/man/man8/Makefile.in:build/man.mk clients/Makefile:build/top.mk:clients/Makefile.in:build/dir.mk clients/tools/Makefile:build/top.mk:clients/tools/Makefile.in:build/rules.mk include/Makefile:build/top.mk:include/Makefile.in libraries/Makefile:build/top.mk:libraries/Makefile.in:build/dir.mk libraries/liblber/Makefile:build/top.mk:libraries/liblber/Makefile.in:build/lib.mk:build/lib-shared.mk libraries/libldap/Makefile:build/top.mk:libraries/libldap/Makefile.in:build/lib.mk:build/lib-shared.mk libraries/libldap_r/Makefile:build/top.mk:libraries/libldap_r/Makefile.in:build/lib.mk:build/lib-shared.mk libraries/liblunicode/Makefile:build/top.mk:libraries/liblunicode/Makefile.in:build/lib.mk:build/lib-static.mk libraries/liblutil/Makefile:build/top.mk:libraries/liblutil/Makefile.in:build/lib.mk:build/lib-static.mk libraries/librewrite/Makefile:build/top.mk:libraries/librewrite/Makefile.in:build/lib.mk:build/lib-static.mk servers/Makefile:build/top.mk:servers/Makefile.in:build/dir.mk servers/slapd/Makefile:build/top.mk:servers/slapd/Makefile.in:build/srv.mk servers/slapd/back-bdb/Makefile:build/top.mk:servers/slapd/back-bdb/Makefile.in:build/mod.mk servers/slapd/back-dnssrv/Makefile:build/top.mk:servers/slapd/back-dnssrv/Makefile.in:build/mod.mk servers/slapd/back-hdb/Makefile:build/top.mk:servers/slapd/back-hdb/Makefile.in:build/mod.mk servers/slapd/back-ldap/Makefile:build/top.mk:servers/slapd/back-ldap/Makefile.in:build/mod.mk servers/slapd/back-ldif/Makefile:build/top.mk:servers/slapd/back-ldif/Makefile.in:build/mod.mk servers/slapd/back-mdb/Makefile:build/top.mk:servers/slapd/back-mdb/Makefile.in:build/mod.mk servers/slapd/back-meta/Makefile:build/top.mk:servers/slapd/back-meta/Makefile.in:build/mod.mk servers/slapd/back-monitor/Makefile:build/top.mk:servers/slapd/back-monitor/Makefile.in:build/mod.mk servers/slapd/back-ndb/Makefile:build/top.mk:servers/slapd/back-ndb/Makefile.in:build/mod.mk servers/slapd/back-null/Makefile:build/top.mk:servers/slapd/back-null/Makefile.in:build/mod.mk servers/slapd/back-passwd/Makefile:build/top.mk:servers/slapd/back-passwd/Makefile.in:build/mod.mk servers/slapd/back-perl/Makefile:build/top.mk:servers/slapd/back-perl/Makefile.in:build/mod.mk servers/slapd/back-relay/Makefile:build/top.mk:servers/slapd/back-relay/Makefile.in:build/mod.mk servers/slapd/back-shell/Makefile:build/top.mk:servers/slapd/back-shell/Makefile.in:build/mod.mk servers/slapd/back-sock/Makefile:build/top.mk:servers/slapd/back-sock/Makefile.in:build/mod.mk servers/slapd/back-sql/Makefile:build/top.mk:servers/slapd/back-sql/Makefile.in:build/mod.mk servers/slapd/shell-backends/Makefile:build/top.mk:servers/slapd/shell-backends/Makefile.in:build/srv.mk servers/slapd/slapi/Makefile:build/top.mk:servers/slapd/slapi/Makefile.in:build/lib.mk:build/lib-shared.mk servers/slapd/overlays/Makefile:build/top.mk:servers/slapd/overlays/Makefile.in:build/lib.mk tests/Makefile:build/top.mk:tests/Makefile.in:build/dir.mk tests/run tests/progs/Makefile:build/top.mk:tests/progs/Makefile.in:build/rules.mk" ac_config_commands="$ac_config_commands default" @@ -25466,6 +25511,7 @@ do "servers/slapd/back-hdb/Makefile") CONFIG_FILES="$CONFIG_FILES servers/slapd/back-hdb/Makefile:build/top.mk:servers/slapd/back-hdb/Makefile.in:build/mod.mk" ;; "servers/slapd/back-ldap/Makefile") CONFIG_FILES="$CONFIG_FILES servers/slapd/back-ldap/Makefile:build/top.mk:servers/slapd/back-ldap/Makefile.in:build/mod.mk" ;; "servers/slapd/back-ldif/Makefile") CONFIG_FILES="$CONFIG_FILES servers/slapd/back-ldif/Makefile:build/top.mk:servers/slapd/back-ldif/Makefile.in:build/mod.mk" ;; + "servers/slapd/back-mdb/Makefile") CONFIG_FILES="$CONFIG_FILES servers/slapd/back-mdb/Makefile:build/top.mk:servers/slapd/back-mdb/Makefile.in:build/mod.mk" ;; "servers/slapd/back-meta/Makefile") CONFIG_FILES="$CONFIG_FILES servers/slapd/back-meta/Makefile:build/top.mk:servers/slapd/back-meta/Makefile.in:build/mod.mk" ;; "servers/slapd/back-monitor/Makefile") CONFIG_FILES="$CONFIG_FILES servers/slapd/back-monitor/Makefile:build/top.mk:servers/slapd/back-monitor/Makefile.in:build/mod.mk" ;; "servers/slapd/back-ndb/Makefile") CONFIG_FILES="$CONFIG_FILES servers/slapd/back-ndb/Makefile:build/top.mk:servers/slapd/back-ndb/Makefile.in:build/mod.mk" ;; diff --git a/configure.in b/configure.in index 9a6b25c794..d70d5c72ac 100644 --- a/configure.in +++ b/configure.in @@ -286,6 +286,7 @@ Backends="bdb \ dnssrv \ hdb \ ldap \ + mdb \ meta \ monitor \ ndb \ @@ -310,6 +311,8 @@ OL_ARG_ENABLE(hdb,[ --enable-hdb enable Hierarchical DB backend], yes, [no yes mod], ol_enable_backends)dnl OL_ARG_ENABLE(ldap,[ --enable-ldap enable ldap backend], no, [no yes mod], ol_enable_backends)dnl +OL_ARG_ENABLE(mdb,[ --enable-mdb enable mdb database backend], + yes, [no yes mod], ol_enable_backends)dnl OL_ARG_ENABLE(meta,[ --enable-meta enable metadirectory backend], no, [no yes mod], ol_enable_backends)dnl OL_ARG_ENABLE(monitor,[ --enable-monitor enable monitor backend], @@ -472,6 +475,7 @@ elif test $ol_enable_modules != yes && test $ol_enable_dnssrv = no && test $ol_enable_hdb = no && test $ol_enable_ldap = no && + test $ol_enable_mdb = no && test $ol_enable_meta = no && test $ol_enable_monitor = no && test $ol_enable_ndb = no && @@ -533,6 +537,7 @@ BUILD_BDB=no BUILD_DNSSRV=no BUILD_HDB=no BUILD_LDAP=no +BUILD_MDB=no BUILD_META=no BUILD_MONITOR=no BUILD_NDB=no @@ -2663,6 +2668,19 @@ if test "$ol_enable_ldap" != no ; then AC_DEFINE_UNQUOTED(SLAPD_LDAP,$MFLAG,[define to support LDAP backend]) fi +if test "$ol_enable_mdb" != no ; then + BUILD_SLAPD=yes + BUILD_MDB=$ol_enable_mdb + if test "$ol_enable_mdb" = mod ; then + SLAPD_DYNAMIC_BACKENDS="$SLAPD_DYNAMIC_BACKENDS back-mdb" + MFLAG=SLAPD_MOD_DYNAMIC + else + SLAPD_STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS back-mdb" + MFLAG=SLAPD_MOD_STATIC + fi + AC_DEFINE_UNQUOTED(SLAPD_MDB,$MFLAG,[define to support MDB backend]) +fi + if test "$ol_enable_meta" != no ; then BUILD_SLAPD=yes BUILD_META=$ol_enable_meta @@ -3068,6 +3086,7 @@ dnl backends AC_SUBST(BUILD_DNSSRV) AC_SUBST(BUILD_HDB) AC_SUBST(BUILD_LDAP) + AC_SUBST(BUILD_MDB) AC_SUBST(BUILD_META) AC_SUBST(BUILD_MONITOR) AC_SUBST(BUILD_NDB) @@ -3174,6 +3193,7 @@ AC_CONFIG_FILES([Makefile:build/top.mk:Makefile.in:build/dir.mk] [servers/slapd/back-hdb/Makefile:build/top.mk:servers/slapd/back-hdb/Makefile.in:build/mod.mk] [servers/slapd/back-ldap/Makefile:build/top.mk:servers/slapd/back-ldap/Makefile.in:build/mod.mk] [servers/slapd/back-ldif/Makefile:build/top.mk:servers/slapd/back-ldif/Makefile.in:build/mod.mk] +[servers/slapd/back-mdb/Makefile:build/top.mk:servers/slapd/back-mdb/Makefile.in:build/mod.mk] [servers/slapd/back-meta/Makefile:build/top.mk:servers/slapd/back-meta/Makefile.in:build/mod.mk] [servers/slapd/back-monitor/Makefile:build/top.mk:servers/slapd/back-monitor/Makefile.in:build/mod.mk] [servers/slapd/back-ndb/Makefile:build/top.mk:servers/slapd/back-ndb/Makefile.in:build/mod.mk] diff --git a/include/portable.hin b/include/portable.hin index 4b8d6e4708..ed6cfae095 100644 --- a/include/portable.hin +++ b/include/portable.hin @@ -942,6 +942,9 @@ /* define to support LAN Manager passwords */ #undef SLAPD_LMHASH +/* define to support MDB backend */ +#undef SLAPD_MDB + /* define to support LDAP Metadirectory backend */ #undef SLAPD_META diff --git a/tests/Makefile.in b/tests/Makefile.in index c404671e32..ec0fb3326f 100644 --- a/tests/Makefile.in +++ b/tests/Makefile.in @@ -18,12 +18,14 @@ SUBDIRS= progs BUILD_BDB=@BUILD_BDB@ BUILD_HDB=@BUILD_HDB@ +BUILD_MDB=@BUILD_MDB@ BUILD_SQL=@BUILD_SQL@ # test primary backends (default) test tests: @$(MAKE) bdb @$(MAKE) hdb + @$(MAKE) mdb # test all backends alltests: tests @@ -45,6 +47,14 @@ hdb-yes hdb-mod: FORCE @echo "Initiating LDAP tests for HDB..." @$(RUN) -b hdb all +mdb test-mdb: mdb-$(BUILD_MDB) +mdb-no: + @echo "run configure with --enable-mdb to run MDB tests" + +mdb-yes mdb-mod: FORCE + @echo "Initiating LDAP tests for MDB..." + @$(RUN) -b mdb all + sql test-sql: sql-$(BUILD_SQL) sql-no: @echo "run configure with --enable-sql to run SQL tests" diff --git a/tests/README b/tests/README index ebe1972138..1a25df80ae 100644 --- a/tests/README +++ b/tests/README @@ -4,6 +4,7 @@ verify basic functionality of the LDAP libraries and slapd. To run all of the tests, type "make test". To run BDB tests, type "make bdb". To run HDB tests, type "make hdb". + To run MDB tests, type "make mdb". To run SQL tests, define SLAPD_USE_SQL= and type "make sql"; define SLAPD_USE_SQLWRITE=yes to enable write tests as well. diff --git a/tests/run.in b/tests/run.in index 0c7976cd01..5b71c2e546 100644 --- a/tests/run.in +++ b/tests/run.in @@ -27,6 +27,7 @@ export SRCDIR TOPSRCDIR LN_S EGREP_CMD AC_bdb=@BUILD_BDB@ AC_hdb=@BUILD_HDB@ AC_ldif=yes +AC_mdb=@BUILD_MDB@ AC_null=@BUILD_NULL@ # other backends @@ -67,7 +68,7 @@ if test "${AC_meta}" = "metamod" && test "${AC_LIBS_DYNAMIC}" = "static" ; then AC_meta="metano" fi -export AC_bdb AC_hdb AC_ldap AC_meta AC_monitor AC_null AC_relay AC_sql \ +export AC_bdb AC_hdb AC_ldap AC_mdb AC_meta AC_monitor AC_null AC_relay AC_sql \ AC_accesslog AC_dds AC_dynlist AC_memberof AC_pcache AC_ppolicy \ AC_refint AC_retcode AC_rwm AC_unique AC_syncprov AC_translucent \ AC_valsort \ @@ -151,7 +152,7 @@ while test $# -gt 0 ; do done if test -z "$BACKEND" ; then - for b in bdb hdb ; do + for b in bdb hdb mdb ; do if eval "test \"\$AC_$b\" != no" ; then BACKEND=$b break -- 2.39.5