diff options
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 @@ -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]) ]) @@ -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, |