summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRich Megginson <rmeggins@redhat.com>2007-06-19 18:24:58 +0000
committerRich Megginson <rmeggins@redhat.com>2007-06-19 18:24:58 +0000
commit72da2df3bae21741217e3175e020cdc3b83ac172 (patch)
tree4e12d324257ca8cfe4ba39ceb4337adfe0df588e
parent0046d389d23bd217e3109949064c33de07dbc017 (diff)
downloadds-72da2df3bae21741217e3175e020cdc3b83ac172.tar.gz
ds-72da2df3bae21741217e3175e020cdc3b83ac172.tar.xz
ds-72da2df3bae21741217e3175e020cdc3b83ac172.zip
Resolves: bug 237356
Description: Move DS Admin Code into Admin Server - ldif templates, pwdhash Reviewed by: nhosoi (Thanks!) Fix Description: These changes are primarily to allow the admin server setup to run completely in perl with no more setuputil code. 1) Added LDIF templates for DS config. template-dse.ldif is the core minimal directory server configuration. Values can be replaced with parameters in the same style as used with register_server.pl - %token%. For the plugin entries, the plugin shared library name is now just a name. There is no more full path. The code in dynalib.c handles this case by using the compiled in PLUGINDIR. The NSPR function PR_GetLibraryName knows the correct shared lib suffix for the platform. All of this allows us to do 2). 2) Added ability to run pwdhash with no server configuration. If no configuration is given, it uses the template-dse.ldif above. And instead of having to worry about where the plugins are installed and the shared lib suffix, it just depends on the above changes. This allows us to generate password hashes during setup before the directory server instance is created, and also to keep clear text password usage to a minimum. 3) Added defaultuser and defaultgroup. 4) Added support for continuation lines in Inf files. 5) All user visible messages during setup should be localizable Platforms tested: RHEL4 Flag Day: Yes, autotool file changes. Doc impact: Yes, along with the previous fixes for this bug.
-rw-r--r--Makefile.am26
-rw-r--r--Makefile.in27
-rw-r--r--aclocal.m434
-rwxr-xr-xconfigure221
-rw-r--r--configure.ac10
-rw-r--r--ldap/admin/src/scripts/DialogManager.pm4
-rw-r--r--ldap/admin/src/scripts/Inf.pm37
-rw-r--r--ldap/admin/src/scripts/Setup.pm.in16
-rw-r--r--ldap/admin/src/scripts/SetupDialogs.pm.in (renamed from ldap/admin/src/scripts/SetupDialogs.pm)4
-rw-r--r--ldap/admin/src/scripts/Util.pm.in (renamed from ldap/admin/src/scripts/Util.pm)34
-rw-r--r--ldap/admin/src/scripts/setup-ds.res.in2
-rw-r--r--ldap/cm/newinst/slapd.inf.in10
-rw-r--r--ldap/ldif/template-bitwise.ldif.in10
-rw-r--r--ldap/ldif/template-dnaplugin.ldif.in11
-rw-r--r--ldap/ldif/template-dse.ldif.in773
-rw-r--r--ldap/ldif/template-ldapi-autobind.ldif.in22
-rw-r--r--ldap/ldif/template-ldapi-default.ldif.in26
-rw-r--r--ldap/ldif/template-ldapi.ldif.in7
-rw-r--r--ldap/ldif/template-pampta.ldif.in20
-rw-r--r--ldap/ldif/template-suffix-db.ldif.in17
-rw-r--r--ldap/servers/slapd/dynalib.c59
-rw-r--r--ldap/servers/slapd/tools/pwenc.c94
22 files changed, 1329 insertions, 135 deletions
diff --git a/Makefile.am b/Makefile.am
index 0f4027cd..68a9a1d3 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,10 +1,15 @@
# look for included m4 files in the ./m4/ directory
ACLOCAL_AMFLAGS = -I m4
+NULLSTRING :=
+SPACE := $(NULLSTRING) # the space is between the ) and the #
+COLON := $(NULLSTRING):# a colon
+QUOTE := $(NULLSTRING)"# a double quote"
#------------------------
# Compiler Flags
#------------------------
BUILDNUM := $(shell perl $(srcdir)/buildnum.pl)
+NQBUILDNUM := $(subst \,,$(subst $(QUOTE),,$(BUILDNUM)))
DEBUG_DEFINES = @debug_defs@
DS_DEFINES = -DBUILD_NUM=$(BUILDNUM)
DS_INCLUDES = -I$(srcdir)/ldap/include -I$(srcdir)/ldap/servers/slapd -I$(srcdir)/include -I.
@@ -21,7 +26,7 @@ DS_INCLUDES = -I$(srcdir)/ldap/include -I$(srcdir)/ldap/servers/slapd -I$(srcdir
PATH_DEFINES = -DLOCALSTATEDIR="\"$(localstatedir)\"" -DSYSCONFDIR="\"$(sysconfdir)\"" \
-DLIBDIR="\"$(libdir)\"" -DBINDIR="\"$(bindir)\"" \
-DDATADIR="\"$(datadir)\"" -DDOCDIR="\"$(docdir)\"" \
- -DSBINDIR="\"$(sbindir)\"" -DPLUGINDIR="\"$(serverplugindir)\""
+ -DSBINDIR="\"$(sbindir)\"" -DPLUGINDIR="\"$(serverplugindir)\"" -DTEMPLATEDIR="\"$(sampledatadir)\""
AM_CPPFLAGS = $(DEBUG_DEFINES) $(DS_DEFINES) $(DS_INCLUDES) $(PATH_DEFINES)
PLUGIN_CPPFLAGS = $(AM_CPPFLAGS) @ldapsdk_inc@ @nss_inc@ @nspr_inc@
@@ -77,7 +82,8 @@ instconfigdir = @instconfigdir@
perldir = $(libdir)@perldir@
infdir = $(datadir)@infdir@
-shared_lib_suffix = @shared_lib_suffix@
+defaultuser=@defaultuser@
+defaultgroup=@defaultgroup@
#------------------------
# Build Products
@@ -131,6 +137,14 @@ sampledata_DATA = $(srcdir)/ldap/ldif/Ace.ldif \
$(srcdir)/ldap/ldif/roledit.ldif \
$(srcdir)/ldap/ldif/tasks.ldif \
$(srcdir)/ldap/ldif/template.ldif \
+ ldap/ldif/template-dse.ldif \
+ ldap/ldif/template-suffix-db.ldif \
+ ldap/ldif/template-ldapi.ldif \
+ ldap/ldif/template-ldapi-default.ldif \
+ ldap/ldif/template-ldapi-autobind.ldif \
+ ldap/ldif/template-pampta.ldif \
+ ldap/ldif/template-dnaplugin.ldif \
+ ldap/ldif/template-bitwise.ldif \
$(srcdir)/ldap/servers/slapd/tools/rsearch/scripts/dbgen-FamilyNames \
$(srcdir)/ldap/servers/slapd/tools/rsearch/scripts/dbgen-GivenNames \
$(srcdir)/ldap/servers/slapd/tools/rsearch/scripts/dbgen-OrgUnits
@@ -1024,8 +1038,10 @@ fixupcmd = sed \
-e 's,@vendor\@,$(vendor),g' \
-e 's,@PACKAGE_VERSION\@,$(PACKAGE_VERSION),g' \
-e 's,@BUILDNUM\@,$(BUILDNUM),g' \
+ -e 's,@NQBUILD_NUM\@,$(NQBUILDNUM),g' \
-e 's,@perldir\@,$(perldir),g' \
- -e 's,@shared_lib_suffix\@,$(shared_lib_suffix),g'
+ -e 's,@defaultuser\@,$(defaultuser),g' \
+ -e 's,@defaultgroup\@,$(defaultgroup),g'
else
fixupcmd = sed \
-e 's,@bindir\@,$(bindir),g' \
@@ -1057,8 +1073,10 @@ fixupcmd = sed \
-e 's,@vendor\@,$(vendor),g' \
-e 's,@PACKAGE_VERSION\@,$(PACKAGE_VERSION),g' \
-e 's,@BUILDNUM\@,$(BUILDNUM),g' \
+ -e 's,@NQBUILD_NUM\@,$(NQBUILDNUM),g' \
-e 's,@perldir\@,$(perldir),g' \
- -e 's,@shared_lib_suffix\@,$(shared_lib_suffix),g'
+ -e 's,@defaultuser\@,$(defaultuser),g' \
+ -e 's,@defaultgroup\@,$(defaultgroup),g'
endif
%: %.in
diff --git a/Makefile.in b/Makefile.in
index 3f1dab23..611ce591 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -876,6 +876,7 @@ PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
RANLIB = @RANLIB@
+SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
SOLARIS_FALSE = @SOLARIS_FALSE@
@@ -920,6 +921,8 @@ db_lib = @db_lib@
db_libdir = @db_libdir@
db_libver = @db_libver@
debug_defs = @debug_defs@
+defaultgroup = @defaultgroup@
+defaultuser = @defaultuser@
enable_bitwise_FALSE = @enable_bitwise_FALSE@
enable_bitwise_TRUE = @enable_bitwise_TRUE@
enable_dna_FALSE = @enable_dna_FALSE@
@@ -976,7 +979,6 @@ schemadir = $(sysconfdir)@schemadir@
scripttemplatedir = @scripttemplatedir@
serverdir = $(libdir)@serverdir@
serverplugindir = $(libdir)@serverplugindir@
-shared_lib_suffix = @shared_lib_suffix@
sharedstatedir = @sharedstatedir@
svrcore_inc = @svrcore_inc@
svrcore_lib = @svrcore_lib@
@@ -986,11 +988,16 @@ vendor = @vendor@
# look for included m4 files in the ./m4/ directory
ACLOCAL_AMFLAGS = -I m4
+NULLSTRING :=
+SPACE := $(NULLSTRING) # the space is between the ) and the #
+COLON := $(NULLSTRING):# a colon
+QUOTE := $(NULLSTRING)"# a double quote"
#------------------------
# Compiler Flags
#------------------------
BUILDNUM := $(shell perl $(srcdir)/buildnum.pl)
+NQBUILDNUM := $(subst \,,$(subst $(QUOTE),,$(BUILDNUM)))
DEBUG_DEFINES = @debug_defs@
DS_DEFINES = -DBUILD_NUM=$(BUILDNUM)
DS_INCLUDES = -I$(srcdir)/ldap/include -I$(srcdir)/ldap/servers/slapd -I$(srcdir)/include -I.
@@ -1007,7 +1014,7 @@ DS_INCLUDES = -I$(srcdir)/ldap/include -I$(srcdir)/ldap/servers/slapd -I$(srcdir
PATH_DEFINES = -DLOCALSTATEDIR="\"$(localstatedir)\"" -DSYSCONFDIR="\"$(sysconfdir)\"" \
-DLIBDIR="\"$(libdir)\"" -DBINDIR="\"$(bindir)\"" \
-DDATADIR="\"$(datadir)\"" -DDOCDIR="\"$(docdir)\"" \
- -DSBINDIR="\"$(sbindir)\"" -DPLUGINDIR="\"$(serverplugindir)\""
+ -DSBINDIR="\"$(sbindir)\"" -DPLUGINDIR="\"$(serverplugindir)\"" -DTEMPLATEDIR="\"$(sampledatadir)\""
AM_CPPFLAGS = $(DEBUG_DEFINES) $(DS_DEFINES) $(DS_INCLUDES) $(PATH_DEFINES)
PLUGIN_CPPFLAGS = $(AM_CPPFLAGS) @ldapsdk_inc@ @nss_inc@ @nspr_inc@
@@ -1066,6 +1073,14 @@ sampledata_DATA = $(srcdir)/ldap/ldif/Ace.ldif \
$(srcdir)/ldap/ldif/roledit.ldif \
$(srcdir)/ldap/ldif/tasks.ldif \
$(srcdir)/ldap/ldif/template.ldif \
+ ldap/ldif/template-dse.ldif \
+ ldap/ldif/template-suffix-db.ldif \
+ ldap/ldif/template-ldapi.ldif \
+ ldap/ldif/template-ldapi-default.ldif \
+ ldap/ldif/template-ldapi-autobind.ldif \
+ ldap/ldif/template-pampta.ldif \
+ ldap/ldif/template-dnaplugin.ldif \
+ ldap/ldif/template-bitwise.ldif \
$(srcdir)/ldap/servers/slapd/tools/rsearch/scripts/dbgen-FamilyNames \
$(srcdir)/ldap/servers/slapd/tools/rsearch/scripts/dbgen-GivenNames \
$(srcdir)/ldap/servers/slapd/tools/rsearch/scripts/dbgen-OrgUnits
@@ -1918,8 +1933,10 @@ rsearch_bin_LDADD = $(NSPR_LINK) $(NSS_LINK) $(LDAPSDK_LINK) $(SASL_LINK) $(LIBS
@BUNDLE_FALSE@ -e 's,@vendor\@,$(vendor),g' \
@BUNDLE_FALSE@ -e 's,@PACKAGE_VERSION\@,$(PACKAGE_VERSION),g' \
@BUNDLE_FALSE@ -e 's,@BUILDNUM\@,$(BUILDNUM),g' \
+@BUNDLE_FALSE@ -e 's,@NQBUILD_NUM\@,$(NQBUILDNUM),g' \
@BUNDLE_FALSE@ -e 's,@perldir\@,$(perldir),g' \
-@BUNDLE_FALSE@ -e 's,@shared_lib_suffix\@,$(shared_lib_suffix),g'
+@BUNDLE_FALSE@ -e 's,@defaultuser\@,$(defaultuser),g' \
+@BUNDLE_FALSE@ -e 's,@defaultgroup\@,$(defaultgroup),g'
# these are for the config files and scripts that we need to generate and replace
@@ -1958,8 +1975,10 @@ rsearch_bin_LDADD = $(NSPR_LINK) $(NSS_LINK) $(LDAPSDK_LINK) $(SASL_LINK) $(LIBS
@BUNDLE_TRUE@ -e 's,@vendor\@,$(vendor),g' \
@BUNDLE_TRUE@ -e 's,@PACKAGE_VERSION\@,$(PACKAGE_VERSION),g' \
@BUNDLE_TRUE@ -e 's,@BUILDNUM\@,$(BUILDNUM),g' \
+@BUNDLE_TRUE@ -e 's,@NQBUILD_NUM\@,$(NQBUILDNUM),g' \
@BUNDLE_TRUE@ -e 's,@perldir\@,$(perldir),g' \
-@BUNDLE_TRUE@ -e 's,@shared_lib_suffix\@,$(shared_lib_suffix),g'
+@BUNDLE_TRUE@ -e 's,@defaultuser\@,$(defaultuser),g' \
+@BUNDLE_TRUE@ -e 's,@defaultgroup\@,$(defaultgroup),g'
all: $(BUILT_SOURCES) config.h
$(MAKE) $(AM_MAKEFLAGS) all-am
diff --git a/aclocal.m4 b/aclocal.m4
index 9064efa9..c7c1c6fb 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -1578,10 +1578,27 @@ linux*)
# before this can be enabled.
hardcode_into_libs=yes
+ # find out which ABI we are using
+ libsuff=
+ case "$host_cpu" in
+ x86_64*|s390x*|powerpc64*)
+ echo '[#]line __oline__ "configure"' > conftest.$ac_ext
+ if AC_TRY_EVAL(ac_compile); then
+ case `/usr/bin/file conftest.$ac_objext` in
+ *64-bit*)
+ libsuff=64
+ sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+ esac
+
# Append ld.so.conf contents to the search path
if test -f /etc/ld.so.conf; then
- lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
- sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
+ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+ sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra"
fi
# We used to test for /lib/ld.so.1 and disable shared libraries on
@@ -4288,6 +4305,9 @@ CC=$lt_[]_LT_AC_TAGVAR(compiler, $1)
# Is the compiler the GNU C compiler?
with_gcc=$_LT_AC_TAGVAR(GCC, $1)
+gcc_dir=\`gcc -print-file-name=. | $SED 's,/\.$,,'\`
+gcc_ver=\`gcc -dumpversion\`
+
# An ERE matcher.
EGREP=$lt_EGREP
@@ -4421,11 +4441,11 @@ striplib=$lt_striplib
# Dependencies to place before the objects being linked to create a
# shared library.
-predep_objects=$lt_[]_LT_AC_TAGVAR(predep_objects, $1)
+predep_objects=\`echo $lt_[]_LT_AC_TAGVAR(predep_objects, $1) | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\`
# Dependencies to place after the objects being linked to create a
# shared library.
-postdep_objects=$lt_[]_LT_AC_TAGVAR(postdep_objects, $1)
+postdep_objects=\`echo $lt_[]_LT_AC_TAGVAR(postdep_objects, $1) | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\`
# Dependencies to place before the objects being linked to create a
# shared library.
@@ -4437,7 +4457,7 @@ postdeps=$lt_[]_LT_AC_TAGVAR(postdeps, $1)
# The library search path used internally by the compiler when linking
# a shared library.
-compiler_lib_search_path=$lt_[]_LT_AC_TAGVAR(compiler_lib_search_path, $1)
+compiler_lib_search_path=\`echo $lt_[]_LT_AC_TAGVAR(compiler_lib_search_path, $1) | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\`
# Method to check whether dependent libraries are shared objects.
deplibs_check_method=$lt_deplibs_check_method
@@ -4517,7 +4537,7 @@ variables_saved_for_relink="$variables_saved_for_relink"
link_all_deplibs=$_LT_AC_TAGVAR(link_all_deplibs, $1)
# Compile-time system search path for libraries
-sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+sys_lib_search_path_spec=\`echo $lt_sys_lib_search_path_spec | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\`
# Run-time system search path for libraries
sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
@@ -6353,6 +6373,7 @@ do
done
done
done
+IFS=$as_save_IFS
lt_ac_max=0
lt_ac_count=0
# Add /usr/xpg4/bin/sed as it is typically found on Solaris
@@ -6385,6 +6406,7 @@ for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
done
])
SED=$lt_cv_path_SED
+AC_SUBST([SED])
AC_MSG_RESULT([$SED])
])
diff --git a/configure b/configure
index da588fb7..0b118b30 100755
--- a/configure
+++ b/configure
@@ -465,7 +465,7 @@ ac_includes_default="\
#endif"
ac_default_prefix=/opt/$PACKAGE_NAME
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT build build_cpu build_vendor build_os host host_cpu host_vendor host_os CXX CXXFLAGS LDFLAGS CPPFLAGS ac_ct_CXX EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CC CFLAGS ac_ct_CC CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE EGREP LN_S ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB CPP CXXCPP F77 FFLAGS ac_ct_F77 LIBTOOL LIBOBJS debug_defs BUNDLE_TRUE BUNDLE_FALSE enable_pam_passthru_TRUE enable_pam_passthru_FALSE enable_dna_TRUE enable_dna_FALSE enable_ldapi_TRUE enable_ldapi_FALSE enable_bitwise_TRUE enable_bitwise_FALSE configdir sampledatadir propertydir schemadir serverdir serverplugindir scripttemplatedir perldir infdir instconfigdir WINNT_TRUE WINNT_FALSE LIBSOCKET LIBNSL LIBDL LIBCSTD LIBCRUN initdir shared_lib_suffix HPUX_TRUE HPUX_FALSE SOLARIS_TRUE SOLARIS_FALSE PKG_CONFIG ICU_CONFIG NETSNMP_CONFIG nspr_inc nspr_lib nspr_libdir nss_inc nss_lib nss_libdir ldapsdk_inc ldapsdk_lib ldapsdk_libdir ldapsdk_bindir db_inc db_incdir db_lib db_libdir db_bindir db_libver sasl_inc sasl_lib sasl_libdir svrcore_inc svrcore_lib icu_lib icu_inc icu_bin netsnmp_inc netsnmp_lib netsnmp_libdir netsnmp_link brand capbrand vendor LTLIBOBJS'
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT build build_cpu build_vendor build_os host host_cpu host_vendor host_os CXX CXXFLAGS LDFLAGS CPPFLAGS ac_ct_CXX EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CC CFLAGS ac_ct_CC CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE SED EGREP LN_S ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB CPP CXXCPP F77 FFLAGS ac_ct_F77 LIBTOOL LIBOBJS debug_defs BUNDLE_TRUE BUNDLE_FALSE enable_pam_passthru_TRUE enable_pam_passthru_FALSE enable_dna_TRUE enable_dna_FALSE enable_ldapi_TRUE enable_ldapi_FALSE enable_bitwise_TRUE enable_bitwise_FALSE configdir sampledatadir propertydir schemadir serverdir serverplugindir scripttemplatedir perldir infdir defaultuser defaultgroup instconfigdir WINNT_TRUE WINNT_FALSE LIBSOCKET LIBNSL LIBDL LIBCSTD LIBCRUN initdir HPUX_TRUE HPUX_FALSE SOLARIS_TRUE SOLARIS_FALSE PKG_CONFIG ICU_CONFIG NETSNMP_CONFIG nspr_inc nspr_lib nspr_libdir nss_inc nss_lib nss_libdir ldapsdk_inc ldapsdk_lib ldapsdk_libdir ldapsdk_bindir db_inc db_incdir db_lib db_libdir db_bindir db_libver sasl_inc sasl_lib sasl_libdir svrcore_inc svrcore_lib icu_lib icu_inc icu_bin netsnmp_inc netsnmp_lib netsnmp_libdir netsnmp_link brand capbrand vendor LTLIBOBJS'
ac_subst_files=''
# Initialize some variables set by options.
@@ -3836,6 +3836,7 @@ do
done
done
done
+IFS=$as_save_IFS
lt_ac_max=0
lt_ac_count=0
# Add /usr/xpg4/bin/sed as it is typically found on Solaris
@@ -3870,6 +3871,7 @@ done
fi
SED=$lt_cv_path_SED
+
echo "$as_me:$LINENO: result: $SED" >&5
echo "${ECHO_T}$SED" >&6
@@ -4310,7 +4312,7 @@ ia64-*-hpux*)
;;
*-*-irix6*)
# Find out which ABI we are using.
- echo '#line 4313 "configure"' > conftest.$ac_ext
+ echo '#line 4315 "configure"' > conftest.$ac_ext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
@@ -5445,7 +5447,7 @@ fi
# Provide some information about the compiler.
-echo "$as_me:5448:" \
+echo "$as_me:5450:" \
"checking for Fortran 77 compiler version" >&5
ac_compiler=`set X $ac_compile; echo $2`
{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
@@ -6508,11 +6510,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:6511: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:6513: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:6515: \$? = $ac_status" >&5
+ echo "$as_me:6517: \$? = $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.
@@ -6776,11 +6778,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:6779: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:6781: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:6783: \$? = $ac_status" >&5
+ echo "$as_me:6785: \$? = $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.
@@ -6880,11 +6882,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:6883: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:6885: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:6887: \$? = $ac_status" >&5
+ echo "$as_me:6889: \$? = $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
@@ -8345,10 +8347,31 @@ linux*)
# before this can be enabled.
hardcode_into_libs=yes
+ # find out which ABI we are using
+ libsuff=
+ case "$host_cpu" in
+ x86_64*|s390x*|powerpc64*)
+ echo '#line 8354 "configure"' > conftest.$ac_ext
+ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ case `/usr/bin/file conftest.$ac_objext` in
+ *64-bit*)
+ libsuff=64
+ sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+ esac
+
# Append ld.so.conf contents to the search path
if test -f /etc/ld.so.conf; then
- lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
- sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
+ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+ sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra"
fi
# We used to test for /lib/ld.so.1 and disable shared libraries on
@@ -9225,7 +9248,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<EOF
-#line 9228 "configure"
+#line 9251 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -9325,7 +9348,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<EOF
-#line 9328 "configure"
+#line 9351 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -9656,6 +9679,9 @@ CC=$lt_compiler
# Is the compiler the GNU C compiler?
with_gcc=$GCC
+gcc_dir=\`gcc -print-file-name=. | $SED 's,/\.$,,'\`
+gcc_ver=\`gcc -dumpversion\`
+
# An ERE matcher.
EGREP=$lt_EGREP
@@ -9789,11 +9815,11 @@ striplib=$lt_striplib
# Dependencies to place before the objects being linked to create a
# shared library.
-predep_objects=$lt_predep_objects
+predep_objects=\`echo $lt_predep_objects | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\`
# Dependencies to place after the objects being linked to create a
# shared library.
-postdep_objects=$lt_postdep_objects
+postdep_objects=\`echo $lt_postdep_objects | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\`
# Dependencies to place before the objects being linked to create a
# shared library.
@@ -9805,7 +9831,7 @@ postdeps=$lt_postdeps
# The library search path used internally by the compiler when linking
# a shared library.
-compiler_lib_search_path=$lt_compiler_lib_search_path
+compiler_lib_search_path=\`echo $lt_compiler_lib_search_path | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\`
# Method to check whether dependent libraries are shared objects.
deplibs_check_method=$lt_deplibs_check_method
@@ -9885,7 +9911,7 @@ variables_saved_for_relink="$variables_saved_for_relink"
link_all_deplibs=$link_all_deplibs
# Compile-time system search path for libraries
-sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+sys_lib_search_path_spec=\`echo $lt_sys_lib_search_path_spec | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\`
# Run-time system search path for libraries
sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
@@ -11665,11 +11691,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:11668: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:11694: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:11672: \$? = $ac_status" >&5
+ echo "$as_me:11698: \$? = $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.
@@ -11769,11 +11795,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:11772: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:11798: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:11776: \$? = $ac_status" >&5
+ echo "$as_me:11802: \$? = $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
@@ -12301,10 +12327,31 @@ linux*)
# before this can be enabled.
hardcode_into_libs=yes
+ # find out which ABI we are using
+ libsuff=
+ case "$host_cpu" in
+ x86_64*|s390x*|powerpc64*)
+ echo '#line 12334 "configure"' > conftest.$ac_ext
+ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ case `/usr/bin/file conftest.$ac_objext` in
+ *64-bit*)
+ libsuff=64
+ sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+ esac
+
# Append ld.so.conf contents to the search path
if test -f /etc/ld.so.conf; then
- lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
- sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
+ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+ sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra"
fi
# We used to test for /lib/ld.so.1 and disable shared libraries on
@@ -12688,6 +12735,9 @@ CC=$lt_compiler_CXX
# Is the compiler the GNU C compiler?
with_gcc=$GCC_CXX
+gcc_dir=\`gcc -print-file-name=. | $SED 's,/\.$,,'\`
+gcc_ver=\`gcc -dumpversion\`
+
# An ERE matcher.
EGREP=$lt_EGREP
@@ -12821,11 +12871,11 @@ striplib=$lt_striplib
# Dependencies to place before the objects being linked to create a
# shared library.
-predep_objects=$lt_predep_objects_CXX
+predep_objects=\`echo $lt_predep_objects_CXX | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\`
# Dependencies to place after the objects being linked to create a
# shared library.
-postdep_objects=$lt_postdep_objects_CXX
+postdep_objects=\`echo $lt_postdep_objects_CXX | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\`
# Dependencies to place before the objects being linked to create a
# shared library.
@@ -12837,7 +12887,7 @@ postdeps=$lt_postdeps_CXX
# The library search path used internally by the compiler when linking
# a shared library.
-compiler_lib_search_path=$lt_compiler_lib_search_path_CXX
+compiler_lib_search_path=\`echo $lt_compiler_lib_search_path_CXX | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\`
# Method to check whether dependent libraries are shared objects.
deplibs_check_method=$lt_deplibs_check_method
@@ -12917,7 +12967,7 @@ variables_saved_for_relink="$variables_saved_for_relink"
link_all_deplibs=$link_all_deplibs_CXX
# Compile-time system search path for libraries
-sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+sys_lib_search_path_spec=\`echo $lt_sys_lib_search_path_spec | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\`
# Run-time system search path for libraries
sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
@@ -13339,11 +13389,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:13342: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:13392: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:13346: \$? = $ac_status" >&5
+ echo "$as_me:13396: \$? = $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.
@@ -13443,11 +13493,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:13446: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:13496: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:13450: \$? = $ac_status" >&5
+ echo "$as_me:13500: \$? = $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
@@ -14888,10 +14938,31 @@ linux*)
# before this can be enabled.
hardcode_into_libs=yes
+ # find out which ABI we are using
+ libsuff=
+ case "$host_cpu" in
+ x86_64*|s390x*|powerpc64*)
+ echo '#line 14945 "configure"' > conftest.$ac_ext
+ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ case `/usr/bin/file conftest.$ac_objext` in
+ *64-bit*)
+ libsuff=64
+ sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+ esac
+
# Append ld.so.conf contents to the search path
if test -f /etc/ld.so.conf; then
- lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
- sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
+ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+ sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra"
fi
# We used to test for /lib/ld.so.1 and disable shared libraries on
@@ -15275,6 +15346,9 @@ CC=$lt_compiler_F77
# Is the compiler the GNU C compiler?
with_gcc=$GCC_F77
+gcc_dir=\`gcc -print-file-name=. | $SED 's,/\.$,,'\`
+gcc_ver=\`gcc -dumpversion\`
+
# An ERE matcher.
EGREP=$lt_EGREP
@@ -15408,11 +15482,11 @@ striplib=$lt_striplib
# Dependencies to place before the objects being linked to create a
# shared library.
-predep_objects=$lt_predep_objects_F77
+predep_objects=\`echo $lt_predep_objects_F77 | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\`
# Dependencies to place after the objects being linked to create a
# shared library.
-postdep_objects=$lt_postdep_objects_F77
+postdep_objects=\`echo $lt_postdep_objects_F77 | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\`
# Dependencies to place before the objects being linked to create a
# shared library.
@@ -15424,7 +15498,7 @@ postdeps=$lt_postdeps_F77
# The library search path used internally by the compiler when linking
# a shared library.
-compiler_lib_search_path=$lt_compiler_lib_search_path_F77
+compiler_lib_search_path=\`echo $lt_compiler_lib_search_path_F77 | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\`
# Method to check whether dependent libraries are shared objects.
deplibs_check_method=$lt_deplibs_check_method
@@ -15504,7 +15578,7 @@ variables_saved_for_relink="$variables_saved_for_relink"
link_all_deplibs=$link_all_deplibs_F77
# Compile-time system search path for libraries
-sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+sys_lib_search_path_spec=\`echo $lt_sys_lib_search_path_spec | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\`
# Run-time system search path for libraries
sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
@@ -15646,11 +15720,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:15649: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:15723: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:15653: \$? = $ac_status" >&5
+ echo "$as_me:15727: \$? = $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.
@@ -15914,11 +15988,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:15917: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:15991: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:15921: \$? = $ac_status" >&5
+ echo "$as_me:15995: \$? = $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.
@@ -16018,11 +16092,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:16021: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:16095: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:16025: \$? = $ac_status" >&5
+ echo "$as_me:16099: \$? = $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
@@ -17483,10 +17557,31 @@ linux*)
# before this can be enabled.
hardcode_into_libs=yes
+ # find out which ABI we are using
+ libsuff=
+ case "$host_cpu" in
+ x86_64*|s390x*|powerpc64*)
+ echo '#line 17564 "configure"' > conftest.$ac_ext
+ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ case `/usr/bin/file conftest.$ac_objext` in
+ *64-bit*)
+ libsuff=64
+ sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+ esac
+
# Append ld.so.conf contents to the search path
if test -f /etc/ld.so.conf; then
- lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
- sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
+ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+ sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra"
fi
# We used to test for /lib/ld.so.1 and disable shared libraries on
@@ -17870,6 +17965,9 @@ CC=$lt_compiler_GCJ
# Is the compiler the GNU C compiler?
with_gcc=$GCC_GCJ
+gcc_dir=\`gcc -print-file-name=. | $SED 's,/\.$,,'\`
+gcc_ver=\`gcc -dumpversion\`
+
# An ERE matcher.
EGREP=$lt_EGREP
@@ -18003,11 +18101,11 @@ striplib=$lt_striplib
# Dependencies to place before the objects being linked to create a
# shared library.
-predep_objects=$lt_predep_objects_GCJ
+predep_objects=\`echo $lt_predep_objects_GCJ | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\`
# Dependencies to place after the objects being linked to create a
# shared library.
-postdep_objects=$lt_postdep_objects_GCJ
+postdep_objects=\`echo $lt_postdep_objects_GCJ | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\`
# Dependencies to place before the objects being linked to create a
# shared library.
@@ -18019,7 +18117,7 @@ postdeps=$lt_postdeps_GCJ
# The library search path used internally by the compiler when linking
# a shared library.
-compiler_lib_search_path=$lt_compiler_lib_search_path_GCJ
+compiler_lib_search_path=\`echo $lt_compiler_lib_search_path_GCJ | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\`
# Method to check whether dependent libraries are shared objects.
deplibs_check_method=$lt_deplibs_check_method
@@ -18099,7 +18197,7 @@ variables_saved_for_relink="$variables_saved_for_relink"
link_all_deplibs=$link_all_deplibs_GCJ
# Compile-time system search path for libraries
-sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+sys_lib_search_path_spec=\`echo $lt_sys_lib_search_path_spec | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\`
# Run-time system search path for libraries
sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
@@ -18351,6 +18449,9 @@ CC=$lt_compiler_RC
# Is the compiler the GNU C compiler?
with_gcc=$GCC_RC
+gcc_dir=\`gcc -print-file-name=. | $SED 's,/\.$,,'\`
+gcc_ver=\`gcc -dumpversion\`
+
# An ERE matcher.
EGREP=$lt_EGREP
@@ -18484,11 +18585,11 @@ striplib=$lt_striplib
# Dependencies to place before the objects being linked to create a
# shared library.
-predep_objects=$lt_predep_objects_RC
+predep_objects=\`echo $lt_predep_objects_RC | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\`
# Dependencies to place after the objects being linked to create a
# shared library.
-postdep_objects=$lt_postdep_objects_RC
+postdep_objects=\`echo $lt_postdep_objects_RC | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\`
# Dependencies to place before the objects being linked to create a
# shared library.
@@ -18500,7 +18601,7 @@ postdeps=$lt_postdeps_RC
# The library search path used internally by the compiler when linking
# a shared library.
-compiler_lib_search_path=$lt_compiler_lib_search_path_RC
+compiler_lib_search_path=\`echo $lt_compiler_lib_search_path_RC | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\`
# Method to check whether dependent libraries are shared objects.
deplibs_check_method=$lt_deplibs_check_method
@@ -18580,7 +18681,7 @@ variables_saved_for_relink="$variables_saved_for_relink"
link_all_deplibs=$link_all_deplibs_RC
# Compile-time system search path for libraries
-sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+sys_lib_search_path_spec=\`echo $lt_sys_lib_search_path_spec | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\`
# Run-time system search path for libraries
sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
@@ -23088,6 +23189,13 @@ schemadir=/$PACKAGE_NAME/schema
# relative to libdir
perldir=/$PACKAGE_NAME/perl
+# default user, group
+defaultuser=nobody
+defaultgroup=nobody
+
+
+
+
@@ -23133,7 +23241,6 @@ else
fi
-shared_lib_suffix=.so
# Deal with platform dependent defines
# relative to sysconfdir
initdir=/rc.d
@@ -23267,7 +23374,6 @@ cat >>confdefs.h <<\_ACEOF
#define _HPUX_SOURCE 1
_ACEOF
- shared_lib_suffix=.sl
platform="hpux"
;;
sparc-sun-solaris*)
@@ -23353,7 +23459,6 @@ esac
-
if test "$platform" = "hpux"; then
HPUX_TRUE=
HPUX_FALSE='#'
@@ -25889,6 +25994,7 @@ s,@ac_ct_CC@,$ac_ct_CC,;t t
s,@CCDEPMODE@,$CCDEPMODE,;t t
s,@am__fastdepCC_TRUE@,$am__fastdepCC_TRUE,;t t
s,@am__fastdepCC_FALSE@,$am__fastdepCC_FALSE,;t t
+s,@SED@,$SED,;t t
s,@EGREP@,$EGREP,;t t
s,@LN_S@,$LN_S,;t t
s,@ECHO@,$ECHO,;t t
@@ -25923,6 +26029,8 @@ s,@serverplugindir@,$serverplugindir,;t t
s,@scripttemplatedir@,$scripttemplatedir,;t t
s,@perldir@,$perldir,;t t
s,@infdir@,$infdir,;t t
+s,@defaultuser@,$defaultuser,;t t
+s,@defaultgroup@,$defaultgroup,;t t
s,@instconfigdir@,$instconfigdir,;t t
s,@WINNT_TRUE@,$WINNT_TRUE,;t t
s,@WINNT_FALSE@,$WINNT_FALSE,;t t
@@ -25932,7 +26040,6 @@ s,@LIBDL@,$LIBDL,;t t
s,@LIBCSTD@,$LIBCSTD,;t t
s,@LIBCRUN@,$LIBCRUN,;t t
s,@initdir@,$initdir,;t t
-s,@shared_lib_suffix@,$shared_lib_suffix,;t t
s,@HPUX_TRUE@,$HPUX_TRUE,;t t
s,@HPUX_FALSE@,$HPUX_FALSE,;t t
s,@SOLARIS_TRUE@,$SOLARIS_TRUE,;t t
diff --git a/configure.ac b/configure.ac
index c53241de..69574876 100644
--- a/configure.ac
+++ b/configure.ac
@@ -197,6 +197,10 @@ schemadir=/$PACKAGE_NAME/schema
# relative to libdir
perldir=/$PACKAGE_NAME/perl
+# default user, group
+defaultuser=nobody
+defaultgroup=nobody
+
AC_SUBST(configdir)
AC_SUBST(sampledatadir)
AC_SUBST(propertydir)
@@ -207,6 +211,9 @@ AC_SUBST(scripttemplatedir)
AC_SUBST(perldir)
AC_SUBST(infdir)
+AC_SUBST(defaultuser)
+AC_SUBST(defaultgroup)
+
# check for --with-instconfigdir
AC_MSG_CHECKING(for --with-instconfigdir)
AC_ARG_WITH(instconfigdir,
@@ -228,7 +235,6 @@ AC_SUBST(instconfigdir)
# cygnus, mingw, or the like and using cmd.exe as the shell
AM_CONDITIONAL([WINNT], false)
-shared_lib_suffix=.so
# Deal with platform dependent defines
# relative to sysconfdir
initdir=/rc.d
@@ -266,7 +272,6 @@ case $host in
AC_DEFINE([OS_hpux], [1], [OS HP-UX])
AC_DEFINE([_POSIX_C_SOURCE], [199506L], [POSIX revision])
AC_DEFINE([_HPUX_SOURCE], [1], [Source namespace])
- shared_lib_suffix=.sl
platform="hpux"
;;
sparc-sun-solaris*)
@@ -302,7 +307,6 @@ dnl Cstd and Crun are required to link any C++ related code
;;
esac
AC_SUBST(initdir)
-AC_SUBST(shared_lib_suffix)
AM_CONDITIONAL(HPUX,test "$platform" = "hpux")
AM_CONDITIONAL(SOLARIS,test "$platform" = "solaris")
diff --git a/ldap/admin/src/scripts/DialogManager.pm b/ldap/admin/src/scripts/DialogManager.pm
index 7c68cdac..bbf85c9f 100644
--- a/ldap/admin/src/scripts/DialogManager.pm
+++ b/ldap/admin/src/scripts/DialogManager.pm
@@ -94,6 +94,10 @@ sub isBack {
my $self = shift;
my $ans = shift;
+ if (!$ans) {
+ return 0;
+ }
+
# the word "back"
if ($ans =~ /back/i) {
return 1;
diff --git a/ldap/admin/src/scripts/Inf.pm b/ldap/admin/src/scripts/Inf.pm
index b5f10136..4c6bd2c6 100644
--- a/ldap/admin/src/scripts/Inf.pm
+++ b/ldap/admin/src/scripts/Inf.pm
@@ -67,7 +67,7 @@ sub read {
# and the value is the config param value
my $self = shift;
my $filename = shift;
- my $curSection;
+ my $curSection = "";
if ($filename) {
$self->{filename} = $filename;
@@ -75,17 +75,36 @@ sub read {
$filename = $self->{filename};
}
+ my $incontinuation = 0;
+ my $curkey;
open INF, $filename or die "Error: could not open inf file $filename: $!";
while (<INF>) {
- # e.g. [General]
- if (/^\[(.*?)\]/) {
+ my $iscontinuation;
+ chop; # trim trailing newline
+ if (/^\s*$/) { # skip blank/empty lines
+ $incontinuation = 0;
+ next;
+ }
+ if (/^\s*\#/) { # skip comment lines
+ $incontinuation = 0;
+ next;
+ }
+ if (/\\$/) { # line ends in \ - continued on next line
+ chop;
+ $iscontinuation = 1;
+ }
+ if ($incontinuation) {
+ $self->{$curSection}->{$curkey} .= "\n" . $_; # add line in entirety to current value
+ } elsif (/^\[(.*?)\]/) { # e.g. [General]
$curSection = $1;
- } elsif (/^\s*$/) {
- next; # skip blank lines
- } elsif (/^\s*\#/) {
- next; # skip comment lines
- } elsif (/^\s*(.*?)\s*=\s*(.*?)\s*$/) {
- $self->{$curSection}->{$1} = $2;
+ } elsif (/^\s*(.*?)\s*=\s*(.*?)\s*$/) { # key = value
+ $curkey = $1;
+ $self->{$curSection}->{$curkey} = $2;
+ }
+ if ($iscontinuation) { # if line ends with a backslash, continue the data on the next line
+ $incontinuation = 1;
+ } else {
+ $incontinuation = 0;
}
}
close INF;
diff --git a/ldap/admin/src/scripts/Setup.pm.in b/ldap/admin/src/scripts/Setup.pm.in
index 2e1ea646..f1a60719 100644
--- a/ldap/admin/src/scripts/Setup.pm.in
+++ b/ldap/admin/src/scripts/Setup.pm.in
@@ -111,6 +111,7 @@ EOF
sub new {
my $type = shift;
my $self = {};
+ $self->{res} = shift;
my ($debuglevel, $silent, $inffile, $keep, $preonly, $logfile);
my @otherargs;
@@ -147,7 +148,7 @@ sub new {
# arguments override those passed in via an inf file - this
# allows the reuse of .inf files with some parameters overridden
for (@ARGV) {
- if (/^(\w+)\.(\w+)=(.*)$/) { # e.g. section.param=value
+ if (/^(\w_-+)\.(\w_-+)=(.*)$/) { # e.g. section.param=value
$self->{inf}->{$1}->{$2} = $3;
} else { # error
print STDERR "Error: unknown command line option $_\n";
@@ -176,6 +177,11 @@ sub log {
# if you use msg like this:
# msg($WARN, "some message")
# it will go to the screen and to the log at the $WARN level
+# all messages are localizable - you must define a resource key
+# the first string passed to this method is a resource key
+# additional strings are used as "arguments" to that resource key
+# if you want to print un-localizable messages, use debug or write
+# directly to the log or screen
sub msg {
my $self = shift;
my $level = shift;
@@ -189,16 +195,16 @@ sub msg {
unshift @text, $level;
$level = $INFO;
}
+ my $string = $self->{res}->getText(@text);
if ($level) {
- $self->log($level, @text);
+ $self->log($level, $string);
}
- print @text;
+ print $string;
}
sub doExit {
my $self = shift;
- $self->msg($FATAL, "Exiting . . .\n");
- $self->msg("Log file is " . $self->{log}->{filename} . "\n");
+ $self->msg($FATAL, 'setup_exiting', $self->{log}->{filename});
exit 1;
}
diff --git a/ldap/admin/src/scripts/SetupDialogs.pm b/ldap/admin/src/scripts/SetupDialogs.pm.in
index 360c780c..86f9ebae 100644
--- a/ldap/admin/src/scripts/SetupDialogs.pm
+++ b/ldap/admin/src/scripts/SetupDialogs.pm.in
@@ -216,7 +216,7 @@ my $usergroup = new Dialog (
my $username = $self->{manager}->{inf}->{General}->{SuiteSpotUserID};
if (!$username) {
if ($> == 0) { # if root, use the default user
- $username = "\@defaultuser\@";
+ $username = "@defaultuser@";
} else { # if not root, use the user's uid
$username = getlogin;
}
@@ -226,7 +226,7 @@ my $usergroup = new Dialog (
my $groupname = $self->{manager}->{inf}->{General}->{SuiteSpotGroup};
if (!$groupname) {
if ($> == 0) { # if root, use the default group
- $groupname = "\@defaultgroup\@";
+ $groupname = "@defaultgroup@";
} else { # if not root, use the user's gid
$groupname = getgrgid $(;
}
diff --git a/ldap/admin/src/scripts/Util.pm b/ldap/admin/src/scripts/Util.pm.in
index 5217c198..7897c5ab 100644
--- a/ldap/admin/src/scripts/Util.pm
+++ b/ldap/admin/src/scripts/Util.pm.in
@@ -46,9 +46,11 @@ use Mozilla::LDAP::LDIF;
require Exporter;
@ISA = qw(Exporter);
@EXPORT = qw(portAvailable getAvailablePort isValidDN addSuffix getMappedEntries
- process_maptbl check_and_add_entry getMappedEntries);
+ process_maptbl check_and_add_entry getMappedEntries
+ getHashedPassword);
@EXPORT_OK = qw(portAvailable getAvailablePort isValidDN addSuffix getMappedEntries
- process_maptbl check_and_add_entry getMappedEntries);
+ process_maptbl check_and_add_entry getMappedEntries
+ getHashedPassword);
use strict;
@@ -88,7 +90,7 @@ sub isValidDN {
}
sub debug {
- print @_, "\n";
+# print @_, "\n";
}
# delete the subtree starting from the passed entry
@@ -143,10 +145,9 @@ sub comp_entries
next if ( $ignorelist{lc($akey)} );
my $aval0 = $e0->{$akey};
my $aval1 = $e1->{$akey};
- my $amin;
- my $amax;
my $a0max = $#{$aval0};
my $a1max = $#{$aval1};
+ my $amin = $#{$aval0};
if ( $a0max != $a1max )
{
if ( $speciallist{lc($akey)} )
@@ -155,12 +156,10 @@ sub comp_entries
if ( $a0max < $a1max )
{
$amin = $a0max;
- $amax = $a1max;
}
else
{
$amin = $a1max;
- $amax = $a0max;
}
}
else
@@ -168,7 +167,7 @@ sub comp_entries
$rc = -1;
return $rc;
}
- }
+ }
my @sval0 = sort { $a cmp $b } @{$aval0};
my @sval1 = sort { $a cmp $b } @{$aval1};
for ( my $i = 0; $i <= $amin; $i++ )
@@ -609,4 +608,23 @@ sub process_maptbl
return $mapper;
}
+sub getHashedPassword {
+ my $pwd = shift;
+ my $alg = shift;
+
+ if ($pwd =~ /\{\w+\}.+/) {
+ return $pwd; # already hashed
+ }
+
+ my $cmd = "@bindir@/pwdhash";
+ if ($alg) {
+ $cmd .= " -s $alg";
+ }
+ $cmd .= " \'$pwd\'";
+ my $hashedpwd = `$cmd`;
+ chomp($hashedpwd);
+
+ return $hashedpwd;
+}
+
1;
diff --git a/ldap/admin/src/scripts/setup-ds.res.in b/ldap/admin/src/scripts/setup-ds.res.in
index 80eb9fde..1915be3c 100644
--- a/ldap/admin/src/scripts/setup-ds.res.in
+++ b/ldap/admin/src/scripts/setup-ds.res.in
@@ -85,3 +85,5 @@ backend_already_exists = A database backend with the name '%s' already exists.
suffix_already_exists = The suffix '%s' already exists. Config entry DN '%s'.\n\n
error_creating_suffix_backend = Could not create the suffix '%s'. There was an error creating the backend database named '%s' for the suffix. Error: %s\n\n
error_creating_suffix = Could not create the suffix '%s'. Error: %s\n\n
+
+setup_exiting = Exiting . . .\nLog file is '%s'\n\n
diff --git a/ldap/cm/newinst/slapd.inf.in b/ldap/cm/newinst/slapd.inf.in
index 0393da74..bc84c6e6 100644
--- a/ldap/cm/newinst/slapd.inf.in
+++ b/ldap/cm/newinst/slapd.inf.in
@@ -47,12 +47,14 @@ InstanceNamePrefix= Directory Server
NickName= slapd
Version= @PACKAGE_VERSION@
Compatible= 1.0
-BuildNumber= @BUILDNUM@
-Expires= 0
-Security= domestic
-Vendor= @vendor@
+BuildNumber= @NQBUILD_NUM@
Description= @capbrand@ Directory Server
ProductName=Directory Server
+Vendor= @vendor@
+# the rest of these are obsolete, but left here for
+# compatability with the old setuputil
+Expires= 0
+Security= domestic
IsDirLite=false
PrePreInstall= dsktune
PreInstall= ns-config
diff --git a/ldap/ldif/template-bitwise.ldif.in b/ldap/ldif/template-bitwise.ldif.in
new file mode 100644
index 00000000..6087fc2e
--- /dev/null
+++ b/ldap/ldif/template-bitwise.ldif.in
@@ -0,0 +1,10 @@
+dn: cn=Bitwise Plugin,cn=plugins,cn=config
+objectClass: top
+objectClass: nsSlapdPlugin
+objectClass: extensibleObject
+cn: Bitwise Plugin
+nsslapd-pluginPath: libbitwise-plugin
+nsslapd-pluginInitfunc: bitwise_init
+nsslapd-pluginType: matchingRule
+nsslapd-pluginEnabled: on
+
diff --git a/ldap/ldif/template-dnaplugin.ldif.in b/ldap/ldif/template-dnaplugin.ldif.in
new file mode 100644
index 00000000..391afe64
--- /dev/null
+++ b/ldap/ldif/template-dnaplugin.ldif.in
@@ -0,0 +1,11 @@
+dn: cn=Distributed Numeric Assignment Plugin,cn=plugins,cn=config
+objectclass: top
+objectclass: nsSlapdPlugin
+objectclass: extensibleObject
+objectclass: nsContainer
+cn: Distributed Numeric Assignment Plugin
+nsslapd-plugininitfunc: dna_init
+nsslapd-plugintype: preoperation
+nsslapd-pluginenabled: off
+nsslapd-pluginPath: libdna-plugin
+
diff --git a/ldap/ldif/template-dse.ldif.in b/ldap/ldif/template-dse.ldif.in
new file mode 100644
index 00000000..42313e6e
--- /dev/null
+++ b/ldap/ldif/template-dse.ldif.in
@@ -0,0 +1,773 @@
+dn: cn=config
+cn: config
+objectclass:top
+objectclass:extensibleObject
+objectclass:nsslapdConfig
+nsslapd-schemadir: %schema_dir%
+nsslapd-lockdir: %lock_dir%
+nsslapd-tmpdir: %tmp_dir%
+nsslapd-certdir: %cert_dir%
+nsslapd-saslpath: %sasl_path%
+nsslapd-accesslog-logging-enabled: on
+nsslapd-accesslog-maxlogsperdir: 10
+nsslapd-accesslog-mode: 600
+nsslapd-accesslog-maxlogsize: 100
+nsslapd-accesslog-logrotationtime: 1
+nsslapd-accesslog-logrotationtimeunit: day
+nsslapd-accesslog-logrotationsync-enabled: off
+nsslapd-accesslog-logrotationsynchour: 0
+nsslapd-accesslog-logrotationsyncmin: 0
+nsslapd-accesslog: %log_dir%/access
+nsslapd-enquote-sup-oc: off
+nsslapd-localhost: %fqdn%
+nsslapd-schemacheck: 1
+nsslapd-rewrite-rfc1274: off
+nsslapd-return-exact-case: on
+nsslapd-ssl-check-hostname: on
+nsslapd-port: %ds_port%
+nsslapd-localuser: %ds_user%
+nsslapd-errorlog-logging-enabled: on
+nsslapd-errorlog-mode: 600
+nsslapd-errorlog-maxlogsperdir: 2
+nsslapd-errorlog-maxlogsize: 100
+nsslapd-errorlog-logrotationtime: 1
+nsslapd-errorlog-logrotationtimeunit: week
+nsslapd-errorlog-logrotationsync-enabled: off
+nsslapd-errorlog-logrotationsynchour: 0
+nsslapd-errorlog-logrotationsyncmin: 0
+nsslapd-errorlog: %log_dir%/errors
+nsslapd-auditlog: %log_dir%/audit
+nsslapd-auditlog-mode: 600
+nsslapd-auditlog-maxlogsize: 100
+nsslapd-auditlog-logrotationtime: 1
+nsslapd-auditlog-logrotationtimeunit: day
+nsslapd-rootdn: %rootdn%
+nsslapd-maxdescriptors: 1024
+nsslapd-max-filter-nest-level: 40
+nsslapd-rootpw: %ds_passwd%
+
+dn: cn=plugins, cn=config
+objectclass: top
+objectclass: nsContainer
+cn: plugins
+
+dn: cn=Password Storage Schemes,cn=plugins, cn=config
+objectclass: top
+objectclass: nsContainer
+cn: Password Storage Schemes
+
+dn: cn=SSHA,cn=Password Storage Schemes,cn=plugins,cn=config
+objectclass: top
+objectclass: nsSlapdPlugin
+cn: SSHA
+nsslapd-pluginpath: libpwdstorage-plugin
+nsslapd-plugininitfunc: ssha_pwd_storage_scheme_init
+nsslapd-plugintype: pwdstoragescheme
+nsslapd-pluginenabled: on
+
+dn: cn=SSHA256,cn=Password Storage Schemes,cn=plugins,cn=config
+objectclass: top
+objectclass: nsSlapdPlugin
+cn: SSHA256
+nsslapd-pluginpath: libpwdstorage-plugin
+nsslapd-plugininitfunc: ssha256_pwd_storage_scheme_init
+nsslapd-plugintype: pwdstoragescheme
+nsslapd-pluginenabled: on
+
+dn: cn=SSHA384,cn=Password Storage Schemes,cn=plugins,cn=config
+objectclass: top
+objectclass: nsSlapdPlugin
+cn: SSHA384
+nsslapd-pluginpath: libpwdstorage-plugin
+nsslapd-plugininitfunc: ssha384_pwd_storage_scheme_init
+nsslapd-plugintype: pwdstoragescheme
+nsslapd-pluginenabled: on
+
+dn: cn=SSHA512,cn=Password Storage Schemes,cn=plugins,cn=config
+objectclass: top
+objectclass: nsSlapdPlugin
+cn: SSHA512
+nsslapd-pluginpath: libpwdstorage-plugin
+nsslapd-plugininitfunc: ssha512_pwd_storage_scheme_init
+nsslapd-plugintype: pwdstoragescheme
+nsslapd-pluginenabled: on
+
+dn: cn=SHA,cn=Password Storage Schemes,cn=plugins,cn=config
+objectclass: top
+objectclass: nsSlapdPlugin
+cn: SHA
+nsslapd-pluginpath: libpwdstorage-plugin
+nsslapd-plugininitfunc: sha_pwd_storage_scheme_init
+nsslapd-plugintype: pwdstoragescheme
+nsslapd-pluginenabled: on
+
+dn: cn=SHA256,cn=Password Storage Schemes,cn=plugins,cn=config
+objectclass: top
+objectclass: nsSlapdPlugin
+cn: SHA256
+nsslapd-pluginpath: libpwdstorage-plugin
+nsslapd-plugininitfunc: sha256_pwd_storage_scheme_init
+nsslapd-plugintype: pwdstoragescheme
+nsslapd-pluginenabled: on
+
+dn: cn=SHA384,cn=Password Storage Schemes,cn=plugins,cn=config
+objectclass: top
+objectclass: nsSlapdPlugin
+cn: SHA384
+nsslapd-pluginpath: libpwdstorage-plugin
+nsslapd-plugininitfunc: sha384_pwd_storage_scheme_init
+nsslapd-plugintype: pwdstoragescheme
+nsslapd-pluginenabled: on
+
+dn: cn=SHA512,cn=Password Storage Schemes,cn=plugins,cn=config
+objectclass: top
+objectclass: nsSlapdPlugin
+cn: SHA512
+nsslapd-pluginpath: libpwdstorage-plugin
+nsslapd-plugininitfunc: sha512_pwd_storage_scheme_init
+nsslapd-plugintype: pwdstoragescheme
+nsslapd-pluginenabled: on
+
+dn: cn=CRYPT,cn=Password Storage Schemes,cn=plugins,cn=config
+objectclass: top
+objectclass: nsSlapdPlugin
+cn: CRYPT
+nsslapd-pluginpath: libpwdstorage-plugin
+nsslapd-plugininitfunc: crypt_pwd_storage_scheme_init
+nsslapd-plugintype: pwdstoragescheme
+nsslapd-pluginenabled: on
+
+dn: cn=MD5,cn=Password Storage Schemes,cn=plugins,cn=config
+objectclass: top
+objectclass: nsSlapdPlugin
+cn: MD5
+nsslapd-pluginpath: libpwdstorage-plugin
+nsslapd-plugininitfunc: md5_pwd_storage_scheme_init
+nsslapd-plugintype: pwdstoragescheme
+nsslapd-pluginenabled: on
+
+dn: cn=CLEAR,cn=Password Storage Schemes,cn=plugins,cn=config
+objectclass: top
+objectclass: nsSlapdPlugin
+cn: CLEAR
+nsslapd-pluginpath: libpwdstorage-plugin
+nsslapd-plugininitfunc: clear_pwd_storage_scheme_init
+nsslapd-plugintype: pwdstoragescheme
+nsslapd-pluginenabled: on
+
+dn: cn=NS-MTA-MD5,cn=Password Storage Schemes,cn=plugins,cn=config
+objectclass: top
+objectclass: nsSlapdPlugin
+cn: NS-MTA-MD5
+nsslapd-pluginpath: libpwdstorage-plugin
+nsslapd-plugininitfunc: ns_mta_md5_pwd_storage_scheme_init
+nsslapd-plugintype: pwdstoragescheme
+nsslapd-pluginenabled: on
+
+dn: cn=DES,cn=Password Storage Schemes,cn=plugins,cn=config
+objectclass: top
+objectclass: nsSlapdPlugin
+objectclass: extensibleObject
+cn: DES
+nsslapd-pluginpath: libdes-plugin
+nsslapd-plugininitfunc: des_init
+nsslapd-plugintype: reverpwdstoragescheme
+nsslapd-pluginenabled: on
+nsslapd-pluginarg0: nsmultiplexorcredentials
+nsslapd-pluginarg1: nsds5ReplicaCredentials
+nsslapd-pluginid: des-storage-scheme
+
+dn: cn=Case Ignore String Syntax,cn=plugins,cn=config
+objectclass: top
+objectclass: nsSlapdPlugin
+objectclass: extensibleObject
+cn: Case Ignore String Syntax
+nsslapd-pluginpath: libsyntax-plugin
+nsslapd-plugininitfunc: cis_init
+nsslapd-plugintype: syntax
+nsslapd-pluginenabled: on
+
+dn: cn=Case Exact String Syntax,cn=plugins,cn=config
+objectclass: top
+objectclass: nsSlapdPlugin
+objectclass: extensibleObject
+cn: Case Exact String Syntax
+nsslapd-pluginpath: libsyntax-plugin
+nsslapd-plugininitfunc: ces_init
+nsslapd-plugintype: syntax
+nsslapd-pluginenabled: on
+
+dn: cn=Space Insensitive String Syntax,cn=plugins,cn=config
+objectclass: top
+objectclass: nsSlapdPlugin
+objectclass: extensibleObject
+cn: Space Insensitive String Syntax
+nsslapd-pluginpath: libsyntax-plugin
+nsslapd-plugininitfunc: sicis_init
+nsslapd-plugintype: syntax
+nsslapd-pluginenabled: on
+
+dn: cn=Binary Syntax,cn=plugins,cn=config
+objectclass: top
+objectclass: nsSlapdPlugin
+objectclass: extensibleObject
+cn: Binary Syntax
+nsslapd-pluginpath: libsyntax-plugin
+nsslapd-plugininitfunc: bin_init
+nsslapd-plugintype: syntax
+nsslapd-pluginenabled: on
+
+dn: cn=Octet String Syntax,cn=plugins,cn=config
+objectclass: top
+objectclass: nsSlapdPlugin
+objectclass: extensibleObject
+cn: Octet String Syntax
+nsslapd-pluginpath: libsyntax-plugin
+nsslapd-plugininitfunc: octetstring_init
+nsslapd-plugintype: syntax
+nsslapd-pluginenabled: on
+
+dn: cn=Boolean Syntax,cn=plugins,cn=config
+objectclass: top
+objectclass: nsSlapdPlugin
+objectclass: extensibleObject
+cn: Boolean Syntax
+nsslapd-pluginpath: libsyntax-plugin
+nsslapd-plugininitfunc: boolean_init
+nsslapd-plugintype: syntax
+nsslapd-pluginenabled: on
+
+dn: cn=Generalized Time Syntax,cn=plugins,cn=config
+objectclass: top
+objectclass: nsSlapdPlugin
+objectclass: extensibleObject
+cn: Generalized Time Syntax
+nsslapd-pluginpath: libsyntax-plugin
+nsslapd-plugininitfunc: time_init
+nsslapd-plugintype: syntax
+nsslapd-pluginenabled: on
+
+dn: cn=Telephone Syntax,cn=plugins,cn=config
+objectclass: top
+objectclass: nsSlapdPlugin
+objectclass: extensibleObject
+cn: Telephone Syntax
+nsslapd-pluginpath: libsyntax-plugin
+nsslapd-plugininitfunc: tel_init
+nsslapd-plugintype: syntax
+nsslapd-pluginenabled: on
+
+dn: cn=Integer Syntax,cn=plugins,cn=config
+objectclass: top
+objectclass: nsSlapdPlugin
+objectclass: extensibleObject
+cn: Integer Syntax
+nsslapd-pluginpath: libsyntax-plugin
+nsslapd-plugininitfunc: int_init
+nsslapd-plugintype: syntax
+nsslapd-pluginenabled: on
+
+dn: cn=Distinguished Name Syntax,cn=plugins,cn=config
+objectclass: top
+objectclass: nsSlapdPlugin
+objectclass: extensibleObject
+cn: Distinguished Name Syntax
+nsslapd-pluginpath: libsyntax-plugin
+nsslapd-plugininitfunc: dn_init
+nsslapd-plugintype: syntax
+nsslapd-pluginenabled: on
+
+dn: cn=OID Syntax,cn=plugins,cn=config
+objectclass: top
+objectclass: nsSlapdPlugin
+objectclass: extensibleObject
+cn: OID Syntax
+nsslapd-pluginpath: libsyntax-plugin
+nsslapd-plugininitfunc: oid_init
+nsslapd-plugintype: syntax
+nsslapd-pluginenabled: on
+
+dn: cn=URI Syntax,cn=plugins,cn=config
+objectclass: top
+objectclass: nsSlapdPlugin
+objectclass: extensibleObject
+cn: URI Syntax
+nsslapd-pluginpath: libsyntax-plugin
+nsslapd-plugininitfunc: uri_init
+nsslapd-plugintype: syntax
+nsslapd-pluginenabled: on
+
+dn: cn=JPEG Syntax,cn=plugins,cn=config
+objectclass: top
+objectclass: nsSlapdPlugin
+objectclass: extensibleObject
+cn: JPEG Syntax
+nsslapd-pluginpath: libsyntax-plugin
+nsslapd-plugininitfunc: jpeg_init
+nsslapd-plugintype: syntax
+nsslapd-pluginenabled: on
+
+dn: cn=Country String Syntax,cn=plugins,cn=config
+objectclass: top
+objectclass: nsSlapdPlugin
+objectclass: extensibleObject
+cn: Country String Syntax
+nsslapd-pluginpath: libsyntax-plugin
+nsslapd-plugininitfunc: country_init
+nsslapd-plugintype: syntax
+nsslapd-pluginenabled: on
+
+dn: cn=Postal Address Syntax,cn=plugins,cn=config
+objectclass: top
+objectclass: nsSlapdPlugin
+objectclass: extensibleObject
+cn: Postal Address Syntax
+nsslapd-pluginpath: libsyntax-plugin
+nsslapd-plugininitfunc: postal_init
+nsslapd-plugintype: syntax
+nsslapd-pluginenabled: on
+
+dn: cn=State Change Plugin,cn=plugins,cn=config
+objectclass: top
+objectclass: nsSlapdPlugin
+objectclass: extensibleObject
+cn: State Change Plugin
+nsslapd-pluginpath: libstatechange-plugin
+nsslapd-plugininitfunc: statechange_init
+nsslapd-plugintype: postoperation
+nsslapd-pluginenabled: on
+
+dn: cn=Roles Plugin,cn=plugins,cn=config
+objectclass: top
+objectclass: nsSlapdPlugin
+objectclass: extensibleObject
+cn: Roles Plugin
+nsslapd-pluginpath: libroles-plugin
+nsslapd-plugininitfunc: roles_init
+nsslapd-plugintype: object
+nsslapd-pluginenabled: on
+nsslapd-plugin-depends-on-type: database
+nsslapd-plugin-depends-on-named: State Change Plugin
+nsslapd-plugin-depends-on-named: Views
+
+dn: cn=ACL Plugin,cn=plugins,cn=config
+objectclass: top
+objectclass: nsSlapdPlugin
+objectclass: extensibleObject
+cn: ACL Plugin
+nsslapd-pluginpath: libacl-plugin
+nsslapd-plugininitfunc: acl_init
+nsslapd-plugintype: accesscontrol
+nsslapd-pluginenabled: on
+nsslapd-plugin-depends-on-type: database
+
+dn: cn=ACL preoperation,cn=plugins,cn=config
+objectclass: top
+objectclass: nsSlapdPlugin
+objectclass: extensibleObject
+cn: ACL preoperation
+nsslapd-pluginpath: libacl-plugin
+nsslapd-plugininitfunc: acl_preopInit
+nsslapd-plugintype: preoperation
+nsslapd-pluginenabled: on
+nsslapd-plugin-depends-on-type: database
+
+dn: cn=Legacy Replication Plugin,cn=plugins,cn=config
+objectclass: top
+objectclass: nsSlapdPlugin
+objectclass: extensibleObject
+cn: Legacy Replication Plugin
+nsslapd-pluginpath: libreplication-plugin
+nsslapd-plugininitfunc: replication_legacy_plugin_init
+nsslapd-plugintype: object
+nsslapd-pluginenabled: on
+nsslapd-plugin-depends-on-type: database
+nsslapd-plugin-depends-on-named: Multimaster Replication Plugin
+nsslapd-plugin-depends-on-named: Class of Service
+
+dn: cn=Multimaster Replication Plugin,cn=plugins,cn=config
+objectclass: top
+objectclass: nsSlapdPlugin
+objectclass: extensibleObject
+cn: Multimaster Replication Plugin
+nsslapd-pluginpath: libreplication-plugin
+nsslapd-plugininitfunc: replication_multimaster_plugin_init
+nsslapd-plugintype: object
+nsslapd-pluginenabled: on
+nsslapd-plugin-depends-on-named: ldbm database
+nsslapd-plugin-depends-on-named: DES
+nsslapd-plugin-depends-on-named: Class of Service
+
+dn: cn=Retro Changelog Plugin,cn=plugins,cn=config
+objectclass: top
+objectclass: nsSlapdPlugin
+objectclass: extensibleObject
+cn: Retro Changelog Plugin
+nsslapd-pluginpath: libretrocl-plugin
+nsslapd-plugininitfunc: retrocl_plugin_init
+nsslapd-plugintype: object
+nsslapd-pluginenabled: off
+nsslapd-plugin-depends-on-type: database
+nsslapd-plugin-depends-on-named: Class of Service
+
+dn: cn=Class of Service,cn=plugins,cn=config
+objectclass: top
+objectclass: nsSlapdPlugin
+objectclass: extensibleObject
+cn: Class of Service
+nsslapd-pluginpath: libcos-plugin
+nsslapd-plugininitfunc: cos_init
+nsslapd-plugintype: object
+nsslapd-pluginenabled: on
+nsslapd-plugin-depends-on-type: database
+nsslapd-plugin-depends-on-named: State Change Plugin
+nsslapd-plugin-depends-on-named: Views
+
+dn: cn=Views,cn=plugins,cn=config
+objectclass: top
+objectclass: nsSlapdPlugin
+objectclass: extensibleObject
+cn: Views
+nsslapd-pluginpath: libviews-plugin
+nsslapd-plugininitfunc: views_init
+nsslapd-plugintype: object
+nsslapd-pluginenabled: on
+nsslapd-plugin-depends-on-type: database
+nsslapd-plugin-depends-on-named: State Change Plugin
+
+dn: cn=referential integrity postoperation,cn=plugins,cn=config
+objectclass: top
+objectclass: nsSlapdPlugin
+objectclass: extensibleObject
+cn: referential integrity postoperation
+nsslapd-pluginpath: libreferint-plugin
+nsslapd-plugininitfunc: referint_postop_init
+nsslapd-plugintype: postoperation
+nsslapd-pluginenabled: off
+nsslapd-pluginArg0: 0
+nsslapd-pluginArg1: %log_dir%/referint
+nsslapd-pluginArg2: 0
+nsslapd-pluginArg3: member
+nsslapd-pluginArg4: uniquemember
+nsslapd-pluginArg5: owner
+nsslapd-pluginArg6: seeAlso
+nsslapd-plugin-depends-on-type: database
+
+dn: cn=attribute uniqueness,cn=plugins,cn=config
+objectclass: top
+objectclass: nsSlapdPlugin
+objectclass: extensibleObject
+cn: attribute uniqueness
+nsslapd-pluginpath: libattr-unique-plugin
+nsslapd-plugininitfunc: NSUniqueAttr_Init
+nsslapd-plugintype: preoperation
+nsslapd-pluginenabled: off
+nsslapd-pluginarg0: uid
+nsslapd-pluginarg1: %ds_suffix%
+nsslapd-plugin-depends-on-type: database
+
+dn: cn=7-bit check,cn=plugins,cn=config
+objectclass: top
+objectclass: nsSlapdPlugin
+objectclass: extensibleObject
+cn: 7-bit check
+nsslapd-pluginpath: libattr-unique-plugin
+nsslapd-plugininitfunc: NS7bitAttr_Init
+nsslapd-plugintype: preoperation
+nsslapd-pluginenabled: on
+nsslapd-pluginarg0: uid
+nsslapd-pluginarg1: mail
+nsslapd-pluginarg2: userpassword
+nsslapd-pluginarg3: ,
+nsslapd-pluginarg4: %ds_suffix%
+nsslapd-plugin-depends-on-type: database
+
+dn: cn=Internationalization Plugin,cn=plugins,cn=config
+objectclass: top
+objectclass: nsSlapdPlugin
+objectclass: extensibleObject
+cn: Internationalization Plugin
+nsslapd-pluginpath: libcollation-plugin
+nsslapd-plugininitfunc: orderingRule_init
+nsslapd-plugintype: matchingRule
+nsslapd-pluginenabled: on
+nsslapd-pluginarg0: @configdir@/slapd-collations.conf
+
+dn: cn=HTTP Client,cn=plugins,cn=config
+objectclass: top
+objectclass: nsSlapdPlugin
+objectclass: extensibleObject
+cn: HTTP Client
+nsslapd-pluginpath: libhttp-client-plugin
+nsslapd-plugininitfunc: http_client_init
+nsslapd-plugintype: preoperation
+nsslapd-pluginenabled: on
+nsslapd-plugin-depends-on-type: database
+
+dn: cn=Pass Through Authentication,cn=plugins,cn=config
+objectclass: top
+objectclass: nsSlapdPlugin
+objectclass: extensibleObject
+cn: Pass Through Authentication
+nsslapd-pluginpath: libpassthru-plugin
+nsslapd-plugininitfunc: passthruauth_init
+nsslapd-plugintype: preoperation
+nsslapd-pluginenabled: off
+nsslapd-plugin-depends-on-type: database
+
+dn: cn=ldbm database,cn=plugins,cn=config
+objectclass: top
+objectclass: nsSlapdPlugin
+objectclass: extensibleObject
+cn: ldbm database
+nsslapd-pluginpath: libback-ldbm
+nsslapd-plugininitfunc: ldbm_back_init
+nsslapd-plugintype: database
+nsslapd-pluginenabled: on
+nsslapd-plugin-depends-on-type: Syntax
+nsslapd-plugin-depends-on-type: matchingRule
+
+dn: cn=config,cn=ldbm database,cn=plugins,cn=config
+objectclass: top
+objectclass: extensibleObject
+cn: config
+nsslapd-mode: 600
+nsslapd-directory: %db_dir%
+
+dn: cn=default indexes, cn=config,cn=ldbm database,cn=plugins,cn=config
+objectclass: top
+objectclass: extensibleObject
+cn: default indexes
+
+dn: cn=aci,cn=default indexes, cn=config,cn=ldbm database,cn=plugins,cn=config
+objectclass: top
+objectclass: nsIndex
+cn: aci
+nssystemindex: true
+nsindextype: pres
+
+dn: cn=cn,cn=default indexes, cn=config,cn=ldbm database,cn=plugins,cn=config
+objectclass: top
+objectclass: nsIndex
+cn: cn
+nssystemindex: false
+nsindextype: pres
+nsindextype: eq
+nsindextype: sub
+
+dn: cn=entrydn,cn=default indexes, cn=config,cn=ldbm database,cn=plugins,cn=config
+objectclass: top
+objectclass: nsIndex
+cn: entrydn
+nssystemindex: true
+nsindextype: eq
+
+dn: cn=givenName,cn=default indexes, cn=config,cn=ldbm database,cn=plugins,cn=config
+objectclass: top
+objectclass: nsIndex
+cn: givenName
+nssystemindex: false
+nsindextype: pres
+nsindextype: eq
+nsindextype: sub
+
+dn: cn=mail,cn=default indexes, cn=config,cn=ldbm database,cn=plugins,cn=config
+objectclass: top
+objectclass: nsIndex
+cn: mail
+nssystemindex: false
+nsindextype: pres
+nsindextype: eq
+nsindextype: sub
+
+dn: cn=mailAlternateAddress,cn=default indexes, cn=config,cn=ldbm database,cn=plugins,cn=config
+objectclass: top
+objectclass: nsIndex
+cn: mailAlternateAddress
+nssystemindex: false
+nsindextype: eq
+
+dn: cn=mailHost,cn=default indexes, cn=config,cn=ldbm database,cn=plugins,cn=config
+objectclass: top
+objectclass: nsIndex
+cn: mailHost
+nssystemindex: false
+nsindextype: eq
+
+dn: cn=member,cn=default indexes, cn=config,cn=ldbm database,cn=plugins,cn=config
+objectclass: top
+objectclass: nsIndex
+cn: member
+nssystemindex: false
+nsindextype: eq
+
+dn: cn=nsCalXItemId,cn=default indexes, cn=config,cn=ldbm database,cn=plugins,cn=config
+objectclass: top
+objectclass: nsIndex
+cn: nsCalXItemId
+nssystemindex: false
+nsindextype: pres
+nsindextype: eq
+nsindextype: sub
+
+dn: cn=nsLIProfileName,cn=default indexes, cn=config,cn=ldbm database,cn=plugins,cn=config
+objectclass: top
+objectclass: nsIndex
+cn: nsLIProfileName
+nssystemindex: false
+nsindextype: eq
+
+dn: cn=nsUniqueId,cn=default indexes, cn=config,cn=ldbm database,cn=plugins,cn=config
+objectclass: top
+objectclass: nsIndex
+cn: nsUniqueId
+nssystemindex: true
+nsindextype: eq
+
+dn: cn=nswcalCALID,cn=default indexes, cn=config,cn=ldbm database,cn=plugins,cn=config
+objectclass: top
+objectclass: nsIndex
+cn: nswcalCALID
+nssystemindex: false
+nsindextype: eq
+
+dn: cn=numsubordinates,cn=default indexes, cn=config,cn=ldbm database,cn=plugins,cn=config
+objectclass: top
+objectclass: nsIndex
+cn: numsubordinates
+nssystemindex: true
+nsindextype: pres
+
+dn: cn=objectclass,cn=default indexes, cn=config,cn=ldbm database,cn=plugins,cn=config
+objectclass: top
+objectclass: nsIndex
+cn: objectclass
+nssystemindex: true
+nsindextype: eq
+
+dn: cn=owner,cn=default indexes, cn=config,cn=ldbm database,cn=plugins,cn=config
+objectclass: top
+objectclass: nsIndex
+cn: owner
+nssystemindex: false
+nsindextype: eq
+
+dn: cn=parentid,cn=default indexes, cn=config,cn=ldbm database,cn=plugins,cn=config
+objectclass: top
+objectclass: nsIndex
+cn: parentid
+nssystemindex: true
+nsindextype: eq
+
+dn: cn=pipstatus,cn=default indexes, cn=config,cn=ldbm database,cn=plugins,cn=config
+objectclass: top
+objectclass: nsIndex
+cn: pipstatus
+nssystemindex: false
+nsindextype: eq
+
+dn: cn=pipuid,cn=default indexes, cn=config,cn=ldbm database,cn=plugins,cn=config
+objectclass: top
+objectclass: nsIndex
+cn: pipuid
+nssystemindex: false
+nsindextype: pres
+
+dn: cn=seeAlso,cn=default indexes, cn=config,cn=ldbm database,cn=plugins,cn=config
+objectclass: top
+objectclass: nsIndex
+cn: seeAlso
+nssystemindex: false
+nsindextype: eq
+
+dn: cn=sn,cn=default indexes, cn=config,cn=ldbm database,cn=plugins,cn=config
+objectclass: top
+objectclass: nsIndex
+cn: sn
+nssystemindex: false
+nsindextype: pres
+nsindextype: eq
+nsindextype: sub
+
+dn: cn=telephoneNumber,cn=default indexes, cn=config,cn=ldbm database,cn=plugins,cn=config
+objectclass: top
+objectclass: nsIndex
+cn: telephoneNumber
+nssystemindex: false
+nsindextype: pres
+nsindextype: eq
+nsindextype: sub
+
+dn: cn=uid,cn=default indexes, cn=config,cn=ldbm database,cn=plugins,cn=config
+objectclass: top
+objectclass: nsIndex
+cn: uid
+nssystemindex: false
+nsindextype: eq
+
+dn: cn=ntUniqueId,cn=default indexes, cn=config,cn=ldbm database,cn=plugins,cn=config
+objectclass: top
+objectclass: nsIndex
+cn: ntUniqueId
+nssystemindex: false
+nsindextype: eq
+
+dn: cn=ntUserDomainId,cn=default indexes, cn=config,cn=ldbm database,cn=plugins,cn=config
+objectclass: top
+objectclass: nsIndex
+cn: ntUserDomainId
+nssystemindex: false
+nsindextype: eq
+
+dn: cn=uniquemember,cn=default indexes, cn=config,cn=ldbm database,cn=plugins,cn=config
+objectclass: top
+objectclass: nsIndex
+cn: uniquemember
+nssystemindex: false
+nsindextype: eq
+
+dn: cn=monitor, cn=ldbm database, cn=plugins, cn=config
+objectclass: top
+objectclass: extensibleObject
+cn: monitor
+
+dn: cn=database, cn=monitor, cn=ldbm database, cn=plugins, cn=config
+objectclass: top
+objectclass: extensibleObject
+cn: database
+
+dn: cn=chaining database,cn=plugins,cn=config
+objectclass: top
+objectclass: nsSlapdPlugin
+objectclass: extensibleObject
+cn: chaining database
+nsslapd-pluginpath: libchainingdb-plugin
+nsslapd-plugininitfunc: chaining_back_init
+nsslapd-plugintype: database
+nsslapd-pluginenabled: on
+
+dn: cn=config,cn=chaining database,cn=plugins,cn=config
+objectclass: top
+objectclass: extensibleObject
+cn: config
+nsTransmittedControls: 2.16.840.1.113730.3.4.2
+nsTransmittedControls: 2.16.840.1.113730.3.4.9
+nsTransmittedControls: 1.2.840.113556.1.4.473
+nsTransmittedControls: 1.3.6.1.4.1.1466.29539.12
+nsPossibleChainingComponents: cn=resource limits,cn=components,cn=config
+nsPossibleChainingComponents: cn=certificate-based authentication,cn=components,cn=config
+nsPossibleChainingComponents: cn=ACL Plugin,cn=plugins,cn=config
+nsPossibleChainingComponents: cn=old plugin,cn=plugins,cn=config
+nsPossibleChainingComponents: cn=referential integrity postoperation,cn=plugins,cn=config
+nsPossibleChainingComponents: cn=attribute uniqueness,cn=plugins,cn=config
+
+dn: cn=mapping tree,cn=config
+objectclass: top
+objectclass: extensibleObject
+cn: mapping tree
+
+dn: cn=tasks,cn=config
+objectclass: top
+objectclass: extensibleObject
+cn: tasks
+
diff --git a/ldap/ldif/template-ldapi-autobind.ldif.in b/ldap/ldif/template-ldapi-autobind.ldif.in
new file mode 100644
index 00000000..314e6bc2
--- /dev/null
+++ b/ldap/ldif/template-ldapi-autobind.ldif.in
@@ -0,0 +1,22 @@
+dn: cn=config
+changetype: modify
+replace: nsslapd-ldapiautobind
+nsslapd-ldapiautobind: on
+-
+replace: nsslapd-ldapimaprootdn
+nsslapd-ldapimaprootdn: %rootdn%
+-
+replace: nsslapd-ldapimaptoentries
+nsslapd-ldapimaptoentries: off
+-
+replace: nsslapd-ldapiuidnumbertype
+nsslapd-ldapiuidnumbertype: uidNumber
+-
+replace: nsslapd-ldapigidnumbertype
+nsslapd-ldapigidnumbertype: gidNumber
+-
+replace: nsslapd-ldapientrysearchbase
+nsslapd-ldapientrysearchbase: %ds_suffix%
+-
+replace: nsslapd-ldapiautodnsuffix
+nsslapd-ldapiautodnsuffix: cn=peercred,cn=external,cn=auth
diff --git a/ldap/ldif/template-ldapi-default.ldif.in b/ldap/ldif/template-ldapi-default.ldif.in
new file mode 100644
index 00000000..93b76789
--- /dev/null
+++ b/ldap/ldif/template-ldapi-default.ldif.in
@@ -0,0 +1,26 @@
+dn: cn=config
+changetype: modify
+replace: nsslapd-ldapifilepath
+nsslapd-ldapifilepath: %run_dir%/slapd-%dsid%.socket
+-
+replace: nsslapd-ldapilisten
+nsslapd-ldapilisten: off
+-
+replace: nsslapd-ldapimaprootdn
+nsslapd-ldapimaprootdn: cn=Directory Manager
+-
+replace: nsslapd-ldapimaptoentries
+nsslapd-ldapimaptoentries: off
+-
+replace: nsslapd-ldapiuidnumbertype
+nsslapd-ldapiuidnumbertype: uidNumber
+-
+replace: nsslapd-ldapigidnumbertype
+nsslapd-ldapigidnumbertype: gidNumber
+-
+replace: nsslapd-ldapientrysearchbase
+nsslapd-ldapientrysearchbase: dc=example, dc=com
+-
+replace: nsslapd-ldapiautodnsuffix
+nsslapd-ldapiautodnsuffix: cn=peercred,cn=external,cn=auth
+
diff --git a/ldap/ldif/template-ldapi.ldif.in b/ldap/ldif/template-ldapi.ldif.in
new file mode 100644
index 00000000..c41af6ad
--- /dev/null
+++ b/ldap/ldif/template-ldapi.ldif.in
@@ -0,0 +1,7 @@
+dn: cn=config
+changetype: modify
+replace: nsslapd-ldapifilepath
+nsslapd-ldapifilepath: %ldapifilepath%
+-
+replace: nsslapd-ldapilisten
+nsslapd-ldapilisten: on
diff --git a/ldap/ldif/template-pampta.ldif.in b/ldap/ldif/template-pampta.ldif.in
new file mode 100644
index 00000000..2875df7f
--- /dev/null
+++ b/ldap/ldif/template-pampta.ldif.in
@@ -0,0 +1,20 @@
+dn: cn=PAM Pass Through Auth,cn=plugins,cn=config
+objectclass: top
+objectclass: nsSlapdPlugin
+objectclass: extensibleObject
+objectclass: pamConfig
+cn: PAM Pass Through Auth
+nsslapd-pluginpath: libpam-passthru-plugin
+nsslapd-plugininitfunc: pam_passthruauth_init
+nsslapd-plugintype: preoperation
+nsslapd-pluginenabled: off
+nsslapd-pluginLoadGlobal: true
+nsslapd-plugin-depends-on-type: database
+pamMissingSuffix: ALLOW
+pamExcludeSuffix: cn=config
+pamIDMapMethod: RDN
+pamIDAttr: notUsedWithRDNMethod
+pamFallback: FALSE
+pamSecure: TRUE
+pamService: ldapserver
+
diff --git a/ldap/ldif/template-suffix-db.ldif.in b/ldap/ldif/template-suffix-db.ldif.in
new file mode 100644
index 00000000..f30ab8ce
--- /dev/null
+++ b/ldap/ldif/template-suffix-db.ldif.in
@@ -0,0 +1,17 @@
+# replace the Suffix token with your suffix e.g. dc=example,dc=com
+# replace the bename token with your backend name e.g. userRoot
+dn: cn=%ds_bename%,cn=ldbm database,cn=plugins,cn=config
+objectclass: top
+objectclass: extensibleObject
+objectclass: nsBackendInstance
+nsslapd-suffix: %ds_suffix%
+cn: %ds_bename%
+
+dn: cn="%ds_suffix%",cn=mapping tree,cn=config
+objectclass: top
+objectclass: extensibleObject
+objectclass: nsMappingTree
+cn: "%ds_suffix%"
+nsslapd-state: backend
+nsslapd-backend: %ds_bename%
+
diff --git a/ldap/servers/slapd/dynalib.c b/ldap/servers/slapd/dynalib.c
index 2bc1c65d..a939996d 100644
--- a/ldap/servers/slapd/dynalib.c
+++ b/ldap/servers/slapd/dynalib.c
@@ -55,15 +55,36 @@ static struct dynalib {
PRLibrary *dl_handle;
} **libs = NULL;
-static void symload_report_error( char *libpath, char *symbol, char *plugin,
+static void symload_report_error( const char *libpath, char *symbol, char *plugin,
int libopen );
+/* construct a full path and name of a plugin
+ very similar to PR_GetLibraryName except that function inserts
+ the string "lib" at the beginning of name, making that function
+ unsuitable for constructing plugin names
+*/
+static char *get_plugin_name(const char *dir, const char *name);
+
+static void free_plugin_name(char *name)
+{
+ PR_smprintf_free(name);
+}
+
void *
sym_load( char *libpath, char *symbol, char *plugin, int report_errors )
{
return sym_load_with_flags(libpath, symbol, plugin, report_errors, PR_FALSE, PR_FALSE);
}
+/* libpath is the pathname from the plugin config entry - it may be an absolute path
+ or a relative path. It does not have to have the shared lib/dll suffix. The
+ PR_GetLibraryName function will create the correct library name and path, including
+ the correct shared library suffix for the platform. So, for example, if you just
+ pass in "libacl-plugin" as the libpath, and you are running on linux, the code
+ will first test for the existence of "libacl-plugin", then will construct the full
+ pathname to load as "PLUGINDIR/libacl-plugin.so" where PLUGINDIR is set during
+ build time to something like /usr/lib/brand/plugins.
+*/
void *
sym_load_with_flags( char *libpath, char *symbol, char *plugin, int report_errors, PRBool load_now, PRBool load_global )
{
@@ -92,9 +113,17 @@ sym_load_with_flags( char *libpath, char *symbol, char *plugin, int report_error
flags |= PR_LD_GLOBAL;
}
+ if (PR_SUCCESS != PR_Access(libpath, PR_ACCESS_READ_OK)) {
+ libSpec.value.pathname = get_plugin_name(PLUGINDIR, libpath);
+ /* then just handle that failure case with symload_report_error below */
+ }
+
if ( (handle = PR_LoadLibraryWithFlags( libSpec, flags )) == NULL ) {
if ( report_errors ) {
- symload_report_error( libpath, symbol, plugin, 0 /* lib not open */ );
+ symload_report_error( libSpec.value.pathname, symbol, plugin, 0 /* lib not open */ );
+ }
+ if (libSpec.value.pathname != libpath) {
+ free_plugin_name((char *)libSpec.value.pathname); /* cast ok - allocated by get_plugin_name */
}
return( NULL );
}
@@ -108,14 +137,17 @@ sym_load_with_flags( char *libpath, char *symbol, char *plugin, int report_error
handle = PR_FindSymbol( libs[i]->dl_handle, symbol );
if ( NULL == handle && report_errors ) {
- symload_report_error( libpath, symbol, plugin, 1 /* lib open */ );
+ symload_report_error( libSpec.value.pathname, symbol, plugin, 1 /* lib open */ );
+ }
+ if (libSpec.value.pathname != libpath) {
+ free_plugin_name((char *)libSpec.value.pathname); /* cast ok - allocated by PR_GetLibraryName */
}
return handle;
}
static void
-symload_report_error( char *libpath, char *symbol, char *plugin, int libopen )
+symload_report_error( const char *libpath, char *symbol, char *plugin, int libopen )
{
char *errtext = NULL;
PRInt32 errlen, err;
@@ -139,3 +171,22 @@ symload_report_error( char *libpath, char *symbol, char *plugin, int libopen )
libpath, plugin, 0 );
}
}
+
+/* PR_GetLibraryName does almost everything we need, and unfortunately
+ a little bit more - it adds "lib" to be beginning of the library
+ name. So we have to strip that part off.
+*/
+static char *
+get_plugin_name(const char *path, const char *lib)
+{
+ char *fullname = PR_GetLibraryName(path, lib);
+ char *ptr = PL_strrstr(fullname, "/lib");
+
+ if (ptr) {
+ ++ptr; /* now points at the "l" */
+ /* just copy the remainder of the string on top of here */
+ memmove(ptr, ptr+3, strlen(ptr+3)+1);
+ }
+
+ return fullname;
+}
diff --git a/ldap/servers/slapd/tools/pwenc.c b/ldap/servers/slapd/tools/pwenc.c
index c833bb2e..16aa4fc4 100644
--- a/ldap/servers/slapd/tools/pwenc.c
+++ b/ldap/servers/slapd/tools/pwenc.c
@@ -80,7 +80,7 @@ FILE *access_logfp;
struct pw_scheme *pwdhashscheme;
int heflag = 0;
-static int slapd_config(const char *configdir);
+static int slapd_config(const char *configdir, const char *configfile);
static int entry_has_attr_and_value(Slapi_Entry *e, const char *attrname, char *value);
static void
@@ -124,6 +124,41 @@ decode( char *orig )
}
+static slapdFrontendConfig_t *
+init_config(char *configdir)
+{
+ char *abs_configdir = NULL;
+ char *configfile = NULL;
+ char errorbuf[SLAPI_DSE_RETURNTEXT_SIZE];
+ slapdFrontendConfig_t *slapdFrontendConfig = NULL;
+
+ if (configdir == NULL) { /* use default */
+ configdir = TEMPLATEDIR;
+ configfile = "template-dse.ldif";
+ }
+ /* kexcoff: quite the same as slapd_bootstrap_config */
+ FrontendConfig_init();
+
+ abs_configdir = rel2abspath( configdir );
+ if ( config_set_configdir( "configdir (-D)", abs_configdir,
+ errorbuf, 1) != LDAP_SUCCESS ) {
+ fprintf( stderr, "%s\n", errorbuf );
+ return( NULL );
+ }
+ slapi_ch_free((void **)&abs_configdir);
+
+ slapdFrontendConfig = getFrontendConfig();
+ if (0 == slapd_config(slapdFrontendConfig->configdir, configfile)) {
+ fprintf(stderr,
+ "The configuration files in directory %s could not be read or were not found. Please refer to the error log or output for more information.\n",
+ slapdFrontendConfig->configdir);
+ return(NULL);
+ }
+
+ return slapdFrontendConfig;
+}
+
+
int
main( argc, argv )
int argc;
@@ -159,31 +194,22 @@ main( argc, argv )
while (( i = getopt( argc, argv, opts )) != EOF ) {
switch ( i ) {
case 'D':
- /* kexcoff: quite the same as slapd_bootstrap_config */
- FrontendConfig_init();
-
- configdir = rel2abspath( optarg );
- if ( config_set_configdir( "configdir (-D)", configdir,
- errorbuf, 1) != LDAP_SUCCESS ) {
- fprintf( stderr, "%s\n", errorbuf );
- return( 1 );
+ if (slapdFrontendConfig) {
+ fprintf(stderr, "The -D configdir argument must be given only once, and must be the first argument given\n");
+ usage(name);
+ return 1;
}
- slapi_ch_free((void **)&configdir);
-
-
- slapdFrontendConfig = getFrontendConfig();
- if (0 == slapd_config(slapdFrontendConfig->configdir)) {
- fprintf(stderr,
- "The configuration files in directory %s could not be read or were not found. Please refer to the error log or output for more information.\n",
- slapdFrontendConfig->configdir);
+ if (!(slapdFrontendConfig = init_config(optarg))) {
return(1);
}
break;
case 's': /* set hash scheme */
if (!slapdFrontendConfig) {
- usage( name );
- return( 1 );
+ if (!(slapdFrontendConfig = init_config(NULL))) {
+ usage( name );
+ return(1);
+ }
}
if (( pwsp = pw_name2scheme( optarg )) == NULL ) {
fprintf( stderr, "%s: unknown hash scheme \"%s\"\n", name,
@@ -194,19 +220,23 @@ main( argc, argv )
case 'c': /* compare encoded password to password */
if (!slapdFrontendConfig) {
- usage( name );
- return( 1 );
+ if (!(slapdFrontendConfig = init_config(NULL))) {
+ usage( name );
+ return(1);
+ }
}
cpwd = optarg;
break;
case 'H': /* password(s) is(are) hex-encoded */
if (!slapdFrontendConfig) {
- usage( name );
- return( 1 );
+ if (!(slapdFrontendConfig = init_config(NULL))) {
+ usage( name );
+ return(1);
}
- heflag = 1;
- break;
+ }
+ heflag = 1;
+ break;
default:
usage( name );
@@ -214,8 +244,10 @@ main( argc, argv )
}
if (!slapdFrontendConfig) {
- usage( name );
- return( 1 );
+ if (!(slapdFrontendConfig = init_config(NULL))) {
+ usage( name );
+ return(1);
+ }
}
if ( cpwd != NULL ) {
@@ -272,7 +304,7 @@ main( argc, argv )
but it only loads password storage scheme plugins
*/
static int
-slapd_config(const char *configdir)
+slapd_config(const char *configdir, const char *givenconfigfile)
{
char configfile[MAXPATHLEN+1];
PRFileInfo prfinfo;
@@ -284,7 +316,11 @@ slapd_config(const char *configdir)
char *lastp = 0;
char *entrystr = 0;
- PR_snprintf(configfile, sizeof(configfile), "%s/%s", configdir, CONFIG_FILENAME);
+ if (!givenconfigfile) {
+ givenconfigfile = CONFIG_FILENAME;
+ }
+
+ PR_snprintf(configfile, sizeof(configfile), "%s/%s", configdir, givenconfigfile);
if ( (rc = PR_GetFileInfo( configfile, &prfinfo )) != PR_SUCCESS )
{
fprintf(stderr,