[Fedora-directory-commits] ldapserver/ldap/ldif template-dse.ldif.in, 1.1, 1.2
by Doctor Conrad
Author: rmeggins
Update of /cvs/dirsec/ldapserver/ldap/ldif
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv22030
Modified Files:
template-dse.ldif.in
Log Message:
Added nsslapd-ldifdir and nsslapd-bakdir
Index: template-dse.ldif.in
===================================================================
RCS file: /cvs/dirsec/ldapserver/ldap/ldif/template-dse.ldif.in,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- template-dse.ldif.in 19 Jun 2007 18:24:57 -0000 1.1
+++ template-dse.ldif.in 29 Jun 2007 21:59:13 -0000 1.2
@@ -7,6 +7,8 @@
nsslapd-lockdir: %lock_dir%
nsslapd-tmpdir: %tmp_dir%
nsslapd-certdir: %cert_dir%
+nsslapd-ldifdir: %ldif_dir%
+nsslapd-bakdir: %bak_dir%
nsslapd-saslpath: %sasl_path%
nsslapd-accesslog-logging-enabled: on
nsslapd-accesslog-maxlogsperdir: 10
15 years, 11 months
[Fedora-directory-commits] adminserver Makefile.am, 1.20, 1.21 aclocal.m4, 1.15, 1.16 configure, 1.18, 1.19 missing, 1.9, 1.10 install-sh, 1.9, 1.10 depcomp, 1.9, 1.10 compile, 1.8, 1.9 Makefile.in, 1.20, 1.21 config.sub, 1.9, 1.10 config.guess, 1.9, 1.10
by Doctor Conrad
Author: rmeggins
Update of /cvs/dirsec/adminserver
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv16700/adminserver
Modified Files:
Makefile.am aclocal.m4 configure missing install-sh depcomp
compile Makefile.in config.sub config.guess
Log Message:
Resolves: bug 245815
Description: DS Admin Migration framework - Admin Server Migration
Reviewed by: nhosoi (Thanks!)
Fix Description: Created an AdminMigration class to handle all of the Admin Server and Configuration DS specific parts of migration. This should work for both the NES based Admin Server and the Apache based (FDS 1.0) Admin Server.
A lot of the code in AdminServer.pm was reused, or made more generic for use in migration as well as creation/setup.
Added a function to register all directory server instances with the configuration DS. This can be used for update/reconfig too.
Platforms tested: RHEL4
Doc: Yes. We will need to document the migration procedures.
Flag day: Yes. Autotool file changes.
Index: Makefile.am
===================================================================
RCS file: /cvs/dirsec/adminserver/Makefile.am,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -r1.20 -r1.21
--- Makefile.am 28 Jun 2007 16:24:41 -0000 1.20
+++ Makefile.am 29 Jun 2007 21:29:06 -0000 1.21
@@ -143,14 +143,16 @@
admserv/schema/ldif/15dspta.ldif.tmpl \
admserv/schema/ldif/20asdata.ldif.tmpl \
admserv/schema/ldif/21astasks.ldif.tmpl \
- admserv/schema/ldif/22ascommands.ldif.tmpl
+ admserv/schema/ldif/22ascommands.ldif.tmpl \
+ admserv/schema/ldif/asmigrate.ldif.tmpl
inf_DATA = admserv/newinst/src/admin.inf \
admserv/newinst/src/setup.inf \
admserv/newinst/src/register_param.map \
admserv/newinst/src/configdsroot.map \
admserv/newinst/src/adminserver.map \
- admserv/newinst/src/dirserver.map
+ admserv/newinst/src/dirserver.map \
+ admserv/newinst/src/asmigrate.map
cgibin_PROGRAMS = admpw security ugdsconfig ReadLog start_config_ds \
config statpingserv viewdata dsconfig monreplication restartsrv \
@@ -162,12 +164,14 @@
cgibin_SCRIPTS = admserv/cgi-src40/Cgi.pm
nodist_cmdbin_SCRIPTS = admserv/cfgstuff/start-ds-admin admserv/cfgstuff/stop-ds-admin admserv/cfgstuff/restart-ds-admin
-cmdbin_SCRIPTS = admserv/newinst/src/setup-ds-admin.pl
+cmdbin_SCRIPTS = admserv/newinst/src/setup-ds-admin.pl \
+ admserv/newinst/src/migrate-ds-admin.pl
perl_SCRIPTS = admserv/newinst/src/ASDialogs.pm \
admserv/newinst/src/AdminUtil.pm \
admserv/newinst/src/AdminServer.pm \
- admserv/newinst/src/ConfigDSDialogs.pm
+ admserv/newinst/src/ConfigDSDialogs.pm \
+ admserv/newinst/src/AdminMigration.pm
libds_admin_serv_la_SOURCES = $(libbase_a_SOURCES) $(libsi18n_a_SOURCES) $(libadmin_a_SOURCES)
libds_admin_serv_la_LINK = $(MYLINK)
@@ -368,7 +372,8 @@
# ICU resource file installation is handled specially
nodist_property_DATA = $(RESOURCE_BUNDLES_ROOT)
# regular property files go here
-property_DATA = admserv/newinst/src/setup-ds-admin.res
+property_DATA = admserv/newinst/src/setup-ds-admin.res \
+ admserv/newinst/src/migrate-ds-admin.res
# French resource bundles (for the French localization in the future)
#RESOURCE_BUNDLES_FR = foo_fr.res
Index: aclocal.m4
===================================================================
RCS file: /cvs/dirsec/adminserver/aclocal.m4,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -r1.15 -r1.16
--- aclocal.m4 27 Jun 2007 18:32:46 -0000 1.15
+++ aclocal.m4 29 Jun 2007 21:29:06 -0000 1.16
@@ -1578,10 +1578,27 @@
# 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 @@
# 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 @@
# 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 @@
# 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 @@
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 @@
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 @@
done
])
SED=$lt_cv_path_SED
+AC_SUBST([SED])
AC_MSG_RESULT([$SED])
])
Index: configure
===================================================================
RCS file: /cvs/dirsec/adminserver/configure,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- configure 27 Jun 2007 18:32:46 -0000 1.18
+++ configure 29 Jun 2007 21:29:06 -0000 1.19
@@ -468,7 +468,7 @@
ac_default_prefix=/opt/fedora-ds
ac_subdirs_all="$ac_subdirs_all mod_admserv"
ac_subdirs_all="$ac_subdirs_all mod_restartd"
-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 CX!
XCPP F77 FFLAGS ac_ct_F77 LIBTOOL LIBOBJS PACKAGE_BASE_NAME PACKAGE_BASE_VERSION LIBSOCKET LIBNSL LIBCSTD LIBCRUN initdir CXXLINK_REQUIRED_TRUE CXXLINK_REQUIRED_FALSE HTTPD APXS APR_CONFIG PKG_CONFIG ICU_CONFIG nsspcache instconfigdir dslibdir nspr_inc nspr_lib nspr_libdir nss_inc nss_lib nss_libdir ldapsdk_inc ldapsdk_lib ldapsdk_libdir adminutil_inc adminutil_lib adminutil_libdir adminutil_ver icu_lib icu_libdir icu_inc icu_bin curses_lib instancename cgibindir cmdbindir moddir modnssbindir propertydir htmldir icondir manualdir httpdconf mimemagic httpduser httpdgroup logdir piddir pidfile admservport ldifdir admmoddir nssmoddir infdir perldir brand capbrand vendor WINNT_TRUE WINNT_FALSE APACHE22_TRUE APACHE22_FALSE subdirs MOD_ADMSERV_TRUE MOD_ADMSERV_FALSE MOD_RESTARTD_TRUE MOD_RESTARTD_FALSE 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 CP!
P CXXCPP F77 FFLAGS ac_ct_F77 LIBTOOL LIBOBJS PACKAGE_BASE_NAME PACKAGE_BASE_VERSION LIBSOCKET LIBNSL LIBCSTD LIBCRUN initdir CXXLINK_REQUIRED_TRUE CXXLINK_REQUIRED_FALSE HTTPD APXS APR_CONFIG PKG_CONFIG ICU_CONFIG nsspcache instconfigdir dslibdir nspr_inc nspr_lib nspr_libdir nss_inc nss_lib nss_libdir ldapsdk_inc ldapsdk_lib ldapsdk_libdir adminutil_inc adminutil_lib adminutil_libdir adminutil_ver icu_lib icu_libdir icu_inc icu_bin curses_lib instancename cgibindir cmdbindir moddir modnssbindir propertydir htmldir icondir manualdir httpdconf mimemagic httpduser httpdgroup logdir piddir pidfile admservport ldifdir admmoddir nssmoddir infdir perldir brand capbrand vendor WINNT_TRUE WINNT_FALSE APACHE22_TRUE APACHE22_FALSE subdirs MOD_ADMSERV_TRUE MOD_ADMSERV_FALSE MOD_RESTARTD_TRUE MOD_RESTARTD_FALSE LTLIBOBJS'
ac_subst_files=''
# Initialize some variables set by options.
@@ -3832,6 +3832,7 @@
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
@@ -3866,6 +3867,7 @@
fi
SED=$lt_cv_path_SED
+
echo "$as_me:$LINENO: result: $SED" >&5
echo "${ECHO_T}$SED" >&6
@@ -4306,7 +4308,7 @@
;;
*-*-irix6*)
# Find out which ABI we are using.
- echo '#line 4309 "configure"' > conftest.$ac_ext
+ echo '#line 4311 "configure"' > conftest.$ac_ext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
@@ -5441,7 +5443,7 @@
# Provide some information about the compiler.
-echo "$as_me:5444:" \
+echo "$as_me:5446:" \
"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
@@ -6504,11 +6506,11 @@
-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:6507: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:6509: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:6511: \$? = $ac_status" >&5
+ echo "$as_me:6513: \$? = $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.
@@ -6772,11 +6774,11 @@
-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:6775: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:6777: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:6779: \$? = $ac_status" >&5
+ echo "$as_me:6781: \$? = $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.
@@ -6876,11 +6878,11 @@
-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:6879: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:6881: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:6883: \$? = $ac_status" >&5
+ echo "$as_me:6885: \$? = $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
@@ -8341,10 +8343,31 @@
# 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 8350 "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
@@ -9221,7 +9244,7 @@
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<EOF
-#line 9224 "configure"
+#line 9247 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -9321,7 +9344,7 @@
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<EOF
-#line 9324 "configure"
+#line 9347 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -9652,6 +9675,9 @@
# 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
@@ -9785,11 +9811,11 @@
# 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.
@@ -9801,7 +9827,7 @@
# 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
@@ -9881,7 +9907,7 @@
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
@@ -11661,11 +11687,11 @@
-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:11664: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:11690: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:11668: \$? = $ac_status" >&5
+ echo "$as_me:11694: \$? = $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.
@@ -11765,11 +11791,11 @@
-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:11768: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:11794: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:11772: \$? = $ac_status" >&5
+ echo "$as_me:11798: \$? = $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
@@ -12297,10 +12323,31 @@
# 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 12330 "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
@@ -12684,6 +12731,9 @@
# 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
@@ -12817,11 +12867,11 @@
# 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.
@@ -12833,7 +12883,7 @@
# 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
@@ -12913,7 +12963,7 @@
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
@@ -13335,11 +13385,11 @@
-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:13338: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:13388: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:13342: \$? = $ac_status" >&5
+ echo "$as_me:13392: \$? = $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.
@@ -13439,11 +13489,11 @@
-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:13442: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:13492: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:13446: \$? = $ac_status" >&5
+ echo "$as_me:13496: \$? = $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
@@ -14884,10 +14934,31 @@
# 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 14941 "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
@@ -15271,6 +15342,9 @@
# 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
@@ -15404,11 +15478,11 @@
# 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.
@@ -15420,7 +15494,7 @@
# 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
@@ -15500,7 +15574,7 @@
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
@@ -15642,11 +15716,11 @@
-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:15645: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:15719: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:15649: \$? = $ac_status" >&5
+ echo "$as_me:15723: \$? = $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.
@@ -15910,11 +15984,11 @@
-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:15913: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:15987: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:15917: \$? = $ac_status" >&5
+ echo "$as_me:15991: \$? = $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.
@@ -16014,11 +16088,11 @@
-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:16017: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:16091: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:16021: \$? = $ac_status" >&5
+ echo "$as_me:16095: \$? = $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
@@ -17479,10 +17553,31 @@
# 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 17560 "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
@@ -17866,6 +17961,9 @@
# 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
@@ -17999,11 +18097,11 @@
# 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.
@@ -18015,7 +18113,7 @@
# 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
@@ -18095,7 +18193,7 @@
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
@@ -18347,6 +18445,9 @@
# 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
@@ -18480,11 +18581,11 @@
# 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.
@@ -18496,7 +18597,7 @@
# 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
@@ -18576,7 +18677,7 @@
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
@@ -25844,6 +25945,7 @@
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
Index: Makefile.in
===================================================================
RCS file: /cvs/dirsec/adminserver/Makefile.in,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -r1.20 -r1.21
--- Makefile.in 28 Jun 2007 16:24:41 -0000 1.20
+++ Makefile.in 29 Jun 2007 21:29:06 -0000 1.21
@@ -401,6 +401,7 @@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
RANLIB = @RANLIB@
+SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
@@ -582,23 +583,28 @@
admserv/schema/ldif/15dspta.ldif.tmpl \
admserv/schema/ldif/20asdata.ldif.tmpl \
admserv/schema/ldif/21astasks.ldif.tmpl \
- admserv/schema/ldif/22ascommands.ldif.tmpl
+ admserv/schema/ldif/22ascommands.ldif.tmpl \
+ admserv/schema/ldif/asmigrate.ldif.tmpl
inf_DATA = admserv/newinst/src/admin.inf \
admserv/newinst/src/setup.inf \
admserv/newinst/src/register_param.map \
admserv/newinst/src/configdsroot.map \
admserv/newinst/src/adminserver.map \
- admserv/newinst/src/dirserver.map
+ admserv/newinst/src/dirserver.map \
+ admserv/newinst/src/asmigrate.map
bin_SCRIPTS = admserv/newinst/src/register_server.pl
cgibin_SCRIPTS = admserv/cgi-src40/Cgi.pm
nodist_cmdbin_SCRIPTS = admserv/cfgstuff/start-ds-admin admserv/cfgstuff/stop-ds-admin admserv/cfgstuff/restart-ds-admin
-cmdbin_SCRIPTS = admserv/newinst/src/setup-ds-admin.pl
+cmdbin_SCRIPTS = admserv/newinst/src/setup-ds-admin.pl \
+ admserv/newinst/src/migrate-ds-admin.pl
+
perl_SCRIPTS = admserv/newinst/src/ASDialogs.pm \
admserv/newinst/src/AdminUtil.pm \
admserv/newinst/src/AdminServer.pm \
- admserv/newinst/src/ConfigDSDialogs.pm
+ admserv/newinst/src/ConfigDSDialogs.pm \
+ admserv/newinst/src/AdminMigration.pm
libds_admin_serv_la_SOURCES = $(libbase_a_SOURCES) $(libsi18n_a_SOURCES) $(libadmin_a_SOURCES)
libds_admin_serv_la_LINK = $(MYLINK)
@@ -777,7 +783,9 @@
# ICU resource file installation is handled specially
nodist_property_DATA = $(RESOURCE_BUNDLES_ROOT)
# regular property files go here
-property_DATA = admserv/newinst/src/setup-ds-admin.res
+property_DATA = admserv/newinst/src/setup-ds-admin.res \
+ admserv/newinst/src/migrate-ds-admin.res
+
# these are for the config files and scripts that we need to generate and replace
# the paths and other tokens with the real values set during configure/make
15 years, 11 months
[Fedora-directory-commits] adminserver/admserv/newinst/src AdminMigration.pm.in, NONE, 1.1 asmigrate.map.in, NONE, 1.1 migrate-ds-admin.pl.in, NONE, 1.1 migrate-ds-admin.res.in, NONE, 1.1 AdminServer.pm.in, 1.3, 1.4 AdminUtil.pm.in, 1.6, 1.7 setup-ds-admin.pl.in, 1.5, 1.6
by Doctor Conrad
Author: rmeggins
Update of /cvs/dirsec/adminserver/admserv/newinst/src
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv16700/adminserver/admserv/newinst/src
Modified Files:
AdminServer.pm.in AdminUtil.pm.in setup-ds-admin.pl.in
Added Files:
AdminMigration.pm.in asmigrate.map.in migrate-ds-admin.pl.in
migrate-ds-admin.res.in
Log Message:
Resolves: bug 245815
Description: DS Admin Migration framework - Admin Server Migration
Reviewed by: nhosoi (Thanks!)
Fix Description: Created an AdminMigration class to handle all of the Admin Server and Configuration DS specific parts of migration. This should work for both the NES based Admin Server and the Apache based (FDS 1.0) Admin Server.
A lot of the code in AdminServer.pm was reused, or made more generic for use in migration as well as creation/setup.
Added a function to register all directory server instances with the configuration DS. This can be used for update/reconfig too.
Platforms tested: RHEL4
Doc: Yes. We will need to document the migration procedures.
Flag day: Yes. Autotool file changes.
--- NEW FILE AdminMigration.pm.in ---
# BEGIN COPYRIGHT BLOCK
# This Program is free software; you can redistribute it and/or modify it under
# the terms of the GNU General Public License as published by the Free Software
# Foundation; version 2 of the License.
#
# This Program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along with
# this Program; if not, write to the Free Software Foundation, Inc., 59 Temple
# Place, Suite 330, Boston, MA 02111-1307 USA.
#
# In addition, as a special exception, Red Hat, Inc. gives You the additional
# right to link the code of this Program with code not covered under the GNU
# General Public License ("Non-GPL Code") and to distribute linked combinations
# including the two, subject to the limitations in this paragraph. Non-GPL Code
# permitted under this exception must only link to the code of this Program
# through those well defined interfaces identified in the file named EXCEPTION
# found in the source code files (the "Approved Interfaces"). The files of
# Non-GPL Code may instantiate templates or use macros or inline functions from
# the Approved Interfaces without causing the resulting work to be covered by
# the GNU General Public License. Only Red Hat, Inc. may make changes or
# additions to the list of Approved Interfaces. You must obey the GNU General
# Public License in all respects for all of the Program code and other code used
# in conjunction with the Program except the Non-GPL Code covered by this
# exception. If you modify this file, you may extend this exception to your
# version of the file, but you are not obligated to do so. If you do not wish to
# provide this exception without modification, you must delete this exception
# statement from your version and license this file solely under the GPL without
# exception.
#
#
# Copyright (C) 2007 Red Hat, Inc.
# All rights reserved.
# END COPYRIGHT BLOCK
#
package AdminMigration;
require Exporter;
@ISA = qw(Exporter);
@EXPORT = qw(migrateAdminServer);
@EXPORT_OK = qw(migrateAdminServer);
# load perldap
use Mozilla::LDAP::Conn;
use Mozilla::LDAP::Utils qw(normalizeDN);
use Mozilla::LDAP::API qw(:constant ldap_url_parse ldap_explode_dn);
use Migration;
use AdminServer;
use AdminUtil;
use Util;
use SetupLog;
use File::Path;
# tempfiles
use File::Temp qw(tempfile tempdir);
use strict;
# This gathers all of the old information from the old
# scattered config files and updates the corresponding
# parameters in the $mig->{inf}
sub getOldFileInfo {
my $mig = shift;
# assume the config DS has already been migrated
# we need to get our data out of there, and fix it
# as needed
my $oldAdmConf = getAdmConf($mig->{oldsroot} . "/admin-serv/config");
$mig->{inf}->{admin}->{sie} = $oldAdmConf->{sie};
$mig->{inf}->{admin}->{isie} = $oldAdmConf->{isie};
if (defined($oldAdmConf->{ldapStart})) {
$mig->{inf}->{admin}->{ldapStart} = $oldAdmConf->{ldapStart};
}
if (!defined($mig->{inf}->{General}->{FullMachineName}) or
!defined($mig->{inf}->{admin}->{ServerIpAddress}) or
!defined($mig->{inf}->{admin}->{Port})) {
my $oldPset = getPset($oldAdmConf);
if (!defined($mig->{inf}->{General}->{FullMachineName})) {
$mig->{inf}->{General}->{FullMachineName} = $oldPset->{serverhostname};
}
if (!defined($mig->{inf}->{admin}->{ServerIpAddress})) {
$mig->{inf}->{admin}->{ServerIpAddress} = $oldPset->{'configuration.nsserveraddress'};
}
if (!defined($mig->{inf}->{admin}->{Port})) {
$mig->{inf}->{admin}->{Port} = $oldPset->{'configuration.nsserverport'};
}
}
# need sie, isie, config ds url, admin id
if (!defined($mig->{inf}->{General}->{ConfigDirectoryLdapURL})) {
if (!open(DBSWITCH, $mig->{oldsroot} . "/shared/config/dbswitch.conf")) {
$mig->msg('error_opening_dbswitch', $mig->{oldsroot} . "/shared/config/dbswitch.conf", $!);
return 0;
}
while (<DBSWITCH>) {
if (/^directory default (.*)$/) {
$mig->{inf}->{General}->{ConfigDirectoryLdapURL} = $1;
}
}
close(DBSWITCH);
}
if (!defined($mig->{inf}->{General}->{ConfigDirectoryAdminID})) {
if (!open(LDAPCONF, $mig->{oldsroot} . "/shared/config/ldap.conf")) {
$mig->msg('error_opening_ldapconf', $mig->{oldsroot} . "/shared/config/ldap.conf", $!);
return 0;
}
while (<LDAPCONF>) {
if (/^admnm\s+(.*)$/) {
$mig->{inf}->{General}->{ConfigDirectoryAdminID} = $1;
}
}
close(LDAPCONF);
}
if (!defined($mig->{inf}->{General}->{SuiteSpotGroup}) or
!defined($mig->{inf}->{General}->{SuiteSpotUserID})) {
if (!open(SSUSERS, $mig->{oldsroot} . "/shared/config/ssusers.conf")) {
$mig->msg('error_opening_ssusersconf', $mig->{oldsroot} . "/shared/config/ssusers.conf", $!);
return 0;
}
while (<SSUSERS>) {
if (/^SuiteSpotGroup\s+(.*)$/) {
if (!defined($mig->{inf}->{General}->{SuiteSpotGroup})) {
$mig->{inf}->{General}->{SuiteSpotGroup} = $1;
}
}
if (/^SuiteSpotUser\s+(.*)$/) {
if (!defined($mig->{inf}->{General}->{SuiteSpotUserID})) {
$mig->{inf}->{General}->{SuiteSpotUserID} = $1;
}
}
}
close(SSUSERS);
}
if (!defined($mig->{inf}->{General}->{AdminDomain})) {
my @rdns = ldap_explode_dn($mig->{inf}->{admin}->{isie}, 1);
$mig->{inf}->{General}->{AdminDomain} = $rdns[-2];
}
# the old admin server used to run as root - we cannot do that anymore
# with Apache based admin server, so by default just use the SuiteSpotUserID
# i.e. the same user id that the directory server uses
# and if that is not defined, we'll just have to use the default
if (!defined($mig->{inf}->{admin}->{SysUser})) {
$mig->{inf}->{admin}->{SysUser} = $mig->{inf}->{General}->{SuiteSpotUserID} ||
"@httpduser@";
}
if (!defined($mig->{inf}->{General}->{SuiteSpotGroup})) {
$mig->{inf}->{General}->{SuiteSpotGroup} = "@httpdgroup@";
}
return 1;
}
# This is how we extract the sie and isie as the as entries are
# being added
sub migratecb {
my ($context, $entry) = @_;
my @arycontext = ($context);
# always replace the tasks and commands with the new ones
my $dn = $entry->getDN();
if (($entry->getDN() =~ /^cn=Tasks/i) or
($entry->getDN() =~ /^cn=Commands/i)) {
push @arycontext, 1; # means to delete any existing entries first
}
my $rc = check_and_add_entry(\@arycontext, $entry);
return $rc;
}
# The config DS should have already been migrated, including the old
# admin server data. We need to update that information. Some of the
# fields no longer apply (userPassword, configuration.encryption.nsCertFile,
# configuration.encryption.nsKeyFile, serverRoot)
# some of the fields must be removed (any ssl2 fields)
# some of the fields must be changed (nsSuiteSpotUser)
sub migratePset {
my $mig = shift;
my $configdir = shift;
my $inf = $mig->{inf};
my @errs;
my $conn = getConfigDSConn($inf->{General}->{ConfigDirectoryLdapURL},
$inf->{General}->{ConfigDirectoryAdminID},
$inf->{General}->{ConfigDirectoryAdminPwd},
$configdir, \@errs);
if (@errs) {
$mig->msg($FATAL, @errs);
return 0;
}
# add the Admin Server configuration entries
my @ldiffiles = ("@ldifdir(a)/asmigrate.ldif.tmpl",
"@ldifdir(a)/21astasks.ldif.tmpl",
"@ldifdir(a)/22ascommands.ldif.tmpl"
);
my $setupinf = new Inf("@infdir(a)/setup.inf");
my $admininf = new Inf("@infdir(a)/admin.inf");
my $mapper = new Inf("@infdir(a)/asmigrate.map");
$mapper = process_maptbl($mapper, ($inf, $admininf, $setupinf));
if (!$mapper) {
$conn->close();
$mig->msg($FATAL, 'error_creating_asmigration_maptbl');
return 0;
}
# update isie and sie
getMappedEntries($mapper, \@ldiffiles, \&migratecb, $conn);
my $localconf = "$configdir/local.conf";
my $isnew;
if (! -f $localconf) {
$isnew = 1;
}
if (!open(LOCALCONF, ">$localconf")) {
$mig->msg($FATAL, 'error_updating_localconf', $localconf, $!);
return 0;
}
# now get the entries and write them to local.conf
my $entry = $conn->search($inf->{admin}->{sie}, "sub", "(objectclass=*)");
while ($entry) {
updateLocalConf($entry, $inf->{admin}->{sie}, \*LOCALCONF);
$entry = $conn->nextEntry();
}
$conn->close();
close(LOCALCONF);
if ($isnew) {
my $admConf = getAdmConf($configdir);
my $uid = getpwnam $admConf->{sysuser};
chmod 0600, "$localconf";
chown $uid, -1, "$localconf";
}
return 1;
}
sub migrateSecurityFiles {
my $mig = shift;
my $configdir = shift;
my $admConf = getAdmConf($configdir);
my $sie = $admConf->{sie};
my @rdns = ldap_explode_dn($sie, 1);
my $inst = $rdns[0];
my $rc = $mig->migrateSecurityFiles($inst, $configdir);
my $haspinfile;
if (-f $mig->{oldsroot} . "/admin-serv/config/password.conf") {
if (system ("cp -p $mig->{oldsroot}/admin-serv/config/password.conf $configdir/pin.txt")) {
$mig->msg('error_copying_passwordconf', "$mig->{oldsroot}/admin-serv/config/password.conf", $!);
return 0;
}
}
return 1;
}
sub updateConfFileSecInfo {
my $mig = shift;
my $configdir = shift;
my $haspinfile;
for (glob("$configdir/*")) {
if (/pin\.txt$/) {
$haspinfile = 1;
}
}
# if the user has specified a pin file, we need to let nss.conf know
if ($haspinfile) {
if (!open(NSSCONF, "$configdir/nss.conf")) {
$mig->msg('error_opening_nssconf', "$configdir/nss.conf", $!);
return 0;
}
my @nssconf = <NSSCONF>;
close(NSSCONF);
# nss.conf is usually read-only
chmod 0600, "$configdir/nss.conf";
if (!open(NSSCONF, ">$configdir/nss.conf")) {
$mig->msg('error_writing_nssconf', "$configdir/nss.conf", $!);
chmod 0400, "$configdir/nss.conf";
return 0;
}
my $found;
for (@nssconf) {
if (/^NSSPassPhraseDialog/) {
$found = 1;
$_ = "NSSPassPhraseDialog file:$configdir/pin.txt\n";
}
print NSSCONF $_;
}
if (!$found) {
print NSSCONF "NSSPassPhraseDialog file:$configdir/pin.txt\n";
}
close(NSSCONF);
chmod 0400, "$configdir/nss.conf";
}
# update console.conf with security info
my $pset = getPset($configdir);
if (defined($pset->{'configuration.nsserversecurity'}) and
($pset->{'configuration.nsserversecurity'} =~ /on/i)) {
my $certname = $pset->{'configuration.encryption.rsa.nssslpersonalityssl'};
my $clientauth = $pset->{'configuration.encryption.nssslclientauth'};
if (!open(CONSOLECONF, "$configdir/console.conf")) {
$mig->msg('error_opening_consoleconf', "$configdir/console.conf", $!);
return 0;
}
my @consoleconf = <CONSOLECONF>;
close(CONSOLECONF);
if (!open(CONSOLECONF, "> $configdir/console.conf")) {
$mig->msg('error_writing_consoleconf', "$configdir/console.conf", $!);
return 0;
}
for (@consoleconf) {
if (/^NSSEngine/) {
$_ = "NSSEngine on\n";
} elsif (/^NSSNickname/) {
$_ = "NSSNickname $certname\n";
} elsif (/^NSSVerifyClient/) {
if ($clientauth =~ /on/) {
$_ = "NSSVerifyClient require\n";
} else {
$_ = "NSSVerifyClient none\n";
}
}
print CONSOLECONF $_;
}
close(CONSOLECONF);
}
return 1;
}
sub migrateAdmpw {
my $mig = shift;
my $configdir = shift;
if (-f "$mig->{oldsroot}/admin-serv/config/admpw") {
if (system ("cp -p $mig->{oldsroot}/admin-serv/config/admpw $configdir/admpw")) {
$mig->msg('error_copying_admpw', "$mig->{oldsroot}/admin-serv/config/admpw", $!);
return 0;
}
}
return 1;
}
sub migrateAdminServer {
my $mig = shift;
my $configdir = $mig->{inf}->{admin}->{config_dir} ||
$ENV{ADMSERV_CONF_DIR} ||
$mig->{configdir} . "/admin-serv";
my $securitydir = $mig->{inf}->{admin}->{security_dir} ||
$configdir;
my $logdir = $mig->{inf}->{admin}->{log_dir} ||
$ENV{ADMSERV_LOG_DIR} ||
"@logdir@";
my $rundir = $mig->{inf}->{admin}->{run_dir} ||
$ENV{ADMSERV_PID_DIR} ||
"@piddir@";
if (!getOldFileInfo($mig, $configdir)) {
return 0;
}
if (!createASFilesAndDirs($mig, $configdir, $securitydir, $logdir, $rundir)) {
return 0;
}
if (!updateAdmConf({ldapurl => $mig->{inf}->{General}->{ConfigDirectoryLdapURL},
userdn => $mig->{inf}->{General}->{ConfigDirectoryAdminID},
SuiteSpotUserID => $mig->{inf}->{General}->{SuiteSpotUserID},
SuiteSpotGroup => $mig->{inf}->{General}->{SuiteSpotGroup},
sysuser => $mig->{inf}->{admin}->{SysUser},
sysgroup => $mig->{inf}->{General}->{SuiteSpotGroup},
AdminDomain => $mig->{inf}->{General}->{AdminDomain},
sie => $mig->{inf}->{admin}->{sie},
isie => $mig->{inf}->{admin}->{isie},
ldapStart => $mig->{inf}->{admin}->{ldapStart}},
$configdir)) {
return 0;
}
if (!migrateSecurityFiles($mig, $configdir)) {
return 0;
}
if (!migratePset($mig, $configdir)) {
return 0;
}
if (!migrateAdmpw($mig, $configdir)) {
return 0;
}
if (!updateConfFileSecInfo($mig, $configdir)) {
return 0;
}
$mig->msg('updating_httpconf');
if (!updateHttpConfFiles($mig->{inf}->{admin}->{ServerIpAddress},
$mig->{inf}->{admin}->{Port},
$configdir)) {
$mig->msg($FATAL, 'error_updating_httpconf');
return 0;
}
if (!setFileOwnerPerms($mig, $configdir)) {
return 0;
}
if (!startAdminServer($mig, $configdir, $logdir, $rundir)) {
return 0;
}
return 1;
}
# obligatory module true return
1;
--- NEW FILE asmigrate.map.in ---
# BEGIN COPYRIGHT BLOCK
# This Program is free software; you can redistribute it and/or modify it under
# the terms of the GNU General Public License as published by the Free Software
# Foundation; version 2 of the License.
#
# This Program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along with
# this Program; if not, write to the Free Software Foundation, Inc., 59 Temple
# Place, Suite 330, Boston, MA 02111-1307 USA.
#
# In addition, as a special exception, Red Hat, Inc. gives You the additional
# right to link the code of this Program with code not covered under the GNU
# General Public License ("Non-GPL Code") and to distribute linked combinations
# including the two, subject to the limitations in this paragraph. Non-GPL Code
# permitted under this exception must only link to the code of this Program
# through those well defined interfaces identified in the file named EXCEPTION
# found in the source code files (the "Approved Interfaces"). The files of
# Non-GPL Code may instantiate templates or use macros or inline functions from
# the Approved Interfaces without causing the resulting work to be covered by
# the GNU General Public License. Only Red Hat, Inc. may make changes or
# additions to the list of Approved Interfaces. You must obey the GNU General
# Public License in all respects for all of the Program code and other code used
# in conjunction with the Program except the Non-GPL Code covered by this
# exception. If you modify this file, you may extend this exception to your
# version of the file, but you are not obligated to do so. If you do not wish to
# provide this exception without modification, you must delete this exception
# statement from your version and license this file solely under the GPL without
# exception.
#
#
# Copyright (C) 2007 Red Hat, Inc.
# All rights reserved.
# END COPYRIGHT BLOCK
#
# register_param.map:
# This file is used by the register_server.pl script to register the server
# info to the Configuration Directory Server. The server info is stored in
# the (template) ldif files located in @ldifdir@. In case a server entry has
# %...% format parameters, this map table is used to resolve it and replace
# the parameter with the value defined in this file.
#
# [Parameter resolution rules]
# * If the right-hand value is in ` (backquote), the value is eval'ed by perl.
# The output should be stored in $returnvalue to pass to the internal hash.
# * If the right-hand value is in " (doublequote), the value is passed as is.
# * If the right-hand value is not in any quote, the value should be found
# in either of the setup inf file (static) or the install inf file (dynamic).
# * Variables surrounded by @ (e.g., @configdir@) are replaced with the
# system path at the compile time.
# * The right-hand value can contain variables surrounded by % (e.g., %asid%)
# which refers the right-hand value (key) of this map file.
#
fqdn = FullMachineName
domain = AdminDomain
brand = Brand
normbrand = NormBrand
hostname = `use Net::Domain qw(hostname); $returnvalue = hostname();`
vendor = Vendor
timestamp = `use Time::gmtime; my $gm = gmtime; $returnvalue = sprintf ("%04d%02d%02d%02d%02d%02dZ", 1900+$gm->year, 1+$gm->mon, $gm->mday, $gm->hour, $gm->min, $gm->sec);`
asid = `use Net::Domain qw(hostname); $returnvalue = hostname();`
as_port = Port
admpw = "@configdir@/admpw"
as_error = "@logdir@/errors"
as_access = "@logdir@/access"
as_pid = "@pidfile@"
as_console_jar = "%normbrand%-admserv-%as_baseversion%.jar"
as_help_path = "@helpdir@"
as_user = SysUser
as_version = Version
as_baseversion = BaseVersion
as_buildnum = BuildNumber
as_sie = "cn=admin-serv-%asid%, cn=%brand% Administration Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot"
--- NEW FILE migrate-ds-admin.pl.in ---
#!/usr/bin/env perl
# BEGIN COPYRIGHT BLOCK
# This Program is free software; you can redistribute it and/or modify it under
# the terms of the GNU General Public License as published by the Free Software
# Foundation; version 2 of the License.
#
# This Program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along with
# this Program; if not, write to the Free Software Foundation, Inc., 59 Temple
# Place, Suite 330, Boston, MA 02111-1307 USA.
#
# In addition, as a special exception, Red Hat, Inc. gives You the additional
# right to link the code of this Program with code not covered under the GNU
# General Public License ("Non-GPL Code") and to distribute linked combinations
# including the two, subject to the limitations in this paragraph. Non-GPL Code
# permitted under this exception must only link to the code of this Program
# through those well defined interfaces identified in the file named EXCEPTION
# found in the source code files (the "Approved Interfaces"). The files of
# Non-GPL Code may instantiate templates or use macros or inline functions from
# the Approved Interfaces without causing the resulting work to be covered by
# the GNU General Public License. Only Red Hat, Inc. may make changes or
# additions to the list of Approved Interfaces. You must obey the GNU General
# Public License in all respects for all of the Program code and other code used
# in conjunction with the Program except the Non-GPL Code covered by this
# exception. If you modify this file, you may extend this exception to your
# version of the file, but you are not obligated to do so. If you do not wish to
# provide this exception without modification, you must delete this exception
# statement from your version and license this file solely under the GPL without
# exception.
#
#
# Copyright (C) 2007 Red Hat, Inc.
# All rights reserved.
# END COPYRIGHT BLOCK
#
use lib '@perldir@';
use strict;
use AdminMigration;
use AdminUtil;
use AdminServer;
use Migration;
use Resource;
use DSMigration;
my $res = new Resource("@propertydir(a)/migrate-ds-admin.res",
"@propertydir(a)/migrate-ds.res",
"@propertydir(a)/setup-ds-admin.res",
"@propertydir(a)/setup-ds.res");
my $mig = new Migration($res); # parse cmd line etc.
$mig->msg('begin_dsadmin_migration', $mig->{oldsroot});
if (!$mig->{inf}->{General}->{ConfigDirectoryAdminPwd}) {
$mig->msg('error_configds_adminpwd_required');
exit 1;
}
# first, migrate directory server instances
# either the config ds will be one of them, or we
# should have already migrated the config DS
$mig->msg('begin_ds_migration', $mig->{oldsroot});
migrateDS($mig);
# if the config ds is on the local machine, shut down the old one
# and bring up the new one - the rest of migration needs to update it
my $configdsinst = getLocalConfigDS("$mig->{oldsroot}/admin-serv/config");
if ($configdsinst) {
system("$mig->{oldsroot}/slapd-$configdsinst/stop-slapd");
system("@dslibdir@/slapd-$configdsinst/start-slapd");
}
# next, migrate the admin server - this also registers the directory servers
$mig->msg('begin_as_migration', $mig->{oldsroot});
migrateAdminServer($mig);
# next, register/update the new directory servers
# in the config ds
registerManyDSWithConfigDS($mig, "$mig->{configdir}/admin-serv", @{$mig->{instances}});
$mig->msg('end_dsadmin_migration');
END {
if ($mig) {
if (!$mig->{keep}) {
unlink $mig->{inffile};
}
$mig->doExit();
}
}
--- NEW FILE migrate-ds-admin.res.in ---
begin_dsadmin_migration = Beginning migration of Directory and Administration servers from %s . . .\n
end_dsadmin_migration = Directory and Administration servers migration is complete. Please check output and log files for details.\n
begin_as_migration = Beginning migration of Administration server from %s . . .\n
error_configds_adminpwd_required = The password for the configuration directory server admin is required.\
This is usually the password for the user you use to login to the\
console. You can provide this value in one of two ways:\
\
In a .inf file - you can provide migration with a .inf file\
containing this and other data like so:\
[General]\
...\
ConfigDirectoryAdminPwd = thepasswordvalue\
...\
then run migration with -f yourfile.inf
\
On the command line like so:\
command .... General.ConfigDirectoryAdminPwd=thepasswordvalue\n
error_opening_nssconf = Error: could not open NSS config file %s. Error: %s\n
error_writing_nssconf = Error: could not write NSS config file %s. Error: %s\n
registering_dirserver_instances = Registering the migrated directory server instances with the configuration directory server . . .\n
Index: AdminServer.pm.in
===================================================================
RCS file: /cvs/dirsec/adminserver/admserv/newinst/src/AdminServer.pm.in,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- AdminServer.pm.in 22 Jun 2007 01:34:19 -0000 1.3
+++ AdminServer.pm.in 29 Jun 2007 21:29:05 -0000 1.4
@@ -39,8 +39,12 @@
package AdminServer;
require Exporter;
@ISA = qw(Exporter);
-@EXPORT = qw(createAdminServer reconfigAdminServer registerDSWithConfigDS);
-@EXPORT_OK = qw(createAdminServer reconfigAdminServer registerDSWithConfigDS);
+@EXPORT = qw(createAdminServer reconfigAdminServer registerDSWithConfigDS
+ createASFilesAndDirs setFileOwnerPerms updateHttpConfFiles
+ startAdminServer registerManyDSWithConfigDS);
+@EXPORT_OK = qw(createAdminServer reconfigAdminServer registerDSWithConfigDS
+ createASFilesAndDirs setFileOwnerPerms updateHttpConfFiles
+ startAdminServer registerManyDSWithConfigDS);
use File::Path;
# tempfiles
@@ -76,6 +80,39 @@
return 1;
}
+sub setFileOwnerPerms {
+ my $setup = shift;
+ my $configdir = shift;
+ my $admConf = getAdmConf($configdir);
+ my $uid = getpwnam $admConf->{sysuser};
+
+ # chown and chmod other files appropriately
+ for (glob("$configdir/*")) {
+ # these are owned by root
+ next if (/httpd.conf$/);
+ next if (/nss.conf$/);
+ next if (/admserv.conf$/);
+ next if (! -f $_); # should never happen
+ # all other files should be owned by SysUser
+ $! = 0; # clear errno
+ chown $uid, -1, $_;
+ if ($!) {
+ $setup->msg($FATAL, 'error_chowning_file', $_,
+ $admConf->{sysuser}, $!);
+ return 0;
+ }
+ # the files should be writable
+ $! = 0; # clear errno
+ chmod 0600, $_;
+ if ($!) {
+ $setup->msg($FATAL, 'error_chmoding_file', $_, $!);
+ return 0;
+ }
+ }
+
+ return 1;
+}
+
sub createASFilesAndDirs {
my $setup = shift;
my $configdir = shift;
@@ -128,6 +165,13 @@
return 0;
}
+ return 1;
+}
+
+sub makeConfFiles {
+ my $setup = shift;
+ my $configdir = shift;
+
my @start_slapd;
if ($setup->{inf}->{slapd}->{SlapdConfigForMC} =~ /yes/i) {
my $slapdid = $setup->{inf}->{slapd}->{ServerIdentifier};
@@ -156,36 +200,6 @@
return 0;
}
- # chown and chmod other files appropriately
- for (glob("$configdir/*")) {
- # these are owned by root
- next if (/httpd.conf$/);
- next if (/nss.conf$/);
- next if (/admserv.conf$/);
- # these should have been handled above
- next if (/adm.conf$/);
- next if (/admpw$/);
- next if (/local.conf$/);
- next if (! -f $_); # should never happen
- # all other files should be owned by SysUser
- $! = 0; # clear errno
- chown $uid, -1, $_;
- if ($!) {
- $setup->msg($FATAL, 'error_chowning_file', $_,
- $setup->{inf}->{admin}->{SysUser}, $!);
- return 0;
- }
- # the files should be writable
- $! = 0; # clear errno
- my ($ignore, $ignore, $mode, @rest) = stat $_;
- $mode &= 0700; # disallow access to non-owner
- chmod $mode, $_;
- if ($!) {
- $setup->msg($FATAL, 'error_chmoding_file', $_, $!);
- return 0;
- }
- }
-
return 1;
}
@@ -290,7 +304,7 @@
# update other config files - these are the fields which users typically want to
# change during an install or an upgrade, that also must be synced to the Apache
# style config files - we use the config CGI in command line mode because it
-# already has all of the logic to update the files correctly */
+# already has all of the logic to update the files correctly
sub updateHttpConfFiles {
my $serverAddress = shift;
my $port = shift;
@@ -304,7 +318,7 @@
$ENV{LD_LIBRARY_PATH} = "@LIBPATH@:$savepath";
$ENV{SHLIB_PATH} = $ENV{LD_LIBRARY_PATH};
my $cmd = "@cgibindir@/config op=set configuration.nsSuiteSpotUser=\"$user\"";
- if ($port != $origport) { # need to change the port number
+ if (!defined($origport) or ($port != $origport)) { # need to change the port number
$cmd .= " configuration.nsServerPort=\"$port\"";
}
if ($serverAddress) {
@@ -401,6 +415,10 @@
return 0;
}
+ if (!makeConfFiles($setup, $configdir)) {
+ return 0;
+ }
+
if (!registerASWithConfigDS($setup, $configdir)) {
return 0;
}
@@ -413,6 +431,10 @@
return 0;
}
+ if (!setFileOwnerPerms($setup, $configdir)) {
+ return 0;
+ }
+
if (!startAdminServer($setup, $configdir, $logdir, $rundir)) {
return 0;
}
@@ -432,16 +454,21 @@
sub registerDSWithConfigDS {
my $setup = shift;
- my $inf = $setup->{inf};
- my $configdir = shift;
+ my $inf = shift || $setup->{inf};
+ my $configdir = shift || "$setup->{configdir}/admin-serv";
my @errs;
$setup->msg('registering_dirserver');
# open a connection to the configuration directory server
- my $conn = getConfigDSConn($inf->{General}->{ConfigDirectoryLdapURL},
- $inf->{General}->{ConfigDirectoryAdminID},
- $inf->{General}->{ConfigDirectoryAdminPwd},
- $configdir, \@errs);
+ my $conn;
+ if (ref($configdir)) {
+ $conn = $configdir;
+ } else {
+ $conn = getConfigDSConn($inf->{General}->{ConfigDirectoryLdapURL},
+ $inf->{General}->{ConfigDirectoryAdminID},
+ $inf->{General}->{ConfigDirectoryAdminPwd},
+ $configdir, \@errs);
+ }
if (@errs) {
$setup->msg($FATAL, @errs);
@@ -457,6 +484,11 @@
my $mapper = new Inf("@infdir(a)/dirserver.map");
+ if (!$inf->{General}->{ConfigDirectoryLdapURL}) {
+ $inf->{General}->{ConfigDirectoryLdapURL} =
+ $setup->{inf}->{General}->{ConfigDirectoryLdapURL};
+ }
+
$mapper = process_maptbl($mapper, ($inf, $slapdinf, $setupinf));
if (!$mapper) {
$conn->close();
@@ -467,6 +499,50 @@
my $context = [$conn];
getMappedEntries($mapper, \@ldiffiles, \&check_and_add_entry, $context);
- $conn->close();
+ if (!ref($configdir)) {
+ $conn->close();
+ }
+
return 1;
}
+
+# this takes a list of DS instances and registers all of them
+# with the config DS
+sub registerManyDSWithConfigDS {
+ my $setup = shift;
+ my $configdir = shift;
+ my @instances = @_;
+ my @errs;
+ my $inf = $setup->{inf};
+
+ if (!@instances) {
+ return 1;
+ }
+
+ $setup->msg('registering_dirserver_instances');
+ # open a connection to the configuration directory server
+ my $conn = getConfigDSConn($inf->{General}->{ConfigDirectoryLdapURL},
+ $inf->{General}->{ConfigDirectoryAdminID},
+ $inf->{General}->{ConfigDirectoryAdminPwd},
+ $configdir, \@errs);
+
+ if (@errs) {
+ $setup->msg($FATAL, @errs);
+ return 0;
+ }
+
+ my $admConf = getAdmConf($configdir);
+
+ for (@instances) {
+ my $instinf = createInfFromConfig("$setup->{configdir}/$_", $_);
+ $instinf->{General}->{AdminDomain} = $admConf->{AdminDomain};
+ unlink($instinf->{filename});
+ if (!registerDSWithConfigDS($setup, $instinf, $conn)) {
+ return 0;
+ }
+ }
+
+ $conn->close();
+
+ return 0;
+}
Index: AdminUtil.pm.in
===================================================================
RCS file: /cvs/dirsec/adminserver/admserv/newinst/src/AdminUtil.pm.in,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- AdminUtil.pm.in 28 Jun 2007 16:24:41 -0000 1.6
+++ AdminUtil.pm.in 29 Jun 2007 21:29:05 -0000 1.7
@@ -40,9 +40,11 @@
require Exporter;
@ISA = qw(Exporter);
@EXPORT = qw(getAdmConf getConfigDSConn createConfigDS createSubDS
- updateAdmConf updateAdmpw updateLocalConf importCACert);
+ updateAdmConf updateAdmpw updateLocalConf importCACert
+ getLocalConfigDS getPset);
@EXPORT_OK = qw(getAdmConf getConfigDSConn createConfigDS createSubDS
- updateAdmConf updateAdmpw updateLocalConf importCACert);
+ updateAdmConf updateAdmpw updateLocalConf importCACert
+ getLocalConfigDS getPset);
# load perldap
use Mozilla::LDAP::Conn;
@@ -334,6 +336,7 @@
delete $admConf->{configdir}; # don't write this
open(ADMCONF, "> $filename") || die "Can't write $filename: $!";
while (my ($key,$val) = each %{$admConf}) {
+ next if (!defined($key) or !defined($val));
if (ref($val)) {
for my $vv (@{$val}) {
print ADMCONF "$key: $vv\n";
@@ -431,6 +434,7 @@
$attrName = $attr;
}
foreach my $val ($entry->getValues($attr)) {
+ debug(3, "updateLocalConf: writing $attrName: $val\n");
print $localfh "$attrName: $val\n";
}
}
@@ -488,3 +492,22 @@
return @errs;
}
+
+# if the config ds is local to this machine, return
+# the instance name (e.g. "localhost" for slapd-localhost)
+# if not, return null
+sub getLocalConfigDS {
+ my $configdir = shift;
+ my $admConf = getAdmConf($configdir);
+ my $ldapStart = $admConf->{ldapStart};
+ my $inst;
+ if (!$ldapStart) {
+ return $inst; # empty
+ }
+
+ if ($ldapStart =~ /slapd-(.+?)\//) {
+ $inst = $1;
+ }
+
+ return $inst;
+}
Index: setup-ds-admin.pl.in
===================================================================
RCS file: /cvs/dirsec/adminserver/admserv/newinst/src/setup-ds-admin.pl.in,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- setup-ds-admin.pl.in 28 Jun 2007 16:24:41 -0000 1.5
+++ setup-ds-admin.pl.in 29 Jun 2007 21:29:05 -0000 1.6
@@ -48,15 +48,13 @@
use DialogManager;
use AdminUtil;
use AdminServer;
+use Util;
my $res = new Resource("@propertydir(a)/setup-ds.res",
"@propertydir(a)/setup-ds-admin.res");
my $setup = new Setup($res);
-# see what directory server instances we already have configured
-my @dirservers = $setup->getDirServers();
-
# see if there is already a configds
my $admConf = AdminUtil::getAdmConf("$setup->{configdir}/admin-serv");
@@ -147,9 +145,12 @@
$setup->msg('create_dirserver');
# create a directory server instance
-if (system("@bindir(a)/ds_newinst.pl $setup->{inffile}")) {
- $setup->msg($FATAL, 'error_create_dirserver');
+my ($rc, $output) = createDSInstance($setup->{inf});
+if ($rc) {
+ $setup->msg($FATAL, 'error_creating_dsinstance', $rc, $output);
exit 1;
+} else {
+ $setup->msg('created_dsinstance', $output);
}
# setup directory server instance to be the configuration DS
15 years, 11 months
[Fedora-directory-commits] adminserver/admserv/schema/ldif asmigrate.ldif.tmpl, NONE, 1.1
by Doctor Conrad
Author: rmeggins
Update of /cvs/dirsec/adminserver/admserv/schema/ldif
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv16700/adminserver/admserv/schema/ldif
Added Files:
asmigrate.ldif.tmpl
Log Message:
Resolves: bug 245815
Description: DS Admin Migration framework - Admin Server Migration
Reviewed by: nhosoi (Thanks!)
Fix Description: Created an AdminMigration class to handle all of the Admin Server and Configuration DS specific parts of migration. This should work for both the NES based Admin Server and the Apache based (FDS 1.0) Admin Server.
A lot of the code in AdminServer.pm was reused, or made more generic for use in migration as well as creation/setup.
Added a function to register all directory server instances with the configuration DS. This can be used for update/reconfig too.
Platforms tested: RHEL4
Doc: Yes. We will need to document the migration procedures.
Flag day: Yes. Autotool file changes.
--- NEW FILE asmigrate.ldif.tmpl ---
# BEGIN COPYRIGHT BLOCK
# Copyright (C) 2007 Red Hat, Inc.
# All rights reserved.
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# END COPYRIGHT BLOCK
# this form of LDIF change record format is wrong, wrong, wrong
# but were stuck with it because Mozilla perldap LDIF is braindead
# the operation lines must all be adjacent - perldap LDIF will throw
# away values that are not adjacent - so you must have all of the replace:
# lines next to each other, all of the add: lines, delete: lines, etc.
dn: cn=%brand% Administration Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
changetype: modify
replace: nsVendor
replace: nsProductVersion
replace: nsBuildNumber
replace: installationTimeStamp
replace: nsServerMigrationClassname
nsVendor: %vendor%
nsProductVersion: %as_version%
nsBuildNumber: %as_buildnum%
installationTimeStamp: %timestamp%
nsServerMigrationClassname: com.netscape.management.admserv.AdminServerProduct@%as_console_jar%
delete: nsInstalledLocation
dn: cn=admin-serv-%asid%, cn=%brand% Administration Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
changetype: modify
replace: installationTimeStamp
installationTimeStamp: %timestamp%
delete: userPassword
delete: serverRoot
dn: cn=configuration, cn=admin-serv-%asid%, cn=%brand% Administration Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
changetype: modify
replace: nsSuiteSpotUser
replace: nsAdminUsers
replace: nsErrorLog
replace: nsPidLog
replace: nsAccessLog
replace: nsClassName
nsSuiteSpotUser: %as_user%
nsAdminUsers: %admpw%
nsErrorLog: %as_error%
nsPidLog: %as_pid%
nsAccessLog: %as_access%
nsClassname: com.netscape.management.admserv.AdminServer@%as_console_jar%@cn=admin-serv-%asid%, cn=%brand% Administration Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
dn: cn=encryption, cn=configuration, cn=admin-serv-%asid%, cn=%brand% Administration Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
changetype: modify
delete: nsCertFile
delete: nsKeyFile
delete: nsSSL2
delete: nsSSL2Ciphers
15 years, 11 months
[Fedora-directory-commits] ldapserver Makefile.am, 1.46, 1.47 aclocal.m4, 1.38, 1.39 configure, 1.49, 1.50 missing, 1.28, 1.29 install-sh, 1.28, 1.29 compile, 1.28, 1.29 depcomp, 1.28, 1.29 config.sub, 1.27, 1.28 config.guess, 1.27, 1.28 Makefile.in, 1.55, 1.56
by Doctor Conrad
Author: rmeggins
Update of /cvs/dirsec/ldapserver
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv15196/ldapserver
Modified Files:
Makefile.am aclocal.m4 configure missing install-sh compile
depcomp config.sub config.guess Makefile.in
Log Message:
Resolves: bug 245815
Description: DS Admin Migration framework
Reviewed by: nhosoi (Thanks!)
Fix Description: Created a Migration class that is very similar to the Setup class - to act as a sort of global context for the migration process. Moved most of the guts of migrateTo11 into the new DSMigration class and the new migrate-ds.pl - we should deprecate migrateTo11 in favor of migrate-ds.pl. I had to enhance the check_and_add_entry function to handle pseudo-LDIF change records - pseudo because mozilla perldap LDIF has no real LDIF change record support.
Fixed a bug in create_instance.c - creating an instance without starting it was not working if the port number of an existing directory server was supplied.
Added a new method createDSInstance to Util - this just wraps ds_newinst.pl for now.
Platforms tested: RHEL4
Doc: Yes. We will need to document the migration procedures.
Flag day: Yes. Autotool file changes.
Index: Makefile.am
===================================================================
RCS file: /cvs/dirsec/ldapserver/Makefile.am,v
retrieving revision 1.46
retrieving revision 1.47
diff -u -r1.46 -r1.47
--- Makefile.am 21 Jun 2007 21:57:22 -0000 1.46
+++ Makefile.am 29 Jun 2007 21:12:21 -0000 1.47
@@ -186,7 +186,8 @@
ldap/admin/src/scripts/cl-dump.pl \
wrappers/repl-monitor \
ldap/admin/src/scripts/repl-monitor.pl \
- ldap/admin/src/scripts/setup-ds.pl
+ ldap/admin/src/scripts/setup-ds.pl \
+ ldap/admin/src/scripts/migrate-ds.pl
perl_SCRIPTS = ldap/admin/src/scripts/SetupLog.pm \
ldap/admin/src/scripts/Resource.pm \
@@ -197,9 +198,12 @@
ldap/admin/src/scripts/DialogManager.pm \
ldap/admin/src/scripts/Dialog.pm \
ldap/admin/src/scripts/DSDialogs.pm \
- ldap/admin/src/scripts/Setup.pm
+ ldap/admin/src/scripts/Setup.pm \
+ ldap/admin/src/scripts/Migration.pm \
+ ldap/admin/src/scripts/DSMigration.pm
-property_DATA = ldap/admin/src/scripts/setup-ds.res
+property_DATA = ldap/admin/src/scripts/setup-ds.res \
+ ldap/admin/src/scripts/migrate-ds.res
task_SCRIPTS = ldap/admin/src/scripts/template-bak2db \
ldap/admin/src/scripts/template-db2bak \
Index: aclocal.m4
===================================================================
RCS file: /cvs/dirsec/ldapserver/aclocal.m4,v
retrieving revision 1.38
retrieving revision 1.39
diff -u -r1.38 -r1.39
--- aclocal.m4 21 Jun 2007 21:57:22 -0000 1.38
+++ aclocal.m4 29 Jun 2007 21:12:21 -0000 1.39
@@ -1578,10 +1578,27 @@
# 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 @@
# 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 @@
# 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 @@
# 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 @@
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 @@
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 @@
done
])
SED=$lt_cv_path_SED
+AC_SUBST([SED])
AC_MSG_RESULT([$SED])
])
Index: configure
===================================================================
RCS file: /cvs/dirsec/ldapserver/configure,v
retrieving revision 1.49
retrieving revision 1.50
diff -u -r1.49 -r1.50
--- configure 21 Jun 2007 21:57:22 -0000 1.49
+++ configure 29 Jun 2007 21:12:21 -0000 1.50
@@ -465,7 +465,7 @@
#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 CX!
XCPP 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 PACKAGE_BASE_VERSION 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 CP!
P 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 PACKAGE_BASE_VERSION 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 @@
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 @@
fi
SED=$lt_cv_path_SED
+
echo "$as_me:$LINENO: result: $SED" >&5
echo "${ECHO_T}$SED" >&6
@@ -4310,7 +4312,7 @@
;;
*-*-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 @@
# 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 @@
-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 @@
-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 @@
-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 @@
# 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 @@
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 @@
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 @@
# 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 @@
# 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 @@
# 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 @@
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 @@
-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 @@
-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 @@
# 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 @@
# 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 @@
# 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 @@
# 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 @@
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 @@
-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 @@
-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 @@
# 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 @@
# 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 @@
# 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 @@
# 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 @@
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 @@
-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 @@
-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 @@
-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 @@
# 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 @@
# 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 @@
# 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 @@
# 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 @@
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 @@
# 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 @@
# 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 @@
# 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 @@
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
@@ -25895,6 +25996,7 @@
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
Index: Makefile.in
===================================================================
RCS file: /cvs/dirsec/ldapserver/Makefile.in,v
retrieving revision 1.55
retrieving revision 1.56
diff -u -r1.55 -r1.56
--- Makefile.in 21 Jun 2007 21:57:22 -0000 1.55
+++ Makefile.in 29 Jun 2007 21:12:21 -0000 1.56
@@ -877,6 +877,7 @@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
RANLIB = @RANLIB@
+SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
SOLARIS_FALSE = @SOLARIS_FALSE@
@@ -1122,7 +1123,8 @@
ldap/admin/src/scripts/cl-dump.pl \
wrappers/repl-monitor \
ldap/admin/src/scripts/repl-monitor.pl \
- ldap/admin/src/scripts/setup-ds.pl
+ ldap/admin/src/scripts/setup-ds.pl \
+ ldap/admin/src/scripts/migrate-ds.pl
perl_SCRIPTS = ldap/admin/src/scripts/SetupLog.pm \
ldap/admin/src/scripts/Resource.pm \
@@ -1133,9 +1135,13 @@
ldap/admin/src/scripts/DialogManager.pm \
ldap/admin/src/scripts/Dialog.pm \
ldap/admin/src/scripts/DSDialogs.pm \
- ldap/admin/src/scripts/Setup.pm
+ ldap/admin/src/scripts/Setup.pm \
+ ldap/admin/src/scripts/Migration.pm \
+ ldap/admin/src/scripts/DSMigration.pm
+
+property_DATA = ldap/admin/src/scripts/setup-ds.res \
+ ldap/admin/src/scripts/migrate-ds.res
-property_DATA = ldap/admin/src/scripts/setup-ds.res
task_SCRIPTS = ldap/admin/src/scripts/template-bak2db \
ldap/admin/src/scripts/template-db2bak \
ldap/admin/src/scripts/template-db2index \
15 years, 11 months
[Fedora-directory-commits] ldapserver/ldap/admin/src create_instance.c, 1.61, 1.62 migrateTo11.in, 1.1, 1.2
by Doctor Conrad
Author: rmeggins
Update of /cvs/dirsec/ldapserver/ldap/admin/src
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv15196/ldapserver/ldap/admin/src
Modified Files:
create_instance.c migrateTo11.in
Log Message:
Resolves: bug 245815
Description: DS Admin Migration framework
Reviewed by: nhosoi (Thanks!)
Fix Description: Created a Migration class that is very similar to the Setup class - to act as a sort of global context for the migration process. Moved most of the guts of migrateTo11 into the new DSMigration class and the new migrate-ds.pl - we should deprecate migrateTo11 in favor of migrate-ds.pl. I had to enhance the check_and_add_entry function to handle pseudo-LDIF change records - pseudo because mozilla perldap LDIF has no real LDIF change record support.
Fixed a bug in create_instance.c - creating an instance without starting it was not working if the port number of an existing directory server was supplied.
Added a new method createDSInstance to Util - this just wraps ds_newinst.pl for now.
Platforms tested: RHEL4
Doc: Yes. We will need to document the migration procedures.
Flag day: Yes. Autotool file changes.
Index: create_instance.c
===================================================================
RCS file: /cvs/dirsec/ldapserver/ldap/admin/src/create_instance.c,v
retrieving revision 1.61
retrieving revision 1.62
diff -u -r1.61 -r1.62
--- create_instance.c 28 Jun 2007 16:15:26 -0000 1.61
+++ create_instance.c 29 Jun 2007 21:12:22 -0000 1.62
@@ -437,7 +437,7 @@
/* if we don't need to start the server right away, we can skip the
port number checks
*/
- if (!needToStartServer(cf))
+ if (needToStartServer(cf))
{
if( (t = create_instance_checkports(cf)))
{
Index: migrateTo11.in
===================================================================
RCS file: /cvs/dirsec/ldapserver/ldap/admin/src/migrateTo11.in,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- migrateTo11.in 16 Mar 2007 21:32:39 -0000 1.1
+++ migrateTo11.in 29 Jun 2007 21:12:22 -0000 1.2
@@ -294,38 +294,6 @@
# updateDBguardian($newdbdir);
}
-sub copySecurityFiles {
- my $oldroot = shift;
- my $inst = shift;
- my $destdir = shift;
-
- if (! -d "$oldroot/alias") {
- debug(0, "Error: security file directory $oldroot/alias not found\n");
- } elsif (! -d $destdir) {
- debug(0, "Error: new security file directory $destdir not found\n");
- } else {
- debug(1, "Copying $oldroot/alias/$inst-cert8.db to $destdir/cert8.db\n");
- system ("cp -p $oldroot/alias/$inst-cert8.db $destdir/cert8.db") == 0 or
- die "Error: could not copy $oldroot/alias/$inst-cert8.db to $destdir/cert8.db: $!";
- debug(1, "Copying $oldroot/alias/$inst-key3.db to $destdir/key3.db\n");
- system ("cp -p $oldroot/alias/$inst-key3.db $destdir/key3.db") == 0 or
- die "Error: could not copy $oldroot/alias/$inst-key3.db to $destdir/key3.db: $!";
- debug(1, "Copying $oldroot/alias/secmod.db to $destdir/secmod.db\n");
- system ("cp -p $oldroot/alias/secmod.db $destdir/secmod.db") == 0 or
- die "Error: could not copy $oldroot/alias/secmod.db to $destdir/secmod.db: $!";
- if (-f "$oldroot/alias/$inst-pin.txt") {
- debug(1, "Copying $oldroot/alias/$inst-pin.txt to $destdir/pin.txt\n");
- system ("cp -p $oldroot/alias/$inst-pin.txt $destdir/pin.txt") == 0 or
- die "Error: could not copy $oldroot/alias/$inst-pin.txt to $destdir/pin.txt: $!";
- }
- if (-f "$oldroot/shared/config/certmap.conf") {
- debug(1, "Copying $oldroot/shared/config/certmap.conf to $destdir/certmap.conf\n");
- system ("cp -p $oldroot/shared/config/certmap.conf $destdir/certmap.conf") == 0 or
- die "Error: could not copy $oldroot/shared/config/certmap.conf to $destdir/certmap.conf: $!";
- }
- }
-}
-
sub copyChangelogDB {
my $oldroot = shift;
my $inst = shift;
15 years, 11 months
[Fedora-directory-commits] ldapserver/ldap/admin/src/scripts DSMigration.pm.in, NONE, 1.1 Migration.pm.in, NONE, 1.1 migrate-ds.pl.in, NONE, 1.1 migrate-ds.res, NONE, 1.1 Setup.pm.in, 1.7, 1.8 SetupLog.pm, 1.1, 1.2 Util.pm.in, 1.3, 1.4 setup-ds.pl.in, 1.2, 1.3 setup-ds.res.in, 1.4, 1.5
by Doctor Conrad
Author: rmeggins
Update of /cvs/dirsec/ldapserver/ldap/admin/src/scripts
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv15196/ldapserver/ldap/admin/src/scripts
Modified Files:
Setup.pm.in SetupLog.pm Util.pm.in setup-ds.pl.in
setup-ds.res.in
Added Files:
DSMigration.pm.in Migration.pm.in migrate-ds.pl.in
migrate-ds.res
Log Message:
Resolves: bug 245815
Description: DS Admin Migration framework
Reviewed by: nhosoi (Thanks!)
Fix Description: Created a Migration class that is very similar to the Setup class - to act as a sort of global context for the migration process. Moved most of the guts of migrateTo11 into the new DSMigration class and the new migrate-ds.pl - we should deprecate migrateTo11 in favor of migrate-ds.pl. I had to enhance the check_and_add_entry function to handle pseudo-LDIF change records - pseudo because mozilla perldap LDIF has no real LDIF change record support.
Fixed a bug in create_instance.c - creating an instance without starting it was not working if the port number of an existing directory server was supplied.
Added a new method createDSInstance to Util - this just wraps ds_newinst.pl for now.
Platforms tested: RHEL4
Doc: Yes. We will need to document the migration procedures.
Flag day: Yes. Autotool file changes.
--- NEW FILE DSMigration.pm.in ---
# BEGIN COPYRIGHT BLOCK
# This Program is free software; you can redistribute it and/or modify it under
# the terms of the GNU General Public License as published by the Free Software
# Foundation; version 2 of the License.
#
# This Program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along with
# this Program; if not, write to the Free Software Foundation, Inc., 59 Temple
# Place, Suite 330, Boston, MA 02111-1307 USA.
#
# In addition, as a special exception, Red Hat, Inc. gives You the additional
# right to link the code of this Program with code not covered under the GNU
# General Public License ("Non-GPL Code") and to distribute linked combinations
# including the two, subject to the limitations in this paragraph. Non-GPL Code
# permitted under this exception must only link to the code of this Program
# through those well defined interfaces identified in the file named EXCEPTION
# found in the source code files (the "Approved Interfaces"). The files of
# Non-GPL Code may instantiate templates or use macros or inline functions from
# the Approved Interfaces without causing the resulting work to be covered by
# the GNU General Public License. Only Red Hat, Inc. may make changes or
# additions to the list of Approved Interfaces. You must obey the GNU General
# Public License in all respects for all of the Program code and other code used
# in conjunction with the Program except the Non-GPL Code covered by this
# exception. If you modify this file, you may extend this exception to your
# version of the file, but you are not obligated to do so. If you do not wish to
# provide this exception without modification, you must delete this exception
# statement from your version and license this file solely under the GPL without
# exception.
#
#
# Copyright (C) 2007 Red Hat, Inc.
# All rights reserved.
# END COPYRIGHT BLOCK
#
###########################
#
# This perl module provides a way to set up a new installation after
# the binaries have already been extracted. This is typically after
# using native packaging support to install the package e.g. RPM,
# pkgadd, depot, etc. This script will show the license, readme,
# dsktune, then run the usual setup pre and post installers.
#
##########################
package DSMigration;
use Migration;
use Util;
use Inf;
# tempfiles
use File::Temp qw(tempfile tempdir);
# load perldap
use Mozilla::LDAP::Conn;
use Mozilla::LDAP::Utils qw(normalizeDN);
use Mozilla::LDAP::API qw(ldap_explode_dn);
use Mozilla::LDAP::LDIF;
use Exporter;
@ISA = qw(Exporter);
@EXPORT = qw(migrateDS);
@EXPORT_OK = qw(migrateDS);
use strict;
use SetupLog;
use Util;
# these are the attributes for which we will always use
# the new value, or which do not apply anymore
my %ignoreOld =
(
'nsslapd-errorlog' => 'nsslapd-errorlog',
'nsslapd-accesslog' => 'nsslapd-accesslog',
'nsslapd-auditlog' => 'nsslapd-auditlog',
'nskeyfile' => 'nsKeyfile',
'nscertfile' => 'nsCertfile',
'nsslapd-pluginpath' => 'nsslapd-pluginPath',
'nsslapd-plugintype' => 'nsslapd-pluginType',
'nsslapd-pluginversion' => 'nsslapd-pluginVersion',
'nsslapd-plugin-depends-on-named' => 'nsslapd-plugin-depends-on-named',
# these are new attrs that we should just pass through
'nsslapd-schemadir' => 'nsslapd-schemadir',
'nsslapd-lockdir' => 'nsslapd-lockdir',
'nsslapd-tmpdir' => 'nsslapd-tmpdir',
'nsslapd-certdir' => 'nsslapd-certdir',
'nsslapd-ldapifilepath' => 'nsslapd-ldapifilepath',
'nsslapd-ldapilisten' => 'nsslapd-ldapilisten',
'nsslapd-ldapiautobind' => 'nsslapd-ldapiautobind',
'nsslapd-ldapimaprootdn' => 'nsslapd-ldapimaprootdn',
'nsslapd-ldapimaptoentries' => 'nsslapd-ldapimaptoentries',
'nsslapd-ldapiuidnumbertype' => 'nsslapd-ldapiuidnumbertype',
'nsslapd-ldapigidnumbertype' => 'nsslapd-ldapigidnumbertype',
'nsslapd-ldapientrysearchbase' => 'nsslapd-ldapientrysearchbase',
'nsslapd-ldapiautodnsuffix' => 'nsslapd-ldapiautodnsuffix'
);
# these are the attributes for which we will always use
# the old value
my %alwaysUseOld =
(
'aci' => 'aci'
);
my $pkgname; # global used in several different places - set in migrateDS
my $oldsroot; # global used in several different places - set in migrateDS
sub getNewDbDir {
my ($ent, $attr, $inst) = @_;
my %objclasses = map { lc($_) => $_ } $ent->getValues('objectclass');
my $cn = $ent->getValues('cn');
my $newval;
if ($objclasses{nsbackendinstance}) {
$newval = "@localstatedir@/lib/$pkgname/$inst/db/$cn";
} elsif (lc $cn eq 'config') {
$newval = "@localstatedir@/lib/$pkgname/$inst/db";
} elsif (lc $cn eq 'changelog5') {
$newval = "@localstatedir@/lib/$pkgname/$inst/cldb";
}
debug(2, "New value [$newval] for attr $attr in entry ", $ent->getDN(), "\n");
return $newval;
}
sub migrateCredentials {
my ($ent, $attr, $inst) = @_;
my $oldval = $ent->getValues($attr);
debug(3, "Executing migratecred -o $oldsroot/$inst -n @instconfigdir@/$inst -c $oldval . . .\n");
my $newval = `migratecred -o $oldsroot/$inst -n @instconfigdir@/$inst -c $oldval`;
debug(3, "Converted old value [$oldval] to new value [$newval] for attr $attr in entry ", $ent->getDN(), "\n");
return $newval;
}
# these are attributes that we have to transform from
# the old value to the new value (e.g. a pathname)
# The key of this hash is the attribute name. The value
# is an anonymous sub which takes two arguments - the entry
# and the old value. The return value of the sub is
# the new value
my %transformAttr =
(
'nsslapd-directory' => \&getNewDbDir,
'nsslapd-db-logdirectory' => \&getNewDbDir,
'nsslapd-changelogdir' => \&getNewDbDir,
'nsds5replicacredentials' => \&migrateCredentials,
'nsmultiplexorcredentials' => \&migrateCredentials
);
sub copyDatabaseDirs {
my $srcdir = shift;
my $destdir = shift;
if (-d $srcdir && ! -d $destdir) {
debug(1, "Copying database directory $srcdir to $destdir\n");
system ("cp -p -r $srcdir $destdir") == 0 or
die "Could not copy database directory $srcdir to $destdir: $?";
} elsif (! -d $srcdir) {
die "Error: database directory $srcdir does not exist";
} else {
debug(1, "The destination directory $destdir already exists, copying files/dirs individually\n");
foreach my $file (glob("$srcdir/*")) {
debug(3, "Copying $file to $destdir\n");
if (-f $file) {
system ("cp -p $file $destdir") == 0 or
die "Error: could not copy $file to $destdir: $!";
} elsif (-d $file) {
system ("cp -p -r $file $destdir") == 0 or
die "Error: could not copy $file to $destdir: $!";
}
}
}
}
sub copyDatabases {
my $oldroot = shift;
my $inst = shift;
my $newdbdir = shift;
# global config and instance specific config are children of this entry
my $basedbdn = normalizeDN("cn=ldbm database,cn=plugins,cn=config");
# get the list of databases, their index and transaction log locations
my $fname = "$oldroot/$inst/config/dse.ldif";
open( DSELDIF, "$fname" ) || die "Can't open $fname: $!";
my $in = new Mozilla::LDAP::LDIF(*DSELDIF);
my $targetdn = normalizeDN("cn=config,cn=ldbm database,cn=plugins,cn=config");
while (my $ent = readOneEntry $in) {
next if (!$ent->getDN()); # just skip root dse
# look for the one level children of $basedbdn
my @rdns = ldap_explode_dn($ent->getDN(), 0);
my $parentdn = normalizeDN(join(',', @rdns[1..$#rdns]));
if ($parentdn eq $basedbdn) {
my $cn = $ent->getValues('cn');
my %objclasses = map { lc($_) => $_ } $ent->getValues('objectclass');
if ($cn eq 'config') { # global config
debug(1, "Found ldbm database plugin config entry ", $ent->getDN(), "\n");
my $dir = $ent->getValues('nsslapd-directory');
my $homedir = $ent->getValues('nsslapd-db-home-directory');
my $logdir = $ent->getValues('nsslapd-db-logdirectory');
debug(1, "old db dir = $dir homedir = $homedir logdir = $logdir\n");
my $srcdir = $homedir || $dir || "$oldroot/$inst/db";
copyDatabaseDirs($srcdir, $newdbdir);
copyDatabaseDirs($logdir, $newdbdir) if ($logdir && $logdir ne $srcdir);
} elsif ($objclasses{nsbackendinstance}) {
debug(1, "Found ldbm database instance entry ", $ent->getDN(), "\n");
my $dir = $ent->getValues('nsslapd-directory');
# the default db instance directory is
# $oldroot/$inst/$cn
debug(1, "old instance $cn dbdir $dir\n");
my $srcdir = $dir || "$oldroot/$inst/db/$cn";
copyDatabaseDirs($srcdir, "$newdbdir/$cn");
} # else just ignore for now
}
}
close DSELDIF;
}
sub copyChangelogDB {
my $oldroot = shift;
my $inst = shift;
my $newdbdir = shift;
# changelog config entry
my $cldn = normalizeDN("cn=changelog5, cn=config");
my $fname = "$oldroot/$inst/config/dse.ldif";
open( DSELDIF, "$fname" ) || die "Can't open $fname: $!";
my $in = new Mozilla::LDAP::LDIF(*DSELDIF);
while (my $ent = readOneEntry $in) {
my $targetdn = normalizeDN($ent->getDN());
if ($targetdn eq $cldn) {
my $oldcldir = $ent->getValues('nsslapd-changelogdir');
debug(1, "old cldb dir = $oldcldir\n");
my $srcdir = $oldcldir || "$oldroot/$inst/cldb";
copyDatabaseDirs($srcdir, $newdbdir);
last;
}
}
close DSELDIF;
}
sub fixAttrsInEntry {
my ($ent, $inst) = @_;
for my $attr (keys %{$ent}) {
my $lcattr = lc $attr;
if ($transformAttr{$lcattr}) {
$ent->setValues($attr, &{$transformAttr{$lcattr}}($ent, $attr, $inst));
}
}
}
sub mergeEntries {
my ($old, $new, $inst) = @_;
my %inoldonly; # attrs in old entry but not new one
my %innewonly; # attrs in new entry but not old one
my @attrs; # attrs common to old and new
# if the attribute exists in the old entry but not the new one
# we should probably add it (checking for special cases first)
# if the attribute exists in the new entry but not the old one
# we might have to delete it from the new entry
# first, get a list of all attributes
foreach my $attr (keys %{$old}) {
if (! $new->exists($attr)) {
$inoldonly{$attr} = $attr;
} else {
push @attrs, $attr;
}
}
foreach my $attr (keys %{$new}) {
if (! $old->exists($attr)) {
$innewonly{$attr} = $attr;
}
}
# iterate through the attr lists
my $cn = lc $new->getValues("cn");
foreach my $attr (keys %inoldonly, keys %innewonly, @attrs) {
my $lcattr = lc $attr;
if ($ignoreOld{$lcattr}) {
next; # use new value or just omit if attr is obsolete
} elsif ($transformAttr{$lcattr}) {
# only transform if the value is in the old entry
if (!$innewonly{$attr}) {
$new->setValues($attr, &{$transformAttr{$lcattr}}($old, $attr, $inst));
}
} elsif ($cn eq "internationalization plugin" and $lcattr eq "nsslapd-pluginarg0") {
next; # use the new value of this path name
} elsif ($cn eq "referential integrity postoperation" and $lcattr eq "nsslapd-pluginarg1") {
next; # use the new value of this path name
} elsif ($innewonly{$attr}) {
$new->remove($attr); # in new but not old - just remove it
} else {
$new->setValues($attr, $old->getValues($attr)); # use old value
}
}
}
sub mergeDseLdif {
my $oldroot = shift;
my $inst = shift;
my $ent;
# first, read in old file
my %olddse; # map of normalized DN to Entry
my @olddns; # the DNs in their original order
my $fname = "$oldroot/$inst/config/dse.ldif";
open( OLDDSELDIF, $fname ) || die "Can't open $fname: $!";
my $in = new Mozilla::LDAP::LDIF(*OLDDSELDIF);
while ($ent = readOneEntry $in) {
my $dn = normalizeDN($ent->getDN());
push @olddns, $dn;
$olddse{$dn} = $ent;
}
close OLDDSELDIF;
# next, read in new file
my %newdse; # map of normalized DN to Entry
my @newdns; # the DNs in their original order that are not in olddns
$fname = "@instconfigdir(a)/$inst/dse.ldif";
open( NEWDSELDIF, $fname ) || die "Can't open $fname: $!";
$in = new Mozilla::LDAP::LDIF(*NEWDSELDIF);
while ($ent = readOneEntry $in) {
my $dn = normalizeDN($ent->getDN());
$newdse{$dn} = $ent;
if (! exists $olddse{$dn}) {
push @newdns, $dn;
}
}
close NEWDSELDIF;
# temp file for new, merged dse.ldif
my ($dsefh, $tmpdse) = tempfile(SUFFIX => '.ldif');
# now, compare entries
# if the entry exists in the old tree but not the new, add it
# if the entry exists in the new tree but not the old, delete it
# otherwise, merge the entries
# @olddns contains the dns in the old dse.ldif, including ones that
# may also be in the new dse.ldif
# @newdns contains dns that are only in the new dse.ldif
for my $dn (@olddns, @newdns) {
my $oldent = $olddse{$dn};
my $newent = $newdse{$dn};
my $outputent;
if ($oldent && !$newent) {
# may have to fix up some values in the old entry
fixAttrsInEntry($oldent, $inst);
# output $oldent
$outputent = $oldent;
} elsif (!$oldent && $newent) {
next if ($dn =~ /o=deleteAfterMigration/i);
# output $newent
$outputent = $newent;
} else { #merge
# $newent will contain the merged entry
mergeEntries($oldent, $newent, $inst);
$outputent = $newent;
}
# special fix for rootDSE - perldap doesn't like "" for a dn
if (! $outputent->getDN()) {
my $ary = $outputent->getLDIFrecords();
shift @$ary; # remove "dn"
shift @$ary; # remove the empty dn value
print $dsefh "dn:\n";
print $dsefh (Mozilla::LDAP::LDIF::pack_LDIF (78, $ary), "\n");
} else {
Mozilla::LDAP::LDIF::put_LDIF($dsefh, 78, $outputent);
}
}
close $dsefh;
return $tmpdse;
}
sub migrateDS {
my $mig = shift;
$pkgname = $mig->{pkgname}; # set globals
$oldsroot = $mig->{oldsroot}; # set globals
# for each instance
foreach my $inst (@{$mig->{instances}}) {
if (-f "@instconfigdir(a)/$inst/dse.ldif") {
$mig->msg($WARN, 'instance_already_exists', "@instconfigdir(a)/$inst/dse.ldif");
next;
}
# set instance specific defaults
my $newdbdir = "@localstatedir@/lib/$pkgname/$inst/db";
my $newcertdir = "@instconfigdir@/$inst";
my $newcldbdir = "@localstatedir@/lib/$pkgname/$inst/cldb";
# extract the information needed for ds_newinst.pl
my $configdir = "$oldsroot/$inst/config";
my $inf = createInfFromConfig($configdir, $inst);
debug(2, "Using inffile $inf->{filename} created from $configdir\n");
# create the new instance
my ($rc, $output) = createDSInstance($inf);
unlink($inf->{filename});
if ($rc) {
$mig->msg($FATAL, 'error_creating_dsinstance', $rc, $output);
return 0;
} else {
$mig->msg('created_dsinstance', $output);
}
# copy over the files/directories
# copy the databases
copyDatabases($oldsroot, $inst, $newdbdir);
# copy the security related files
$mig->migrateSecurityFiles($inst, $newcertdir);
# copy the repl changelog database
copyChangelogDB($oldsroot, $inst, $newcldbdir);
# merge the old info into the new dse.ldif
my $tmpdse = mergeDseLdif($oldsroot, $inst);
# get user/group of new dse
my ($dev, $ino, $mode, $uid, $gid, @rest) = stat "@instconfigdir(a)/$inst/dse.ldif";
# save the original new dse.ldif
system("cp -p @instconfigdir(a)/$inst/dse.ldif @instconfigdir(a)/$inst/dse.ldif.premigrate");
# copy the new one
system("cp $tmpdse @instconfigdir(a)/$inst/dse.ldif");
# change owner/group
chmod $mode, "@instconfigdir(a)/$inst/dse.ldif";
chown $uid, $gid, "@instconfigdir(a)/$inst/dse.ldif";
# remove the temp one
unlink($tmpdse);
}
return 1;
}
#############################################################################
# Mandatory TRUE return value.
#
1;
--- NEW FILE Migration.pm.in ---
# BEGIN COPYRIGHT BLOCK
# This Program is free software; you can redistribute it and/or modify it under
# the terms of the GNU General Public License as published by the Free Software
# Foundation; version 2 of the License.
#
# This Program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along with
# this Program; if not, write to the Free Software Foundation, Inc., 59 Temple
# Place, Suite 330, Boston, MA 02111-1307 USA.
#
# In addition, as a special exception, Red Hat, Inc. gives You the additional
# right to link the code of this Program with code not covered under the GNU
# General Public License ("Non-GPL Code") and to distribute linked combinations
# including the two, subject to the limitations in this paragraph. Non-GPL Code
# permitted under this exception must only link to the code of this Program
# through those well defined interfaces identified in the file named EXCEPTION
# found in the source code files (the "Approved Interfaces"). The files of
# Non-GPL Code may instantiate templates or use macros or inline functions from
# the Approved Interfaces without causing the resulting work to be covered by
# the GNU General Public License. Only Red Hat, Inc. may make changes or
# additions to the list of Approved Interfaces. You must obey the GNU General
# Public License in all respects for all of the Program code and other code used
# in conjunction with the Program except the Non-GPL Code covered by this
# exception. If you modify this file, you may extend this exception to your
# version of the file, but you are not obligated to do so. If you do not wish to
# provide this exception without modification, you must delete this exception
# statement from your version and license this file solely under the GPL without
# exception.
#
#
# Copyright (C) 2007 Red Hat, Inc.
# All rights reserved.
# END COPYRIGHT BLOCK
#
###########################
#
# This perl module provides a way to set up a new installation after
# the binaries have already been extracted. This is typically after
# using native packaging support to install the package e.g. RPM,
# pkgadd, depot, etc. This script will show the license, readme,
# dsktune, then run the usual setup pre and post installers.
#
##########################
package Migration;
use Setup;
use Exporter ();
@ISA = qw(Exporter Setup);
@EXPORT = qw();
@EXPORT_OK = qw();
# tempfiles
use File::Temp qw(tempfile tempdir);
# hostname
use Net::Domain qw(hostfqdn);
# load perldap
use Mozilla::LDAP::Conn;
use Mozilla::LDAP::Utils qw(normalizeDN);
use Mozilla::LDAP::API qw(ldap_explode_dn);
use Mozilla::LDAP::LDIF;
use Getopt::Long;
use File::Temp qw(tempfile tempdir);
use SetupLog;
use Util;
# process command line options
Getopt::Long::Configure(qw(bundling)); # bundling allows -ddddd
sub VersionMessage {
print "@capbrand@ Directory Server Migration Program Version @PACKAGE_VERSION@\n";
}
sub HelpMessage {
print <<EOF;
INTRODUCTION
This script will copy instances (data and configuration) from the old
server root directory to their new FHS locations. This script does a
copy only - the data in the old instances will be left untouched. The
old instances must be shutdown first to ensure that the databases are
copied safely. The new instances will not be started by migration,
but can be started after running migration.
USAGE
$0 [--options] -- [args]
options:
--help This message
--version Print the version and exit
--debug Turn on debugging
--oldsroot The old server root directory to migrate from
--actualsroot This is the old location of the old server root. See below.
--silent Use silent setup - no user input
--file=name Use the file 'name' in .inf format to supply the default answers
--keepcache Do not delete the temporary .inf file generated by this program
--logfile Log migration messages to this file - otherwise, a temp file will be used
--instance By default, all directory server instances will be migrated. You can use
this argument to specify one or more (e.g. -i slapd-foo -i slapd-bar) if
you do not want to migrate all of them.
For all options, you can also use the short name e.g. -h, -d, etc. For the -d argument,
specifying it more than once will increase the debug level e.g. -ddddd
args:
You can supply default .inf data in this format:
section.param=value
e.g.
General.FullMachineName=foo.example.com
or
"slapd.Suffix=dc=example, dc=com"
Values passed in this manner will override values in an .inf file given with the -f argument.
actualsroot:
This is used when you must migrate from one machine to another. The
usual case is that you have mounted the old server root on a different
root directory, either via a network mount, or by copying a tarball
made using a relative directory on the source machine to the
destination machine and untarring it.
For example: machineA is a 32bit machine, and you want to migrate your
servers to a new 64bit machine. Lets assume your old server root on
machineA was /opt/myds, and your new machine also wants to use a
server root of /opt/myds. There are a couple of different ways to
proceed. Either make a tarball of opt/myds from machineA using a
relative path (i.e. NOT /opt/myds) or use NFS to mount
machineA:/opt/myds on a different mount point
(e.g. machineB:/migration/opt/myds).
If you do this, you should give the old "real" server root (/opt/myds)
as the --actualsroot argument, and use /migration/opt/myds for the
--oldsroot argument. That is, the oldsroot is the physical location of
the files on disk. The actualsroot is the old value of the server root
on the source machine.
EOF
}
sub init {
my $self = shift;
$self->{res} = shift;
my ($silent, $inffile, $keep, $preonly, $logfile, $oldsroot, $actualsroot);
my @instances;
GetOptions('help|h|?' => sub { VersionMessage(); HelpMessage(); exit 0 },
'version|v' => sub { VersionMessage(); exit 0 },
'debug|d+' => \$Util::debuglevel,
'silent|s' => \$silent,
'file|f=s' => \$inffile,
'keepcache|k' => \$keep,
'preonly|p' => \$preonly,
'logfile|l=s' => \$logfile,
'oldsroot|o=s' => \$oldsroot,
'actualsroot|a=s' => \$actualsroot,
'instance|i=s' => \@instances
);
my $pkgname = "@package_name@";
# this is the new pkgname which may be something like
# fedora-ds-base - we have to strip off the -suffix
if ($pkgname =~ /-(core|base)$/) {
$pkgname =~ s/-(core|base)$//;
}
my $oldpkgname = $pkgname;
$self->{pkgname} = $pkgname;
$self->{oldsroot} = $oldsroot || "/opt/$oldpkgname";
$self->{actualsroot} = $actualsroot || $oldsroot;
$self->{silent} = $silent;
$self->{inffile} = $inffile;
$self->{keep} = $keep;
$self->{preonly} = $preonly;
$self->{logfile} = $logfile;
$self->{log} = new SetupLog($self->{logfile}, "migrate");
# if user supplied inf file, use that to initialize
if (defined($self->{inffile})) {
$self->{inf} = new Inf($self->{inffile});
} else {
$self->{inf} = new Inf;
}
my $fh;
# create a temp inf file for writing for other processes
# never overwrite the user supplied inf file
($fh, $self->{inffile}) = tempfile("migrateXXXXXX", UNLINK => !$keep,
SUFFIX => ".inf", OPEN => 0,
DIR => File::Spec->tmpdir);
$self->{inf}->{filename} = $self->{inffile};
# see if user passed in default inf values - also, command line
# 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
$self->{inf}->{$1}->{$2} = $3;
} else { # error
print STDERR "Error: unknown command line option $_\n";
usage();
exit 1;
}
}
# this is the base config directory - the directory containing
# the slapd-instance instance specific config directories
$self->{configdir} = $ENV{DS_CONFIG_DIR} || "@instconfigdir@";
# get list of instances to migrate
if (! @instances) {
# an instance must be a directory called $oldsroot/slapd-something and the file
# $oldsroot/slapd-something/config/dse.ldif must exist
@instances = grep { -d && -f "$_/config/dse.ldif" && ($_ =~ s,$self->{oldsroot}/,,) }
glob("$self->{oldsroot}/slapd-*");
}
die "No instances found to migrate" unless (@instances);
$self->{instances} = \@instances;
}
sub doExit {
my $self = shift;
$self->msg($FATAL, 'migration_exiting', $self->{log}->{filename});
exit 1;
}
sub migrateSecurityFiles {
my $self = shift;
my $inst = shift;
my $destdir = shift;
my $oldroot = $self->{oldsroot};
if (! -d "$oldroot/alias") {
$self->msg('old_secdir_error', "$oldroot/alias", $!);
return 0;
} elsif (! -d $destdir) {
$self->msg('new_secdir_error', $destdir, $!);
return 0;
} else {
$self->log($INFO, "Copying $oldroot/alias/$inst-cert8.db to $destdir/cert8.db\n");
if (system ("cp -p $oldroot/alias/$inst-cert8.db $destdir/cert8.db")) {
$self->msg($FATAL, 'error_copying_certdb', "$oldroot/alias/$inst-cert8.db",
"$destdir/cert8.db", $!);
return 0;
}
$self->log($INFO, "Copying $oldroot/alias/$inst-key3.db to $destdir/key3.db\n");
if (system ("cp -p $oldroot/alias/$inst-key3.db $destdir/key3.db")) {
$self->msg($FATAL, 'error_copying_keydb', "$oldroot/alias/$inst-key3.db",
"$destdir/key3.db", $!);
return 0;
}
$self->log($INFO, "Copying $oldroot/alias/secmod.db to $destdir/secmod.db\n");
if (system ("cp -p $oldroot/alias/secmod.db $destdir/secmod.db")) {
$self->msg($FATAL, 'error_copying_secmoddb', "$oldroot/alias/secmod.db",
"$destdir/secmod.db", $!);
return 0;
}
if (-f "$oldroot/alias/$inst-pin.txt") {
$self->log($INFO, "Copying $oldroot/alias/$inst-pin.txt to $destdir/pin.txt\n");
if (system ("cp -p $oldroot/alias/$inst-pin.txt $destdir/pin.txt")) {
$self->msg($FATAL, 'error_copying_pinfile', "$oldroot/alias/$inst-pin.txt",
"$destdir/pin.txt", $!);
return 0;
}
} else {
$self->log($INFO, "No $oldroot/alias/$inst-pin.txt to migrate\n");
}
if (-f "$oldroot/shared/config/certmap.conf") {
$self->log($INFO, "Copying $oldroot/shared/config/certmap.conf to $destdir/certmap.conf\n");
if (system ("cp -p $oldroot/shared/config/certmap.conf $destdir/certmap.conf")) {
$self->msg($FATAL, 'error_copying_certmap', "$oldroot/shared/config/certmap.conf",
"$destdir/certmap.conf", $!);
return 0;
}
} else {
$self->log($INFO, "No $oldroot/shared/config/certmap.conf to migrate\n");
}
}
return 1;
}
#############################################################################
# Mandatory TRUE return value.
#
1;
--- NEW FILE migrate-ds.pl.in ---
#!/usr/bin/env perl
# BEGIN COPYRIGHT BLOCK
# This Program is free software; you can redistribute it and/or modify it under
# the terms of the GNU General Public License as published by the Free Software
# Foundation; version 2 of the License.
#
# This Program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along with
# this Program; if not, write to the Free Software Foundation, Inc., 59 Temple
# Place, Suite 330, Boston, MA 02111-1307 USA.
#
# In addition, as a special exception, Red Hat, Inc. gives You the additional
# right to link the code of this Program with code not covered under the GNU
# General Public License ("Non-GPL Code") and to distribute linked combinations
# including the two, subject to the limitations in this paragraph. Non-GPL Code
# permitted under this exception must only link to the code of this Program
# through those well defined interfaces identified in the file named EXCEPTION
# found in the source code files (the "Approved Interfaces"). The files of
# Non-GPL Code may instantiate templates or use macros or inline functions from
# the Approved Interfaces without causing the resulting work to be covered by
# the GNU General Public License. Only Red Hat, Inc. may make changes or
# additions to the list of Approved Interfaces. You must obey the GNU General
# Public License in all respects for all of the Program code and other code used
# in conjunction with the Program except the Non-GPL Code covered by this
# exception. If you modify this file, you may extend this exception to your
# version of the file, but you are not obligated to do so. If you do not wish to
# provide this exception without modification, you must delete this exception
# statement from your version and license this file solely under the GPL without
# exception.
#
#
# Copyright (C) 2007 Red Hat, Inc.
# All rights reserved.
# END COPYRIGHT BLOCK
#
###########################
#
# This perl module provides a way to set up a new installation after
# the binaries have already been extracted. This is typically after
# using native packaging support to install the package e.g. RPM,
# pkgadd, depot, etc. This script will show the license, readme,
# dsktune, then run the usual setup pre and post installers.
#
##########################
use lib '@perldir@';
use strict;
use DSMigration;
use Migration;
use Resource;
my $res = new Resource("@propertydir(a)/migrate-ds.res",
"@propertydir(a)/setup-ds.res");
my $mig = new Migration($res);
$mig->msg('begin_ds_migration', $mig->{oldsroot});
migrateDS($mig);
$mig->msg('end_ds_migration');
--- NEW FILE migrate-ds.res ---
begin_ds_migration = Beginning migration of directory server instances in %s . . .\n
end_ds_migration = Directory server migration is complete. Please check output and log files for details.\n
migration_exiting = Exiting . . .\nLog file is '%s'\n\n
instance_already_exists = The target directory server instance already exists at %s. Skipping migration.\n\
Index: Setup.pm.in
===================================================================
RCS file: /cvs/dirsec/ldapserver/ldap/admin/src/scripts/Setup.pm.in,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- Setup.pm.in 20 Jun 2007 16:27:50 -0000 1.7
+++ Setup.pm.in 29 Jun 2007 21:12:21 -0000 1.8
@@ -69,6 +69,11 @@
use File::Temp qw(tempfile tempdir);
use SetupLog;
+use Util;
+use Inf;
+
+use strict;
+use vars qw($EXPRESS $TYPICAL $CUSTOM $SILENT);
# the setup types
$EXPRESS = 1;
@@ -111,13 +116,19 @@
sub new {
my $type = shift;
my $self = {};
+ $self = bless $self, $type;
+ $self->init(@_);
+ return $self;
+}
+
+sub init {
+ my $self = shift;
$self->{res} = shift;
- my ($debuglevel, $silent, $inffile, $keep, $preonly, $logfile);
- my @otherargs;
+ my ($silent, $inffile, $keep, $preonly, $logfile);
GetOptions('help|h|?' => sub { VersionMessage(); HelpMessage(); exit 0 },
'version|v' => sub { VersionMessage(); exit 0 },
- 'debug|d+' => \$debuglevel,
+ 'debug|d+' => \$Util::debuglevel,
'silent|s' => \$silent,
'file|f=s' => \$inffile,
'keepcache|k' => \$keep,
@@ -125,7 +136,6 @@
'logfile|l=s' => \$logfile
);
- $self->{debuglevel} = $debuglevel;
$self->{silent} = $silent;
$self->{inffile} = $inffile;
$self->{keep} = $keep;
@@ -162,9 +172,6 @@
# this is the base config directory - the directory containing
# the slapd-instance instance specific config directories
$self->{configdir} = $ENV{DS_CONFIG_DIR} || "@instconfigdir@";
-
- $self = bless $self, $type;
- return $self;
}
# log only goes the the logfile
Index: SetupLog.pm
===================================================================
RCS file: /cvs/dirsec/ldapserver/ldap/admin/src/scripts/SetupLog.pm,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- SetupLog.pm 8 Jun 2007 01:09:16 -0000 1.1
+++ SetupLog.pm 29 Jun 2007 21:12:21 -0000 1.2
@@ -59,11 +59,12 @@
sub new {
my $type = shift;
my $filename = shift;
+ my $prefix = shift || "setup";
my $self = {};
my $fh;
if (!$filename) {
- ($fh, $filename) = tempfile("setupXXXXXX", UNLINK => 0,
+ ($fh, $filename) = tempfile("${prefix}XXXXXX", UNLINK => 0,
SUFFIX => ".log", DIR => File::Spec->tmpdir);
} else {
open LOGFILE, ">$filename" or die "Error: could not open logfile $filename: $!";
Index: Util.pm.in
===================================================================
RCS file: /cvs/dirsec/ldapserver/ldap/admin/src/scripts/Util.pm.in,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- Util.pm.in 21 Jun 2007 21:57:23 -0000 1.3
+++ Util.pm.in 29 Jun 2007 21:12:21 -0000 1.4
@@ -47,15 +47,28 @@
@ISA = qw(Exporter);
@EXPORT = qw(portAvailable getAvailablePort isValidDN addSuffix getMappedEntries
process_maptbl check_and_add_entry getMappedEntries
- getHashedPassword);
+ getHashedPassword debug createDSInstance createInfFromConfig);
@EXPORT_OK = qw(portAvailable getAvailablePort isValidDN addSuffix getMappedEntries
process_maptbl check_and_add_entry getMappedEntries
- getHashedPassword);
+ getHashedPassword debug createDSInstance createInfFromConfig);
use strict;
use Socket;
+use File::Temp qw(tempfile tempdir);
+
+$Util::debuglevel = 0;
+# use like this:
+# debug(3, "message");
+# this will only print "message" if $debuglevel is 3 or higher (-ddd on the command line)
+sub debug {
+ my ($level, @rest) = @_;
+ if ($level <= $Util::debuglevel) {
+ print STDERR "+" x $level, @rest;
+ }
+}
+
# return true if the given port number is available, false otherwise
sub portAvailable {
my $port = shift;
@@ -89,10 +102,6 @@
return ($dn =~ /^[0-9a-zA-Z_-]+=.*$/);
}
-sub debug {
-# print @_, "\n";
-}
-
# delete the subtree starting from the passed entry
sub delete_all
{
@@ -217,9 +226,18 @@
my $verbose = $context->[2];
my @ctypes = $aentry->getValues("changetype");
my $sentry = $conn->search($aentry->{dn}, "base", "(objectclass=*)", 0, ("*", "aci"));
+ if ($sentry) {
+ debug(3, "check_and_add_entry: Found entry " . $sentry->getDN() . "\n");
+ } else {
+ debug(3, "check_and_add_entry: Entry not found " . $aentry->{dn} .
+ " error " . $conn->getErrorString() . "\n");
+ }
do
{
my $needtoadd;
+ my @addtypes; # list of attr types for mod add
+ my @reptypes; # list of attr types for mod replace
+ my @deltypes; # list of attr types for mod delete
my $MOD_NONE = 0;
my $MOD_ADD = 1;
my $MOD_REPLACE = 2;
@@ -248,19 +266,18 @@
{
$needtoadd = 0;
$needtomod = $MOD_ADD;
+ @addtypes = keys %{$aentry}; # add all attrs
}
elsif ( $sentry && $sentry->{dn} )
{
# $fresh || $rc == -1
# an entry having the same DN exists, but the attributes do not
# match. remove the entry and the subtree underneath.
- if ( $verbose )
- {
- print "Deleting an entry dn: $sentry->{dn} ...\n";
- }
+ debug(1, "Deleting an entry dn: $sentry->{dn} ...\n");
$rc = delete_all($conn, $sentry);
if ( 0 != $rc )
{
+ debug(1, "Error deleting $sentry->{dn}\n");
return 0;
}
}
@@ -270,28 +287,10 @@
$needtoadd = 0;
if ( $sentry )
{
- my @atypes = $aentry->getValues("add");
- if ( 0 <= $#atypes )
- {
- $needtomod = $MOD_ADD;
- }
- else
- {
- @atypes = $aentry->getValues("replace");
- if ( 0 <= $#atypes )
- {
- $needtomod = $MOD_REPLACE;
- }
- else
- {
- @atypes = $aentry->getValues("delete");
- if ( 0 <= $#atypes )
- {
- print "\"delete\" is not supported; ignoring...\n";
- }
- $needtomod = $MOD_NONE;
- }
- }
+ @addtypes = $aentry->getValues("add");
+ @reptypes = $aentry->getValues("replace");
+ @deltypes = $aentry->getValues("delete");
+ $needtomod = $MOD_REPLACE;
}
else
{
@@ -305,63 +304,62 @@
my $rc = $conn->getErrorCode();
if ( $rc != 0 )
{
- print "ERROR: adding an entry $aentry->{dn} failed, error code: $rc\n";
+ my $string = $conn->getErrorString();
+ print "ERROR: adding an entry $aentry->{dn} failed, error: $string\n";
print "[entry]\n";
$aentry->printLDIF();
$conn->close();
return 0;
}
- debug("Entry $aentry->{dn} is added\n");
+ debug(1, "Entry $aentry->{dn} is added\n");
}
elsif ( 0 < $needtomod ) # $sentry exists
{
+ my $attr;
if ( $needtomod == $MOD_SPECIAL )
{
- foreach my $attr ( keys %speciallist )
+ debug(3, "Doing MOD_SPECIAL for entry $aentry->{dn}\n");
+ foreach $attr ( keys %speciallist )
{
foreach my $nval ( @{$aentry->{$attr}} )
{
$sentry->addValue( $attr, $nval );
}
}
- $conn->update($sentry);
}
- elsif ( $needtomod == $MOD_ADD )
+ foreach $attr ( @addtypes )
{
- foreach my $attr ( keys %{$aentry} )
- {
- next if $attr =~ /add|changetype/;
- foreach my $nval ( @{$aentry->{$attr}} )
- {
- $sentry->addValue( $attr, $nval );
- }
- }
- $conn->update($sentry);
+ debug(3, "Adding attr=$attr values=" . $aentry->getValues($attr) . " to entry $aentry->{dn}\n");
+ $sentry->addValue( $attr, $aentry->getValues($attr) );
}
- elsif ( $needtomod == $MOD_REPLACE )
+ foreach $attr ( @reptypes )
{
- my $entry = new Mozilla::LDAP::Entry();
- $entry->setDN($aentry->getDN());
- foreach my $attr ( keys %{$aentry} )
+ debug(3, "Replacing attr=$attr values=" . $aentry->getValues($attr) . " to entry $aentry->{dn}\n");
+ $sentry->setValues($attr, $aentry->getValues($attr));
+ }
+ foreach $attr ( @deltypes )
+ {
+ # removeValue takes a single value only
+ if (!$aentry->size($attr))
{
- next if $attr =~ /replace|changetype/;
- foreach my $nval ( @{$aentry->{$attr}} )
+ debug(3, "Deleting attr=$attr from entry $aentry->{dn}\n");
+ $sentry->remove($attr); # just delete the attribute
+ }
+ else
+ {
+ debug(3, "Deleting attr=$attr values=" . $aentry->getValues($attr) . " from entry $aentry->{dn}\n");
+ foreach my $val ($aentry->getValues($attr))
{
- $entry->addValue( $attr, $nval );
+ $sentry->removeValue($attr, $val);
}
}
- $conn->update($entry);
- }
- else
- {
- print "ERROR: needtomod == $needtomod is not supported.\n";
- $conn->close();
- return 0;
}
+ $conn->update($sentry);
my $rc = $conn->getErrorCode();
if ( $rc != 0 )
{
- print "ERROR: updating an entry $sentry->{dn} failed, error code: $rc\n";
+ my $string = $conn->getErrorString();
+ print "ERROR: updating an entry $sentry->{dn} failed, error: $string\n";
print "[entry]\n";
$aentry->printLDIF();
$conn->close();
@@ -455,7 +453,7 @@
foreach my $ldiffile (@{$ldiffiles}) {
open(MYLDIF, "< $ldiffile") or die "Can't open $ldiffile : $!";
my $in = new Mozilla::LDAP::LDIF(*MYLDIF);
- debug("Processing $ldiffile ...");
+ debug(1, "Processing $ldiffile ...\n");
ENTRY: while (my $entry = Mozilla::LDAP::LDIF::readOneEntry($in)) {
# first, fix the DN
my $dn = $entry->getDN();
@@ -709,4 +707,55 @@
return $hashedpwd;
}
+sub createDSInstance {
+ my $inf = shift;
+# find ds_newinst.pl - in same directory as this script or in PATH
+ my $ds_newinst;
+ ($ds_newinst = $0) =~ s|/[^/]+$|/ds_newinst.pl|;
+ if (! -x $ds_newinst) {
+ $ds_newinst = "@bindir(a)/ds_newinst.pl";
+ }
+ if (! -x $ds_newinst) {
+ $ds_newinst = "ds_newinst.pl"; # just get from path
+ }
+ $? = 0; # clear error condition
+ my $output = `$ds_newinst $inf->{filename}`;
+ return ($?, $output);
+}
+
+# this creates an Inf suitable for passing to createDSInstance
+sub createInfFromConfig {
+ my $configdir = shift;
+ my $inst = shift;
+ my $fname = "$configdir/dse.ldif";
+ my $id;
+ ($id = $inst) =~ s/^slapd-//;
+ open( DSELDIF, "$fname" ) || die "Can't open $fname: $!";
+ my ($outfh, $inffile) = tempfile(SUFFIX => '.inf');
+ my $in = new Mozilla::LDAP::LDIF(*DSELDIF) ;
+ while (my $ent = readOneEntry $in) {
+ my $dn = $ent->getDN();
+ if ($dn =~ /cn=config/) {
+ print $outfh "[General]\n";
+ print $outfh "FullMachineName = ", $ent->getValues('nsslapd-localhost'), "\n";
+ print $outfh "SuiteSpotUserID = ", $ent->getValues('nsslapd-localuser'), "\n";
+ print $outfh "ServerRoot = @serverdir@\n";
+ print $outfh "[slapd]\n";
+ print $outfh "RootDN = ", $ent->getValues('nsslapd-rootdn'), "\n";
+ print $outfh "RootDNPwd = ", $ent->getValues('nsslapd-rootpw'), "\n";
+ print $outfh "ServerPort = ", $ent->getValues('nsslapd-port'), "\n";
+ print $outfh "ServerIdentifier = $id\n";
+ print $outfh "Suffix = o=deleteAfterMigration\n";
+ print $outfh "start_server= 0\n";
+ last;
+ }
+ }
+ close $outfh;
+ close DSELDIF;
+
+ my $inf = new Inf($inffile);
+
+ return $inf;
+}
+
1;
Index: setup-ds.pl.in
===================================================================
RCS file: /cvs/dirsec/ldapserver/ldap/admin/src/scripts/setup-ds.pl.in,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- setup-ds.pl.in 20 Jun 2007 22:08:39 -0000 1.2
+++ setup-ds.pl.in 29 Jun 2007 21:12:21 -0000 1.3
@@ -45,6 +45,7 @@
use Inf;
use Resource;
use DialogManager;
+use Util;
my $res = new Resource("@propertydir(a)/setup-ds.res");
@@ -68,6 +69,11 @@
$setup->{inf}->write();
}
-system("@bindir(a)/ds_newinst.pl $setup->{inffile}");
+my ($rc, $output) = createDSInstance($setup->{inf});
+if ($rc) {
+ $setup->msg($FATAL, 'error_creating_dsinstance', $rc, $output);
+} else {
+ $setup->msg('created_dsinstance', $output);
+}
$setup->doExit();
Index: setup-ds.res.in
===================================================================
RCS file: /cvs/dirsec/ldapserver/ldap/admin/src/scripts/setup-ds.res.in,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- setup-ds.res.in 19 Jun 2007 18:24:57 -0000 1.4
+++ setup-ds.res.in 29 Jun 2007 21:12:21 -0000 1.5
@@ -87,3 +87,5 @@
error_creating_suffix = Could not create the suffix '%s'. Error: %s\n\n
setup_exiting = Exiting . . .\nLog file is '%s'\n\n
+error_creating_dsinstance = Error: Could not create directory server instance. Error code %s. Output:\n%s\n
+created_dsinstance = Your new DS instance was successfully created. Output:\n%s\n
15 years, 11 months
[Fedora-directory-commits] console/src/com/netscape/management/client/util RemoteImage.java, 1.1.1.1, 1.2 ResourceSet.java, 1.1.1.1, 1.2
by Doctor Conrad
Author: nkinder
Update of /cvs/dirsec/console/src/com/netscape/management/client/util
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv1397/src/com/netscape/management/client/util
Modified Files:
RemoteImage.java ResourceSet.java
Log Message:
Resolves: 246270
Summary: Remove server root concept from Console.
Index: RemoteImage.java
===================================================================
RCS file: /cvs/dirsec/console/src/com/netscape/management/client/util/RemoteImage.java,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- RemoteImage.java 18 Jul 2005 00:34:27 -0000 1.1.1.1
+++ RemoteImage.java 29 Jun 2007 20:32:29 -0000 1.2
@@ -160,7 +160,7 @@
if (Debug.getTraceLevel() == 9) {
Debug.println(9,
"RemoteImage: " + ((image == null) ? "NOT ":"") +
- "found " + loaderName + ":"+path);
+ "found in cache " + loaderName + ":"+path);
}
return image;
}
Index: ResourceSet.java
===================================================================
RCS file: /cvs/dirsec/console/src/com/netscape/management/client/util/ResourceSet.java,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- ResourceSet.java 18 Jul 2005 00:34:27 -0000 1.1.1.1
+++ ResourceSet.java 29 Jun 2007 20:32:29 -0000 1.2
@@ -256,7 +256,7 @@
if (Debug.getTraceLevel() == 9) {
Debug.println(9,
"ResourceSet: " + ((prb == null) ? "NOT ":"") +
- "found " + loaderName + ":"+bundle);
+ "found in cache " + loaderName + ":"+bundle);
}
return prb;
}
15 years, 11 months
[Fedora-directory-commits] console/src/com/netscape/management/client/topology/customview CustomView.java, 1.2, 1.3
by Doctor Conrad
Author: nkinder
Update of /cvs/dirsec/console/src/com/netscape/management/client/topology/customview
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv1397/src/com/netscape/management/client/topology/customview
Modified Files:
CustomView.java
Log Message:
Resolves: 246270
Summary: Remove server root concept from Console.
Index: CustomView.java
===================================================================
RCS file: /cvs/dirsec/console/src/com/netscape/management/client/topology/customview/CustomView.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- CustomView.java 8 Feb 2006 22:13:24 -0000 1.2
+++ CustomView.java 29 Jun 2007 20:32:29 -0000 1.3
@@ -472,7 +472,7 @@
LDAPSearchResults result = null;
try {
result = _ldc.search(url.getDN().trim(), url.getScope(),
- url.getFilter().trim(), new String[] {"1.1"}, false);
+ url.getFilter().trim(), new String[] {"1.1.0"}, false);
while (result != null && result.hasMoreElements()) {
LDAPEntry rscEntry = (LDAPEntry) result.next();
ResourceObject rscObj = getTopologyResource(rscEntry.getDN());
15 years, 11 months
[Fedora-directory-commits] console/src/com/netscape/management/client/topology AbstractServerObject.java, 1.1.1.1, 1.2 AdminGroupNode.java, 1.1.1.1, 1.2 TopologyInitializer.java, 1.2, 1.3 topology.properties, 1.2, 1.3 MergeConfigDialog.java, 1.1.1.1, NONE
by Doctor Conrad
Author: nkinder
Update of /cvs/dirsec/console/src/com/netscape/management/client/topology
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv1397/src/com/netscape/management/client/topology
Modified Files:
AbstractServerObject.java AdminGroupNode.java
TopologyInitializer.java topology.properties
Removed Files:
MergeConfigDialog.java
Log Message:
Resolves: 246270
Summary: Remove server root concept from Console.
Index: AbstractServerObject.java
===================================================================
RCS file: /cvs/dirsec/console/src/com/netscape/management/client/topology/AbstractServerObject.java,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- AbstractServerObject.java 18 Jul 2005 00:34:18 -0000 1.1.1.1
+++ AbstractServerObject.java 29 Jun 2007 20:32:29 -0000 1.2
@@ -67,7 +67,7 @@
// attributes of objectclass netscapeServer
static String _serverDataKey[] = new String[]{ "cn", "serverProductName",
"description", "administratorContactInfo", //"serverVersionNumber",
- "installationTimeStamp", "serverRoot", "serverHostName", };
+ "installationTimeStamp", "serverHostName", };
// attributes of objectclass nsApplication
static String _productDataKey[] = new String[]{ "nsProductName", //"description",
@@ -86,7 +86,7 @@
static String _displayDataKey[] = new String[]{ "serverProductName",
"description", //"serverVersionNumber",
- "installationTimeStamp", "serverRoot", "nsProductName",
+ "installationTimeStamp", "nsProductName",
"nsVendor", "nsProductVersion", "nsBuildNumber", "nsRevisionNumber",
"nsBuildSecurity", };
Index: AdminGroupNode.java
===================================================================
RCS file: /cvs/dirsec/console/src/com/netscape/management/client/topology/AdminGroupNode.java,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- AdminGroupNode.java 18 Jul 2005 00:34:18 -0000 1.1.1.1
+++ AdminGroupNode.java 29 Jun 2007 20:32:29 -0000 1.2
@@ -43,7 +43,6 @@
*/
public class AdminGroupNode extends ServerLocNode implements IMenuInfo,
INodeInfo {
- private static final String MENU_MERGE = "MERGE";
private static final String MENU_OBJECT_CREATE_CATEGORY = "OBJECT_CREATE_CATEGORY";
private static final String MENU_CONTEXT_CREATE_CATEGORY = "CONTEXT_CREATE_CATEGORY";
@@ -52,7 +51,6 @@
private InstalledProduct[]_installedProducts;
private static RemoteImage _icon = null;
- private static ServerRootPromptDialog _serverRootPrompt = null;
private static ProductSelectionDialog _serverSelection = null;
private static ResourceSet _resource;
@@ -297,7 +295,6 @@
rpm.fireDisableMenuItem(viewInstance,
MENU_CONTEXT_CREATE_CATEGORY);
}
- rpm.fireEnableMenuItem(viewInstance, MENU_MERGE);
}
@@ -475,16 +472,12 @@
*/
public IMenuItem[] getMenuItems(String category) {
if (category.equals(ResourcePage.MENU_OBJECT)) {
- return new IMenuItem[]{ new MenuItemText(MENU_MERGE,
- _resource.getString("menu", "MergeConfig"), "",
- true), new MenuItemCategory(
+ return new IMenuItem[]{ new MenuItemCategory(
MENU_OBJECT_CREATE_CATEGORY,
_resource.getString("menu", "CreateServer"),
_enableCreateMenuCategory)};
} else if (category.equals(ResourcePage.MENU_CONTEXT)) {
- return new IMenuItem[]{ new MenuItemText(MENU_MERGE,
- _resource.getString("menu", "MergeConfig"), "",
- true), new MenuItemCategory(
+ return new IMenuItem[]{ new MenuItemCategory(
MENU_CONTEXT_CREATE_CATEGORY,
_resource.getString("menu", "CreateServer"),
_enableCreateMenuCategory)};
@@ -525,50 +518,43 @@
* @param item menu item which is selected
*/
public void actionMenuSelected(IPage viewInstance, IMenuItem item) {
- if (item.getID().equals(MENU_MERGE)) {
- MergeConfigDialog d =
- new MergeConfigDialog(getDN(), _consoleInfo, this,
- viewInstance);
- d.show();
- } else {
- // Check if create a new server instance was selected.
- if (_installedProducts != null) {
- for (int i = 0; i < _installedProducts.length; i++) {
- if (item.getID().equals(
- _installedProducts[i].getNickname())) {
- Class c = ClassLoaderUtil.getClass(_consoleInfo,
- _installedProducts[i]
- .getCreationClassName());
- if (c != null) {
- try {
- IProductObject productHandle =
- (IProductObject) c.newInstance();
- productHandle.initialize(
- (ConsoleInfo)_consoleInfo.clone());
- CreateThread thread =
- new CreateThread(_consoleInfo,
- viewInstance, getDN(),
- productHandle, _resource);
- thread.start();
- } catch (Exception e) {
- SuiOptionPane.showMessageDialog(
- _consoleInfo.getFrame(),
- MessageFormat.format(
- _resource.getString("ServerRootPromptDialog",
- "couldNotInstantiate"),
- new Object[]{c.getName(), e}),
- _resource.getString("ServerRootPromptDialog",
- "CreateTitle"),
- SuiOptionPane.ERROR_MESSAGE);
- ModalDialogUtil.sleep();
- ModalDialogUtil.raise(
- viewInstance.getFramework().
- getJFrame());
- return;
- }
+ // Check if create a new server instance was selected.
+ if (_installedProducts != null) {
+ for (int i = 0; i < _installedProducts.length; i++) {
+ if (item.getID().equals(
+ _installedProducts[i].getNickname())) {
+ Class c = ClassLoaderUtil.getClass(_consoleInfo,
+ _installedProducts[i]
+ .getCreationClassName());
+ if (c != null) {
+ try {
+ IProductObject productHandle =
+ (IProductObject) c.newInstance();
+ productHandle.initialize(
+ (ConsoleInfo)_consoleInfo.clone());
+ CreateThread thread =
+ new CreateThread(_consoleInfo,
+ viewInstance, getDN(),
+ productHandle, _resource);
+ thread.start();
+ } catch (Exception e) {
+ SuiOptionPane.showMessageDialog(
+ _consoleInfo.getFrame(),
+ MessageFormat.format(
+ _resource.getString("ServerPromptDialog",
+ "couldNotInstantiate"),
+ new Object[]{c.getName(), e}),
+ _resource.getString("ServerPromptDialog",
+ "CreateTitle"),
+ SuiOptionPane.ERROR_MESSAGE);
+ ModalDialogUtil.sleep();
+ ModalDialogUtil.raise(
+ viewInstance.getFramework().
+ getJFrame());
+ return;
}
- break; // Only one instance can be created at a time...
}
+ break; // Only one instance can be created at a time...
}
}
}
Index: TopologyInitializer.java
===================================================================
RCS file: /cvs/dirsec/console/src/com/netscape/management/client/topology/TopologyInitializer.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- TopologyInitializer.java 13 Jun 2007 20:33:11 -0000 1.2
+++ TopologyInitializer.java 29 Jun 2007 20:32:29 -0000 1.3
@@ -62,7 +62,7 @@
consoleInfo = info;
- setFrameTitle(new ResourceSet("com.netscape.management.client.console.console").getString("console", "title")); // not localized because it is product name
+ setFrameTitle(new ResourceSet("com.netscape.management.client.theme.theme").getString("console", "title")); // not localized because it is product name
setMinimizedImage( new RemoteImage("com/netscape/management/client/theme/images/logo16.gif").getImage());
setBannerImage( new RemoteImage("com/netscape/management/client/theme/images/ConsoleBanner.gif").getImage());
Index: topology.properties
===================================================================
RCS file: /cvs/dirsec/console/src/com/netscape/management/client/topology/topology.properties,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- topology.properties 26 Oct 2005 23:16:23 -0000 1.2
+++ topology.properties 29 Jun 2007 20:32:29 -0000 1.3
@@ -46,13 +46,11 @@
menu-CloneServer=Clone Server Config...
menu-Customize=Customize...
menu-LicenseTracking=&Track Licenses
-menu-MergeConfig=Merge Config...
menu-refresh=Re&fresh
menu-ChangeDirectory=C&hange Directory...
menu-Security=Security
menu-manageCert=&Manage Certificates
menu-migrateKeyCert=&Migrate Certificate data from...
-menu-MergeConfig=M&erge Configuration...
menu-open=&Open
menuCategory-User=&User
menu-CreateButton=&Create
@@ -209,26 +207,9 @@
ProductSelectionDialog-CreateHelpToken=topology-productselectiondialog-create
topology-psd-create=admin
-KeyCertMigrationDialog-Title=Migrate keys and certificates
-KeyCertMigrationDialog-from=Migrate key and certificate from:
-KeyCertMigrationDialog-oldServerRoot=Server root:
-KeyCertMigrationDialog-alias=Alias:
-KeyCertMigrationDialog-oldServerVer=Server version:
-KeyCertMigrationDialog-to=Migrate key and certificate to:
-KeyCertMigrationDialog-sie=Server ID:
-KeyCertMigrationDialog-pwd=Password:
-KeyCertMigrationDialog-fail=Key and certificate migration fail
-topology-kcmd=admin
-
-ServerRootPromptDialog-Title=Migrate Server Configuration
-ServerRootPromptDialog-CreateTitle=Create Server Instance
-ServerRootPromptDialog-okayToOverwrite=Is it okay to overwrite the existing SIE during the migration of {0}?
-ServerRootPromptDialog-couldNotInstantiate=Could not instantiate class: {0}\n\nException: {1}
-ServerRootPromptDialog-Prompt=Specify the server root path to migrate from.
-ServerRootPromptDialog-PromptDetail=** The server root must be accessible to the Administration Server.
-ServerRootPromptDialog-TextFieldLabel=Directory:
-ServerRootPromptDialog-FindButtonLabel=Find Servers
-topology-srpd=admin
+ServerPromptDialog-CreateTitle=Create Server Instance
+ServerPromptDialog-couldNotInstantiate=Could not instantiate class: {0}\n\nException: {1}
+topology-spd=admin
OUPickerDialog-Title=Select Organizational Unit
OUPickerDialog-Prompt=Select the directory subtree in which to create the new entry:
@@ -282,7 +263,6 @@
#
ServerObject-nsAdminGroupName=Group name
ServerObject-description=Description
-ServerObject-serverRoot=Server root
ServerObject-serverProductName=Server name
ServerObject-serverVersionNumber=Version
ServerObject-installationTimeStamp=Installation date
@@ -305,17 +285,6 @@
NewDomain-ownerDN=Owner DN:
topology-NewDomain=admin
-MergeConfig-title=Merge Configuration Directory Server Information
-MergeConfig-MergeWarning=Warning: Be sure to back up your Destination Config DS before continuing!
-MergeConfig-DestDomain=Destination Domain:
-MergeConfig-DestHost=Destination LDAP Host:
-MergeConfig-DestPort=Destination LDAP Port:
-MergeConfig-DestBindDN=Destination LDAP Bind DN:
-MergeConfig-DestBindPW=Destination LDAP Bind Password:
-MergeConfig-Success=All configuration data has been merged and the server instances now use the destination Configuration Directory Server.\nPlease restart the Admin Server and Console for changes to take effect.
-MergeConfig-UpdateFailure=Error: At least one server's CGI failed while updating its local config data.
-topology-MergeConfig=admin
-
customview-EditView=Edit View
customview-DefaultView=Default View
customview-RemoveView= &Remove
--- MergeConfigDialog.java DELETED ---
15 years, 11 months