瀏覽代碼

Bug 672468 - Don't use empty path elements in LD_LIBRARY_PATH

Many of the command line wrappers and perl scripts have their
LD_LIBRARY_PATH and SHLIB_PATH defined with macros that are
replaced by configure.  It is common for some of these macros
to be empty, which results in empty path elements.

This patch adds a bit more logic to the creation of the libpath
to avoid empty path elements and leading and trailing colons.
Nathan Kinder 15 年之前
父節點
當前提交
ce0dc222c3
共有 43 個文件被更改,包括 596 次插入103 次删除
  1. 13 2
      ldap/admin/src/scripts/start-dirsrv.in
  2. 11 4
      ldap/admin/src/scripts/template-bak2db.in
  3. 19 2
      ldap/admin/src/scripts/template-bak2db.pl.in
  4. 11 4
      ldap/admin/src/scripts/template-db2bak.in
  5. 19 2
      ldap/admin/src/scripts/template-db2bak.pl.in
  6. 10 4
      ldap/admin/src/scripts/template-db2index.in
  7. 19 2
      ldap/admin/src/scripts/template-db2index.pl.in
  8. 11 4
      ldap/admin/src/scripts/template-db2ldif.in
  9. 19 2
      ldap/admin/src/scripts/template-db2ldif.pl.in
  10. 11 4
      ldap/admin/src/scripts/template-dbverify.in
  11. 10 4
      ldap/admin/src/scripts/template-dn2rdn.in
  12. 19 2
      ldap/admin/src/scripts/template-fixup-linkedattrs.pl.in
  13. 19 2
      ldap/admin/src/scripts/template-fixup-memberof.pl.in
  14. 11 4
      ldap/admin/src/scripts/template-ldif2db.in
  15. 19 2
      ldap/admin/src/scripts/template-ldif2db.pl.in
  16. 14 3
      ldap/admin/src/scripts/template-ldif2ldap.in
  17. 14 3
      ldap/admin/src/scripts/template-monitor.in
  18. 19 2
      ldap/admin/src/scripts/template-ns-accountstatus.pl.in
  19. 19 2
      ldap/admin/src/scripts/template-ns-activate.pl.in
  20. 19 2
      ldap/admin/src/scripts/template-ns-inactivate.pl.in
  21. 19 2
      ldap/admin/src/scripts/template-ns-newpwpolicy.pl.in
  22. 13 2
      ldap/admin/src/scripts/template-restoreconfig.in
  23. 13 2
      ldap/admin/src/scripts/template-saveconfig.in
  24. 19 2
      ldap/admin/src/scripts/template-schema-reload.pl.in
  25. 13 2
      ldap/admin/src/scripts/template-suffix2instance.in
  26. 19 2
      ldap/admin/src/scripts/template-syntax-validate.pl.in
  27. 13 2
      ldap/admin/src/scripts/template-upgradedb.in
  28. 11 4
      ldap/admin/src/scripts/template-upgradednformat.in
  29. 19 2
      ldap/admin/src/scripts/template-usn-tombstone-cleanup.pl.in
  30. 17 2
      ldap/admin/src/scripts/template-verify-db.pl.in
  31. 13 2
      ldap/admin/src/scripts/template-vlvindex.in
  32. 9 2
      wrappers/cl-dump.in
  33. 8 2
      wrappers/dbscan.in
  34. 10 2
      wrappers/infadd.in
  35. 9 1
      wrappers/initscript.in
  36. 10 2
      wrappers/ldap-agent.in
  37. 10 2
      wrappers/ldclt.in
  38. 10 2
      wrappers/ldif.in
  39. 12 2
      wrappers/migratecred.in
  40. 12 2
      wrappers/mmldif.in
  41. 12 2
      wrappers/pwdhash.in
  42. 9 2
      wrappers/repl-monitor.in
  43. 10 2
      wrappers/rsearch.in

+ 13 - 2
ldap/admin/src/scripts/start-dirsrv.in

@@ -6,6 +6,11 @@
 #       1: Server could not be started
 #       2: Server already running
 
+libpath_add() {
+    [ -z "$1" ] && return
+    LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$1
+}
+
 # Starts a single instance
 start_instance() {
     # The first argument is the server ID.  Anything
@@ -22,9 +27,15 @@ start_instance() {
     fi
 
     prefix="$DS_ROOT"
-    LD_LIBRARY_PATH=$prefix$SERVER_DIR:$prefix@nss_libdir@:$prefix@libdir@:@nss_libdir@:@pcre_libdir@
+
+    libpath_add "$prefix$SERVER_DIR"
+    libpath_add "$prefix@nss_libdir@"
+    libpath_add "$prefix@libdir@"
+    libpath_add "@nss_libdir@"
+    libpath_add "$prefix@pcre_libdir@"
+
     export LD_LIBRARY_PATH
-    SHLIB_PATH=$prefix$SERVER_DIR:$prefix@nss_libdir@:$prefix@libdir@:@nss_libdir@:@pcre_libdir@
+    SHLIB_PATH=$LD_LIBRARY_PATH
     export SHLIB_PATH
 
     DS_CONFIG_DIR=$CONFIG_DIR

+ 11 - 4
ldap/admin/src/scripts/template-bak2db.in

@@ -4,10 +4,17 @@ prefix="{{DS-ROOT}}"
 if [ "$prefix" = "/" ] ; then
     prefix=""
 fi
-LD_LIBRARY_PATH=$prefix/{{SERVER-DIR}}:$prefix@nss_libdir@:$prefix@libdir@:$prefix@pcre_libdir@
-if [ -n "$prefix" ] ; then
-    LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:@nss_libdir@"
-fi
+
+libpath_add() {
+    [ -z "$1" ] && return
+    LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$1
+}
+
+libpath_add "$prefix{{SERVER-DIR}}"
+libpath_add "$prefix@nss_libdir@"
+libpath_add "$prefix@libdir@"
+libpath_add "$prefix@pcre_libdir@"
+
 export LD_LIBRARY_PATH
 SHLIB_PATH=$LD_LIBRARY_PATH
 export SHLIB_PATH

+ 19 - 2
ldap/admin/src/scripts/template-bak2db.pl.in

@@ -125,8 +125,25 @@ $entry = "${dn}${misc}${cn}${nsinstance}${nsarchivedir}${nsdbtype}";
 $vstr = "";
 if ($verbose != 0) { $vstr = "-v"; }
 $ENV{'PATH'} = "$prefix@ldaptool_bindir@:$prefix/usr/bin:@ldaptool_bindir@:/usr/bin";
-$ENV{'LD_LIBRARY_PATH'} = "$prefix@nss_libdir@:$prefix/usr/lib:@nss_libdir@:/usr/lib";
-$ENV{'SHLIB_PATH'} = "$prefix@nss_libdir@:$prefix/usr/lib:@nss_libdir@:/usr/lib";
+
+libpath_add("$prefix@nss_libdir@");
+libpath_add("$prefix/usr/lib");
+libpath_add("@nss_libdir@");
+libpath_add("/usr/lib");
+
+$ENV{'SHLIB_PATH'} = "$ENV{'LD_LIBRARY_PATH'}";
 open(FOO, "| ldapmodify @ldaptool_opts@ $vstr -h {{SERVER-NAME}} -p {{SERVER-PORT}} -D \"$rootdn\" -w \"$passwd\" -a" );
 print(FOO "$entry");
 close(FOO);
+
+sub libpath_add {
+    my $libpath = shift;
+
+    if ($libpath) {
+        if ($ENV{'LD_LIBRARY_PATH'}) {
+            $ENV{'LD_LIBRARY_PATH'} = "$ENV{'LD_LIBRARY_PATH'}:$libpath";
+        } else {
+            $ENV{'LD_LIBRARY_PATH'} = "$libpath";
+        }
+    }
+}

+ 11 - 4
ldap/admin/src/scripts/template-db2bak.in

@@ -4,10 +4,17 @@ prefix="{{DS-ROOT}}"
 if [ "$prefix" = "/" ] ; then
     prefix=""
 fi
-LD_LIBRARY_PATH=$prefix/{{SERVER-DIR}}:$prefix@nss_libdir@:$prefix@libdir@:$prefix@pcre_libdir@
-if [ -n "$prefix" ] ; then
-    LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:@nss_libdir@"
-fi
+
+libpath_add() {
+    [ -z "$1" ] && return
+    LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$1
+}
+
+libpath_add "$prefix{{SERVER-DIR}}"
+libpath_add "$prefix@nss_libdir@"
+libpath_add "$prefix@libdir@"
+libpath_add "$prefix@pcre_libdir@"
+
 export LD_LIBRARY_PATH
 SHLIB_PATH=$LD_LIBRARY_PATH
 export SHLIB_PATH

+ 19 - 2
ldap/admin/src/scripts/template-db2bak.pl.in

@@ -114,9 +114,26 @@ $entry = "${dn}${misc}${cn}${nsarchivedir}${nsdbtype}";
 $vstr = "";
 if ($verbose != 0) { $vstr = "-v"; }
 $ENV{'PATH'} = "$prefix@ldaptool_bindir@:$prefix/usr/bin:@ldaptool_bindir@:/usr/bin";
-$ENV{'LD_LIBRARY_PATH'} = "$prefix@nss_libdir@:$prefix/usr/lib:@nss_libdir@:/usr/lib";
-$ENV{'SHLIB_PATH'} = "$prefix@nss_libdir@:$prefix/usr/lib:@nss_libdir@:/usr/lib";
+
+libpath_add("$prefix@nss_libdir@");
+libpath_add("$prefix/usr/lib");
+libpath_add("@nss_libdir@");
+libpath_add("/usr/lib");
+
+$ENV{'SHLIB_PATH'} = "$ENV{'LD_LIBRARY_PATH'}";
 print("Back up directory: $archivedir\n");
 open(FOO, "| ldapmodify @ldaptool_opts@ $vstr -h {{SERVER-NAME}} -p {{SERVER-PORT}} -D \"$rootdn\" -w \"$passwd\" -a" );
 print(FOO "$entry");
 close(FOO);
+
+sub libpath_add {
+    my $libpath = shift;
+
+    if ($libpath) {
+        if ($ENV{'LD_LIBRARY_PATH'}) {
+            $ENV{'LD_LIBRARY_PATH'} = "$ENV{'LD_LIBRARY_PATH'}:$libpath";
+        } else {
+            $ENV{'LD_LIBRARY_PATH'} = "$libpath";
+        }
+    }
+}

+ 10 - 4
ldap/admin/src/scripts/template-db2index.in

@@ -4,10 +4,16 @@ prefix="{{DS-ROOT}}"
 if [ "$prefix" = "/" ] ; then
     prefix=""
 fi
-LD_LIBRARY_PATH=$prefix/{{SERVER-DIR}}:$prefix@nss_libdir@:$prefix@libdir@:$prefix@pcre_libdir@
-if [ -n "$prefix" ] ; then
-    LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:@nss_libdir@"
-fi
+libpath_add() {
+    [ -z "$1" ] && return
+    LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$1
+}
+
+libpath_add "$prefix{{SERVER-DIR}}"
+libpath_add "$prefix@nss_libdir@"
+libpath_add "$prefix@libdir@"
+libpath_add "$prefix@pcre_libdir@"
+
 export LD_LIBRARY_PATH
 SHLIB_PATH=$LD_LIBRARY_PATH
 export SHLIB_PATH

+ 19 - 2
ldap/admin/src/scripts/template-db2index.pl.in

@@ -69,8 +69,13 @@ $verbose = 0;
 $prefix = "{{DS-ROOT}}";
 
 $ENV{'PATH'} = "$prefix@ldaptool_bindir@:$prefix/usr/bin:@ldaptool_bindir@:/usr/bin";
-$ENV{'LD_LIBRARY_PATH'} = "$prefix@nss_libdir@:$prefix/usr/lib:@nss_libdir@:/usr/lib";
-$ENV{'SHLIB_PATH'} = "$prefix@nss_libdir@:$prefix/usr/lib:@nss_libdir@:/usr/lib";
+
+libpath_add("$prefix@nss_libdir@");
+libpath_add("$prefix/usr/lib");
+libpath_add("@nss_libdir@");
+libpath_add("/usr/lib");
+
+$ENV{'SHLIB_PATH'} = "$ENV{'LD_LIBRARY_PATH'}";
 
 $i = 0;
 while ($i <= $#ARGV) 
@@ -224,3 +229,15 @@ $entry = "${dn}${misc}${cn}${nsinstance}${attribute}${vlvattribute}";
 open(FOO, "| ldapmodify @ldaptool_opts@ $vstr -h {{SERVER-NAME}} -p {{SERVER-PORT}} -D \"$rootdn\" -w \"$passwd\" -a" );
 print(FOO "$entry");
 close(FOO);
+
+sub libpath_add {
+    my $libpath = shift;
+
+    if ($libpath) {
+        if ($ENV{'LD_LIBRARY_PATH'}) {
+            $ENV{'LD_LIBRARY_PATH'} = "$ENV{'LD_LIBRARY_PATH'}:$libpath";
+        } else {
+            $ENV{'LD_LIBRARY_PATH'} = "$libpath";
+        }
+    }
+}

+ 11 - 4
ldap/admin/src/scripts/template-db2ldif.in

@@ -4,10 +4,17 @@ prefix="{{DS-ROOT}}"
 if [ "$prefix" = "/" ] ; then
     prefix=""
 fi
-LD_LIBRARY_PATH=$prefix/{{SERVER-DIR}}:$prefix@nss_libdir@:$prefix@libdir@:$prefix@pcre_libdir@
-if [ -n "$prefix" ] ; then
-    LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:@nss_libdir@"
-fi
+
+libpath_add() {
+    [ -z "$1" ] && return
+    LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$1
+}
+
+libpath_add "$prefix{{SERVER-DIR}}"
+libpath_add "$prefix@nss_libdir@"
+libpath_add "$prefix@libdir@"
+libpath_add "$prefix@pcre_libdir@"
+
 export LD_LIBRARY_PATH
 SHLIB_PATH=$LD_LIBRARY_PATH
 export SHLIB_PATH

+ 19 - 2
ldap/admin/src/scripts/template-db2ldif.pl.in

@@ -258,9 +258,26 @@ $entry = "${dn}${misc}${cn}${nsinstance}${nsincluded}${nsexcluded}${nsreplica}${
 $vstr = "";
 if ($verbose != 0) { $vstr = "-v"; }
 $ENV{'PATH'} = "$prefix@ldaptool_bindir@:$prefix/usr/bin:@ldaptool_bindir@:/usr/bin";
-$ENV{'LD_LIBRARY_PATH'} = "$prefix@nss_libdir@:$prefix/usr/lib:@nss_libdir@:/usr/lib";
-$ENV{'SHLIB_PATH'} = "$prefix@nss_libdir@:$prefix/usr/lib:@nss_libdir@:/usr/lib";
+
+libpath_add("$prefix@nss_libdir@");
+libpath_add("$prefix/usr/lib");
+libpath_add("@nss_libdir@");
+libpath_add("/usr/lib");
+
+$ENV{'SHLIB_PATH'} = "$ENV{'LD_LIBRARY_PATH'}";
 print("Exporting to ldif file: ${ldiffile}\n");
 open(FOO, "| ldapmodify @ldaptool_opts@ $vstr -h {{SERVER-NAME}} -p {{SERVER-PORT}} -D \"$rootdn\" -w \"$passwd\" -a" );
 print(FOO "$entry");
 close(FOO);
+
+sub libpath_add {
+    my $libpath = shift;
+
+    if ($libpath) {
+        if ($ENV{'LD_LIBRARY_PATH'}) {
+            $ENV{'LD_LIBRARY_PATH'} = "$ENV{'LD_LIBRARY_PATH'}:$libpath";
+        } else {
+            $ENV{'LD_LIBRARY_PATH'} = "$libpath";
+        }
+    }
+}

+ 11 - 4
ldap/admin/src/scripts/template-dbverify.in

@@ -4,10 +4,17 @@ prefix="{{DS-ROOT}}"
 if [ "$prefix" = "/" ] ; then
     prefix=""
 fi
-LD_LIBRARY_PATH=$prefix/{{SERVER-DIR}}:$prefix@nss_libdir@:$prefix@libdir@:$prefix@pcre_libdir@
-if [ -n "$prefix" ] ; then
-    LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:@nss_libdir@"
-fi
+
+libpath_add() {
+    [ -z "$1" ] && return
+    LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$1
+}
+
+libpath_add "$prefix{{SERVER-DIR}}"
+libpath_add "$prefix@nss_libdir@"
+libpath_add "$prefix@libdir@"
+libpath_add "$prefix@pcre_libdir@"
+
 export LD_LIBRARY_PATH
 SHLIB_PATH=$LD_LIBRARY_PATH
 export SHLIB_PATH

+ 10 - 4
ldap/admin/src/scripts/template-dn2rdn.in

@@ -4,10 +4,16 @@ prefix="{{DS-ROOT}}"
 if [ "$prefix" = "/" ] ; then
     prefix=""
 fi
-LD_LIBRARY_PATH=$prefix/{{SERVER-DIR}}:$prefix@nss_libdir@:$prefix@libdir@
-if [ -n "$prefix" ] ; then
-    LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:@nss_libdir@"
-fi
+
+libpath_add() {
+    [ -z "$1" ] && return
+    LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$1
+}
+
+libpath_add "$prefix{{SERVER-DIR}}"
+libpath_add "$prefix@nss_libdir@"
+libpath_add "$prefix@libdir@"
+
 export LD_LIBRARY_PATH
 SHLIB_PATH=$LD_LIBRARY_PATH
 export SHLIB_PATH

+ 19 - 2
ldap/admin/src/scripts/template-fixup-linkedattrs.pl.in

@@ -61,8 +61,13 @@ $verbose = 0;
 $prefix = "{{DS-ROOT}}";
 
 $ENV{'PATH'} = "$prefix@ldaptool_bindir@:$prefix/usr/bin:@ldaptool_bindir@:/usr/bin";
-$ENV{'LD_LIBRARY_PATH'} = "$prefix@nss_libdir@:$prefix/usr/lib:@nss_libdir@:/usr/lib";
-$ENV{'SHLIB_PATH'} = "$prefix@nss_libdir@:$prefix/usr/lib:@nss_libdir@:/usr/lib";
+
+libpath_add("$prefix@nss_libdir@");
+libpath_add("$prefix/usr/lib");
+libpath_add("@nss_libdir@");
+libpath_add("/usr/lib");
+
+$ENV{'SHLIB_PATH'} = "$ENV{'LD_LIBRARY_PATH'}";
 
 $i = 0;
 while ($i <= $#ARGV) 
@@ -150,3 +155,15 @@ $entry = "${dn}${misc}${cn}${basedn}${linkdn}";
 open(FOO, "| ldapmodify @ldaptool_opts@ $vstr -h {{SERVER-NAME}} -p {{SERVER-PORT}} -D \"$rootdn\" -w \"$passwd\" -a" );
 print(FOO "$entry");
 close(FOO);
+
+sub libpath_add {
+    my $libpath = shift;
+
+    if ($libpath) {
+        if ($ENV{'LD_LIBRARY_PATH'}) {
+            $ENV{'LD_LIBRARY_PATH'} = "$ENV{'LD_LIBRARY_PATH'}:$libpath";
+        } else {
+            $ENV{'LD_LIBRARY_PATH'} = "$libpath";
+        }
+    }
+}

+ 19 - 2
ldap/admin/src/scripts/template-fixup-memberof.pl.in

@@ -65,8 +65,13 @@ $verbose = 0;
 $prefix = "{{DS-ROOT}}";
 
 $ENV{'PATH'} = "$prefix@ldaptool_bindir@:$prefix/usr/bin:@ldaptool_bindir@:/usr/bin";
-$ENV{'LD_LIBRARY_PATH'} = "$prefix@nss_libdir@:$prefix/usr/lib:@nss_libdir@:/usr/lib";
-$ENV{'SHLIB_PATH'} = "$prefix@nss_libdir@:$prefix/usr/lib:@nss_libdir@:/usr/lib";
+
+libpath_add("$prefix@nss_libdir@");
+libpath_add("$prefix/usr/lib");
+libpath_add("@nss_libdir@");
+libpath_add("/usr/lib");
+
+$ENV{'SHLIB_PATH'} = "$ENV{'LD_LIBRARY_PATH'}";
 
 $i = 0;
 while ($i <= $#ARGV) 
@@ -161,3 +166,15 @@ $entry = "${dn}${misc}${cn}${basedn}${filter}";
 open(FOO, "| ldapmodify @ldaptool_opts@ $vstr -h {{SERVER-NAME}} -p {{SERVER-PORT}} -D \"$rootdn\" -w \"$passwd\" -a" );
 print(FOO "$entry");
 close(FOO);
+
+sub libpath_add {
+    my $libpath = shift;
+
+    if ($libpath) {
+        if ($ENV{'LD_LIBRARY_PATH'}) {
+            $ENV{'LD_LIBRARY_PATH'} = "$ENV{'LD_LIBRARY_PATH'}:$libpath";
+        } else {
+            $ENV{'LD_LIBRARY_PATH'} = "$libpath";
+        }
+    }
+}

+ 11 - 4
ldap/admin/src/scripts/template-ldif2db.in

@@ -4,10 +4,17 @@ prefix="{{DS-ROOT}}"
 if [ "$prefix" = "/" ] ; then
     prefix=""
 fi
-LD_LIBRARY_PATH=$prefix/{{SERVER-DIR}}:$prefix@nss_libdir@:$prefix@libdir@:$prefix@pcre_libdir@
-if [ -n "$prefix" ] ; then
-    LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:@nss_libdir@"
-fi
+
+libpath_add() {
+    [ -z "$1" ] && return
+    LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$1
+}
+
+libpath_add "$prefix{{SERVER-DIR}}"
+libpath_add "$prefix@nss_libdir@"
+libpath_add "$prefix@libdir@"
+libpath_add "$prefix@pcre_libdir@"
+
 export LD_LIBRARY_PATH
 SHLIB_PATH=$LD_LIBRARY_PATH
 export SHLIB_PATH

+ 19 - 2
ldap/admin/src/scripts/template-ldif2db.pl.in

@@ -217,8 +217,25 @@ $entry = "${dn}${misc}${cn}${nsinstance}${nsincluded}${nsexcluded}${nsldiffiles}
 $vstr = "";
 if ($verbose != 0) { $vstr = "-v"; }
 $ENV{'PATH'} = "$prefix@ldaptool_bindir@:$prefix/usr/bin:@ldaptool_bindir@:/usr/bin";
-$ENV{'LD_LIBRARY_PATH'} = "$prefix@nss_libdir@:$prefix/usr/lib:@nss_libdir@:/usr/lib";
-$ENV{'SHLIB_PATH'} = "$prefix@nss_libdir@:$prefix/usr/lib:@nss_libdir@:/usr/lib";
+
+libpath_add("$prefix@nss_libdir@");
+libpath_add("$prefix/usr/lib");
+libpath_add("@nss_libdir@");
+libpath_add("/usr/lib");
+
+$ENV{'SHLIB_PATH'} = "$ENV{'LD_LIBRARY_PATH'}";
 open(FOO, "| ldapmodify @ldaptool_opts@ $vstr -h {{SERVER-NAME}} -p {{SERVER-PORT}} -D \"$rootdn\" -w \"$passwd\" -a" );
 print(FOO "$entry");
 close(FOO);
+
+sub libpath_add {
+    my $libpath = shift;
+
+    if ($libpath) {
+        if ($ENV{'LD_LIBRARY_PATH'}) {
+            $ENV{'LD_LIBRARY_PATH'} = "$ENV{'LD_LIBRARY_PATH'}:$libpath";
+        } else {
+            $ENV{'LD_LIBRARY_PATH'} = "$libpath";
+        }
+    }
+}

+ 14 - 3
ldap/admin/src/scripts/template-ldif2ldap.in

@@ -5,10 +5,21 @@ if [ "$prefix" = "/" ] ; then
     prefix=""
 fi
 
-PATH=$prefix@ldaptool_bindir@:@ldaptool_bindir@
-LD_LIBRARY_PATH=$prefix@ldapsdk_libdir@:@ldapsdk_libdir@:$prefix@nss_libdir@:$prefix@libdir@:@nss_libdir@
+libpath_add() {
+    [ -z "$1" ] && return
+    LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$1
+}
+
+libpath_add "$prefix@ldapsdk_libdir@"
+libpath_add "@ldapsdk_libdir@"
+libpath_add "$prefix@nss_libdir@"
+libpath_add "$prefix@libdir@"
+libpath_add "@nss_libdir@"
+
 export LD_LIBRARY_PATH
-SHLIB_PATH=$prefix@ldapsdk_libdir@:@ldapsdk_libdir@:$prefix@nss_libdir@:$prefix@libdir@:@nss_libdir@
+SHLIB_PATH=$LD_LIBRARY_PATH
 export SHLIB_PATH
 
+PATH=$prefix@ldaptool_bindir@:@ldaptool_bindir@
+
 ldapmodify @ldaptool_opts@ -a -p {{SERVER-PORT}} -D "$1" -w "$2" -f $3

+ 14 - 3
ldap/admin/src/scripts/template-monitor.in

@@ -1,11 +1,22 @@
 #!/bin/sh
 
-PATH=$prefix@ldaptool_bindir@:@ldaptool_bindir@
-LD_LIBRARY_PATH=$prefix@ldapsdk_libdir@:@ldapsdk_libdir@:$prefix@nss_libdir@:$prefix@libdir@:@nss_libdir@
+libpath_add() {
+    [ -z "$1" ] && return
+    LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$1
+}
+
+libpath_add "$prefix@ldapsdk_libdir@"
+libpath_add "@ldapsdk_libdir@"
+libpath_add "$prefix@nss_libdir@"
+libpath_add "$prefix@libdir@"
+libpath_add "@nss_libdir@"
+
 export LD_LIBRARY_PATH
-SHLIB_PATH=$prefix@ldapsdk_libdir@:@ldapsdk_libdir@:$prefix@nss_libdir@:$prefix@libdir@:@nss_libdir@
+SHLIB_PATH=$LD_LIBRARY_PATH
 export SHLIB_PATH
 
+PATH=$prefix@ldaptool_bindir@:@ldaptool_bindir@
+
 if [ "x$1" != "x" ];
 then MDN="$1";
 else MDN="cn=monitor";

+ 19 - 2
ldap/admin/src/scripts/template-ns-accountstatus.pl.in

@@ -393,8 +393,13 @@ else
 debug("Running ** $cmd ** $operation\n");
 
 $ENV{'PATH'} = "$prefix@ldaptool_bindir@:$prefix/usr/bin:@ldaptool_bindir@:/usr/bin";
-$ENV{'LD_LIBRARY_PATH'} = "$prefix@nss_libdir@:$prefix/usr/lib:@nss_libdir@:/usr/lib";
-$ENV{'SHLIB_PATH'} = "$prefix@nss_libdir@:$prefix/usr/lib:@nss_libdir@:/usr/lib";
+
+libpath_add("$prefix@nss_libdir@");
+libpath_add("$prefix/usr/lib");
+libpath_add("@nss_libdir@");
+libpath_add("/usr/lib");
+
+$ENV{'SHLIB_PATH'} = "$ENV{'LD_LIBRARY_PATH'}";
 
 $ldapsearch="ldapsearch @ldaptool_opts@ @plainldif_opts@";
 $ldapmodify="ldapmodify @ldaptool_opts@";
@@ -842,3 +847,15 @@ debug("$modrole, $entry\n");
 
 out("$entry $state.\n");
 exit 0;
+
+sub libpath_add {
+    my $libpath = shift;
+
+    if ($libpath) {
+        if ($ENV{'LD_LIBRARY_PATH'}) {
+            $ENV{'LD_LIBRARY_PATH'} = "$ENV{'LD_LIBRARY_PATH'}:$libpath";
+        } else {
+            $ENV{'LD_LIBRARY_PATH'} = "$libpath";
+        }
+    }
+}

+ 19 - 2
ldap/admin/src/scripts/template-ns-activate.pl.in

@@ -393,8 +393,13 @@ else
 debug("Running ** $cmd ** $operation\n");
 
 $ENV{'PATH'} = "$prefix@ldaptool_bindir@:$prefix/usr/bin:@ldaptool_bindir@:/usr/bin";
-$ENV{'LD_LIBRARY_PATH'} = "$prefix@nss_libdir@:$prefix/usr/lib:@nss_libdir@:/usr/lib";
-$ENV{'SHLIB_PATH'} = "$prefix@nss_libdir@:$prefix/usr/lib:@nss_libdir@:/usr/lib";
+
+libpath_add("$prefix@nss_libdir@");
+libpath_add("$prefix/usr/lib");
+libpath_add("@nss_libdir@");
+libpath_add("/usr/lib");
+
+$ENV{'SHLIB_PATH'} = "$ENV{'LD_LIBRARY_PATH'}";
 
 $ldapsearch="ldapsearch @ldaptool_opts@ @plainldif_opts@";
 $ldapmodify="ldapmodify @ldaptool_opts@";
@@ -842,3 +847,15 @@ debug("$modrole, $entry\n");
 
 out("$entry $state.\n");
 exit 0;
+
+sub libpath_add {
+    my $libpath = shift;
+
+    if ($libpath) {
+        if ($ENV{'LD_LIBRARY_PATH'}) {
+            $ENV{'LD_LIBRARY_PATH'} = "$ENV{'LD_LIBRARY_PATH'}:$libpath";
+        } else {
+            $ENV{'LD_LIBRARY_PATH'} = "$libpath";
+        }
+    }
+}

+ 19 - 2
ldap/admin/src/scripts/template-ns-inactivate.pl.in

@@ -393,8 +393,13 @@ else
 debug("Running ** $cmd ** $operation\n");
 
 $ENV{'PATH'} = "$prefix@ldaptool_bindir@:$prefix/usr/bin:@ldaptool_bindir@:/usr/bin";
-$ENV{'LD_LIBRARY_PATH'} = "$prefix@nss_libdir@:$prefix/usr/lib:@nss_libdir@:/usr/lib";
-$ENV{'SHLIB_PATH'} = "$prefix@nss_libdir@:$prefix/usr/lib:@nss_libdir@:/usr/lib";
+
+libpath_add("$prefix@nss_libdir@");
+libpath_add("$prefix/usr/lib");
+libpath_add("@nss_libdir@");
+libpath_add("/usr/lib");
+
+$ENV{'SHLIB_PATH'} = "$ENV{'LD_LIBRARY_PATH'}";
 
 $ldapsearch="ldapsearch @ldaptool_opts@ @plainldif_opts@";
 $ldapmodify="ldapmodify @ldaptool_opts@";
@@ -842,3 +847,15 @@ debug("$modrole, $entry\n");
 
 out("$entry $state.\n");
 exit 0;
+
+sub libpath_add {
+    my $libpath = shift;
+
+    if ($libpath) {
+        if ($ENV{'LD_LIBRARY_PATH'}) {
+            $ENV{'LD_LIBRARY_PATH'} = "$ENV{'LD_LIBRARY_PATH'}:$libpath";
+        } else {
+            $ENV{'LD_LIBRARY_PATH'} = "$libpath";
+        }
+    }
+}

+ 19 - 2
ldap/admin/src/scripts/template-ns-newpwpolicy.pl.in

@@ -47,8 +47,13 @@ use lib qw(@perlpath@);
 $prefix = "{{DS-ROOT}}";
 
 $ENV{'PATH'} = "$prefix@ldaptool_bindir@:$prefix/usr/bin:@ldaptool_bindir@:/usr/bin";
-$ENV{'LD_LIBRARY_PATH'} = "$prefix@nss_libdir@:$prefix/usr/lib:@nss_libdir@:/usr/lib";
-$ENV{'SHLIB_PATH'} = "$prefix@nss_libdir@:$prefix/usr/lib:@nss_libdir@:/usr/lib";
+
+libpath_add("$prefix@nss_libdir@");
+libpath_add("$prefix/usr/lib");
+libpath_add("@nss_libdir@");
+libpath_add("/usr/lib");
+
+$ENV{'SHLIB_PATH'} = "$ENV{'LD_LIBRARY_PATH'}";
 # Add new password policy specific entries
 
 #############################################################################
@@ -283,3 +288,15 @@ sub usage {
 		}
 	} # end of $opt_U
 }
+
+sub libpath_add {
+    my $libpath = shift;
+
+    if ($libpath) {
+        if ($ENV{'LD_LIBRARY_PATH'}) {
+            $ENV{'LD_LIBRARY_PATH'} = "$ENV{'LD_LIBRARY_PATH'}:$libpath";
+        } else {
+            $ENV{'LD_LIBRARY_PATH'} = "$libpath";
+        }
+    }
+}

+ 13 - 2
ldap/admin/src/scripts/template-restoreconfig.in

@@ -1,9 +1,20 @@
 #!/bin/sh
 
 prefix="{{DS-ROOT}}"
-LD_LIBRARY_PATH=$prefix/{{SERVER-DIR}}:$prefix@nss_libdir@:$prefix@libdir@:@nss_libdir@:$prefix@pcre_libdir@
+
+libpath_add() {
+    [ -z "$1" ] && return
+    LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$1
+}
+
+libpath_add "$prefix{{SERVER-DIR}}"
+libpath_add "$prefix@nss_libdir@"
+libpath_add "$prefix@libdir@"
+libpath_add "@nss_libdir@"
+libpath_add "$prefix@pcre_libdir@"
+
 export LD_LIBRARY_PATH
-SHLIB_PATH=$prefix/{{SERVER-DIR}}:$prefix@nss_libdir@:$prefix@libdir@:@nss_libdir@:$prefix@pcre_libdir@
+SHLIB_PATH=$LD_LIBRARY_PATH
 export SHLIB_PATH
 
 cd {{SERVERBIN-DIR}}

+ 13 - 2
ldap/admin/src/scripts/template-saveconfig.in

@@ -1,9 +1,20 @@
 #!/bin/sh
 
 prefix="{{DS-ROOT}}"
-LD_LIBRARY_PATH=$prefix/{{SERVER-DIR}}:$prefix@nss_libdir@:$prefix@libdir@:@nss_libdir@:$prefix@pcre_libdir@
+
+libpath_add() {
+    [ -z "$1" ] && return
+    LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$1
+}
+
+libpath_add "$prefix{{SERVER-DIR}}"
+libpath_add "$prefix@nss_libdir@"
+libpath_add "$prefix@libdir@"
+libpath_add "@nss_libdir@"
+libpath_add "$prefix@pcre_libdir@"
+
 export LD_LIBRARY_PATH
-SHLIB_PATH=$prefix/{{SERVER-DIR}}:$prefix@nss_libdir@:$prefix@libdir@:@nss_libdir@:$prefix@pcre_libdir@
+SHLIB_PATH=$LD_LIBRARY_PATH
 export SHLIB_PATH
 
 cd {{SERVERBIN-DIR}}

+ 19 - 2
ldap/admin/src/scripts/template-schema-reload.pl.in

@@ -60,8 +60,13 @@ $verbose = 0;
 $prefix = "{{DS-ROOT}}";
 
 $ENV{'PATH'} = "$prefix@ldaptool_bindir@:$prefix/usr/bin:@ldaptool_bindir@:/usr/bin";
-$ENV{'LD_LIBRARY_PATH'} = "$prefix@nss_libdir@:$prefix/usr/lib:@nss_libdir@:/usr/lib";
-$ENV{'SHLIB_PATH'} = "$prefix@nss_libdir@:$prefix/usr/lib:@nss_libdir@:/usr/lib";
+
+libpath_add("$prefix@nss_libdir@");
+libpath_add("$prefix/usr/lib");
+libpath_add("@nss_libdir@");
+libpath_add("/usr/lib");
+
+$ENV{'SHLIB_PATH'} = "$ENV{'LD_LIBRARY_PATH'}";
 
 $i = 0;
 while ($i <= $#ARGV) 
@@ -150,3 +155,15 @@ $entry = "${dn}${misc}${cn}${basedn}${schemadir}";
 open(FOO, "| ldapmodify @ldaptool_opts@ $vstr -h {{SERVER-NAME}} -p {{SERVER-PORT}} -D \"$rootdn\" -w \"$passwd\" -a" );
 print(FOO "$entry");
 close(FOO);
+
+sub libpath_add {
+    my $libpath = shift;
+
+    if ($libpath) {
+        if ($ENV{'LD_LIBRARY_PATH'}) {
+            $ENV{'LD_LIBRARY_PATH'} = "$ENV{'LD_LIBRARY_PATH'}:$libpath";
+        } else {
+            $ENV{'LD_LIBRARY_PATH'} = "$libpath";
+        }
+    }
+}

+ 13 - 2
ldap/admin/src/scripts/template-suffix2instance.in

@@ -1,9 +1,20 @@
 #!/bin/sh
 
 prefix="{{DS-ROOT}}"
-LD_LIBRARY_PATH=$prefix/{{SERVER-DIR}}:$prefix@nss_libdir@:$prefix@libdir@:@nss_libdir@:$prefix@pcre_libdir@
+
+libpath_add() {
+    [ -z "$1" ] && return
+    LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$1
+}
+
+libpath_add "$prefix{{SERVER-DIR}}"
+libpath_add "$prefix@nss_libdir@"
+libpath_add "$prefix@libdir@"
+libpath_add "@nss_libdir@"
+libpath_add "$prefix@pcre_libdir@"
+
 export LD_LIBRARY_PATH
-SHLIB_PATH=$prefix/{{SERVER-DIR}}:$prefix@nss_libdir@:$prefix@libdir@:@nss_libdir@:$prefix@pcre_libdir@
+SHLIB_PATH=$LD_LIBRARY_PATH
 export SHLIB_PATH
 
 cd {{SERVERBIN-DIR}}

+ 19 - 2
ldap/admin/src/scripts/template-syntax-validate.pl.in

@@ -65,8 +65,13 @@ $verbose = 0;
 $prefix = "{{DS-ROOT}}";
 
 $ENV{'PATH'} = "$prefix@ldaptool_bindir@:$prefix/usr/bin:@ldaptool_bindir@:/usr/bin";
-$ENV{'LD_LIBRARY_PATH'} = "$prefix@nss_libdir@:$prefix/usr/lib:@nss_libdir@:/usr/lib";
-$ENV{'SHLIB_PATH'} = "$prefix@nss_libdir@:$prefix/usr/lib:@nss_libdir@:/usr/lib";
+
+libpath_add("$prefix@nss_libdir@");
+libpath_add("$prefix/usr/lib");
+libpath_add("@nss_libdir@");
+libpath_add("/usr/lib");
+
+$ENV{'SHLIB_PATH'} = "$ENV{'LD_LIBRARY_PATH'}";
 
 $i = 0;
 while ($i <= $#ARGV) 
@@ -161,3 +166,15 @@ $entry = "${dn}${misc}${cn}${basedn}${filter}";
 open(FOO, "| ldapmodify @ldaptool_opts@ $vstr -h {{SERVER-NAME}} -p {{SERVER-PORT}} -D \"$rootdn\" -w \"$passwd\" -a" );
 print(FOO "$entry");
 close(FOO);
+
+sub libpath_add {
+    my $libpath = shift;
+
+    if ($libpath) {
+        if ($ENV{'LD_LIBRARY_PATH'}) {
+            $ENV{'LD_LIBRARY_PATH'} = "$ENV{'LD_LIBRARY_PATH'}:$libpath";
+        } else {
+            $ENV{'LD_LIBRARY_PATH'} = "$libpath";
+        }
+    }
+}

+ 13 - 2
ldap/admin/src/scripts/template-upgradedb.in

@@ -1,9 +1,20 @@
 #!/bin/sh
 
 prefix="{{DS-ROOT}}"
-LD_LIBRARY_PATH=$prefix/{{SERVER-DIR}}:$prefix@nss_libdir@:$prefix@libdir@:@nss_libdir@:$prefix@pcre_libdir@
+
+libpath_add() {
+    [ -z "$1" ] && return
+    LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$1
+}
+
+libpath_add "$prefix{{SERVER-DIR}}"
+libpath_add "$prefix@nss_libdir@"
+libpath_add "$prefix@libdir@"
+libpath_add "@nss_libdir@"
+libpath_add "$prefix@pcre_libdir@"
+
 export LD_LIBRARY_PATH
-SHLIB_PATH=$prefix/{{SERVER-DIR}}:$prefix@nss_libdir@:$prefix@libdir@:@nss_libdir@:$prefix@pcre_libdir@
+SHLIB_PATH=$LD_LIBRARY_PATH
 export SHLIB_PATH
 
 cd {{SERVERBIN-DIR}}

+ 11 - 4
ldap/admin/src/scripts/template-upgradednformat.in

@@ -11,10 +11,17 @@ prefix="{{DS-ROOT}}"
 if [ "$prefix" = "/" ] ; then
     prefix=""
 fi
-LD_LIBRARY_PATH=$prefix/{{SERVER-DIR}}:$prefix@nss_libdir@:$prefix@libdir@:$prefix@pcre_libdir@
-if [ -n "$prefix" ] ; then
-    LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:@nss_libdir@"
-fi
+
+libpath_add() {
+    [ -z "$1" ] && return
+    LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$1
+}
+
+libpath_add "$prefix{{SERVER-DIR}}"
+libpath_add "$prefix@nss_libdir@"
+libpath_add "$prefix@libdir@"
+libpath_add "$prefix@pcre_libdir@"
+
 export LD_LIBRARY_PATH
 SHLIB_PATH=$LD_LIBRARY_PATH
 export SHLIB_PATH

+ 19 - 2
ldap/admin/src/scripts/template-usn-tombstone-cleanup.pl.in

@@ -64,8 +64,13 @@ $verbose = 0;
 $prefix = "{{DS-ROOT}}";
 
 $ENV{'PATH'} = "$prefix@ldaptool_bindir@:$prefix/usr/bin:@ldaptool_bindir@:/usr/bin";
-$ENV{'LD_LIBRARY_PATH'} = "$prefix@nss_libdir@:$prefix/usr/lib:@nss_libdir@:/usr/lib";
-$ENV{'SHLIB_PATH'} = "$prefix@nss_libdir@:$prefix/usr/lib:@nss_libdir@:/usr/lib";
+
+libpath_add("$prefix@nss_libdir@");
+libpath_add("$prefix/usr/lib");
+libpath_add("@nss_libdir@");
+libpath_add("/usr/lib");
+
+$ENV{'SHLIB_PATH'} = "$ENV{'LD_LIBRARY_PATH'}";
 
 $i = 0;
 while ($i <= $#ARGV) 
@@ -178,3 +183,15 @@ $entry = "${dn}${misc}${cn}${basedn}${args}";
 open(FOO, "| ldapmodify @ldaptool_opts@ $vstr -h {{SERVER-NAME}} -p {{SERVER-PORT}} -D \"$rootdn\" -w \"$passwd\" -a" );
 print(FOO "$entry");
 close(FOO);
+
+sub libpath_add {
+    my $libpath = shift;
+
+    if ($libpath) {
+        if ($ENV{'LD_LIBRARY_PATH'}) {
+            $ENV{'LD_LIBRARY_PATH'} = "$ENV{'LD_LIBRARY_PATH'}:$libpath";
+        } else {
+            $ENV{'LD_LIBRARY_PATH'} = "$libpath";
+        }
+    }
+}

+ 17 - 2
ldap/admin/src/scripts/template-verify-db.pl.in

@@ -170,8 +170,11 @@ my $dbdirs = getDbDir($startpoint);
 my $prefix = "{{DS-ROOT}}";
 
 $ENV{'PATH'} = "{{INST-DIR}}:$prefix@db_bindir@:$prefix/usr/bin:@db_bindir@:/usr/bin";
-$ENV{'LD_LIBRARY_PATH'} = "@db_libdir@:@libdir@";
-$ENV{'SHLIB_PATH'} = "@db_libdir@:@libdir@";
+
+libpath_add("@db_libdir@");
+libpath_add("@libdir@");
+
+$ENV{'SHLIB_PATH'} = "$ENV{'LD_LIBRARY_PATH'}";
 
 # Check transaction logs by db_printlog
 for (my $i = 0; "$$dbdirs[$i]" ne ""; $i++)
@@ -256,3 +259,15 @@ else
     print "Good\n";
     exit(0);
 }
+
+sub libpath_add {
+    my $libpath = shift;
+
+    if ($libpath) {
+        if ($ENV{'LD_LIBRARY_PATH'}) {
+            $ENV{'LD_LIBRARY_PATH'} = "$ENV{'LD_LIBRARY_PATH'}:$libpath";
+        } else {
+            $ENV{'LD_LIBRARY_PATH'} = "$libpath";
+        }
+    }
+}

+ 13 - 2
ldap/admin/src/scripts/template-vlvindex.in

@@ -1,9 +1,20 @@
 #!/bin/sh
 
 prefix="{{DS-ROOT}}"
-LD_LIBRARY_PATH=$prefix/{{SERVER-DIR}}:$prefix@nss_libdir@:$prefix@libdir@:@nss_libdir@:$prefix@pcre_libdir@
+
+libpath_add() {
+    [ -z "$1" ] && return
+    LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$1
+}
+
+libpath_add "$prefix{{SERVER-DIR}}"
+libpath_add "$prefix@nss_libdir@"
+libpath_add "$prefix@libdir@"
+libpath_add "@nss_libdir@"
+libpath_add "$prefix@pcre_libdir@"
+
 export LD_LIBRARY_PATH
-SHLIB_PATH=$prefix/{{SERVER-DIR}}:$prefix@nss_libdir@:$prefix@libdir@:@nss_libdir@:$prefix@pcre_libdir@
+SHLIB_PATH=$LD_LIBRARY_PATH
 export SHLIB_PATH
 
 cd {{SERVERBIN-DIR}}

+ 9 - 2
wrappers/cl-dump.in

@@ -43,8 +43,15 @@
 # wrapper for cl-dump.pl
 # set the library paths and call cl-dump.pl
 
-LD_LIBRARY_PATH=@nss_libdir@:/usr/lib
-SHLIB_PATH=@nss_libdir@:/usr/lib
+libpath_add() {
+    [ -z "$1" ] && return
+    LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$1
+}
+
+libpath_add "@nss_libdir@"
+libpath_add "/usr/lib"
+
+SHLIB_PATH=$LD_LIBRARY_PATH
 export LD_LIBRARY_PATH SHLIB_PATH
 
 @bindir@/cl-dump.pl "$@"

+ 8 - 2
wrappers/dbscan.in

@@ -4,7 +4,6 @@
 ##  (1) Specify variables used by this script.                               ##
 ###############################################################################
 
-LIB_DIR=@nspr_libdir@:@db_libdir@
 BIN_DIR=@bindir@
 COMMAND=dbscan-bin
 
@@ -14,7 +13,14 @@ COMMAND=dbscan-bin
 ##      search order this command wrapper uses to find shared libraries.     ##
 ###############################################################################
 
-LD_LIBRARY_PATH=${LIB_DIR}
+libpath_add() {
+    [ -z "$1" ] && return
+    LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$1
+}
+
+libpath_add "@nspr_libdir@"
+libpath_add "@db_libdir@"
+
 export LD_LIBRARY_PATH
 
 

+ 10 - 2
wrappers/infadd.in

@@ -4,7 +4,6 @@
 ##  (1) Specify variables used by this script.                               ##
 ###############################################################################
 
-LIB_DIR=@nss_libdir@:@nspr_libdir@:@ldapsdk_libdir@:@sasl_libdir@
 BIN_DIR=@bindir@
 COMMAND=infadd-bin
 
@@ -14,7 +13,16 @@ COMMAND=infadd-bin
 ##      search order this command wrapper uses to find shared libraries.     ##
 ###############################################################################
 
-LD_LIBRARY_PATH=${LIB_DIR}
+libpath_add() {
+    [ -z "$1" ] && return
+    LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$1
+}
+
+libpath_add "@nss_libdir@"
+libpath_add "@nspr_libdir@"
+libpath_add "@ldapsdk_libdir@"
+libpath_add "@sasl_libdir@"
+
 export LD_LIBRARY_PATH
 
 

+ 9 - 1
wrappers/initscript.in

@@ -60,6 +60,11 @@ success()
 }
 }
 
+libpath_add() {
+    [ -z "$1" ] && return
+    LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$1
+}
+
 # On Solaris /var/run is in tmpfs and gets wiped out upon reboot
 # we have to recreate the /var/run/@package_name@ directory
 # We also have to make sure that the directory is writable
@@ -150,7 +155,10 @@ if [ -n "$2" ]; then
 fi
 
 start() {
-    LD_LIBRARY_PATH=@libdir@/@package_name@:@nss_libdir@:@pcre_libdir@
+    libpath_add "@libdir@/@package_name@"
+    libpath_add "@nss_libdir@"
+    libpath_add "@pcre_libdir@"
+
     export LD_LIBRARY_PATH
     echo  "Starting $prog: "
     # Start every slapd instance that isn't already running

+ 10 - 2
wrappers/ldap-agent.in

@@ -4,7 +4,6 @@
 ##  (1) Specify variables used by this script.                               ##
 ###############################################################################
 
-LIB_DIR=@nss_libdir@:@nspr_libdir@:@ldapsdk_libdir@:@netsnmp_libdir@
 BIN_DIR=@sbindir@
 COMMAND=ldap-agent-bin
 
@@ -17,7 +16,16 @@ export MIBS
 ##      search order this command wrapper uses to find shared libraries.     ##
 ###############################################################################
 
-LD_LIBRARY_PATH=${LIB_DIR}
+libpath_add() {
+    [ -z "$1" ] && return
+    LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$1
+}
+
+libpath_add "@nss_libdir@"
+libpath_add "@nspr_libdir@"
+libpath_add "@ldapsdk_libdir@"
+libpath_add "@netsnmp_libdir@"
+
 export LD_LIBRARY_PATH
 
 

+ 10 - 2
wrappers/ldclt.in

@@ -4,7 +4,6 @@
 ##  (1) Specify variables used by this script.                               ##
 ###############################################################################
 
-LIB_DIR=@nss_libdir@:@nspr_libdir@:@ldapsdk_libdir@:@sasl_libdir@
 BIN_DIR=@bindir@
 COMMAND=ldclt-bin
 
@@ -14,7 +13,16 @@ COMMAND=ldclt-bin
 ##      search order this command wrapper uses to find shared libraries.     ##
 ###############################################################################
 
-LD_LIBRARY_PATH=${LIB_DIR}
+libpath_add() {
+    [ -z "$1" ] && return
+    LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$1
+}
+
+libpath_add "@nss_libdir@"
+libpath_add "@nspr_libdir@"
+libpath_add "@ldapsdk_libdir@"
+libpath_add "@sasl_libdir@"
+
 export LD_LIBRARY_PATH
 SASL_PATH=@sasl_path@
 export SASL_PATH

+ 10 - 2
wrappers/ldif.in

@@ -4,7 +4,6 @@
 ##  (1) Specify variables used by this script.                               ##
 ###############################################################################
 
-LIB_DIR=@nss_libdir@:@nspr_libdir@:@ldapsdk_libdir@:@sasl_libdir@
 BIN_DIR=@bindir@
 COMMAND=ldif-bin
 
@@ -14,7 +13,16 @@ COMMAND=ldif-bin
 ##      search order this command wrapper uses to find shared libraries.     ##
 ###############################################################################
 
-LD_LIBRARY_PATH=${LIB_DIR}
+libpath_add() {
+    [ -z "$1" ] && return
+    LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$1
+}
+
+libpath_add "@nss_libdir@"
+libpath_add "@nspr_libdir@"
+libpath_add "@ldapsdk_libdir@"
+libpath_add "@sasl_libdir@"
+
 export LD_LIBRARY_PATH
 
 

+ 12 - 2
wrappers/migratecred.in

@@ -4,7 +4,6 @@
 ##  (1) Specify variables used by this script.                               ##
 ###############################################################################
 
-LIB_DIR=@serverdir@:@nss_libdir@:@nspr_libdir@:@ldapsdk_libdir@:@sasl_libdir@:@pcre_libdir@
 BIN_DIR=@bindir@
 COMMAND=migratecred-bin
 
@@ -14,7 +13,18 @@ COMMAND=migratecred-bin
 ##      search order this command wrapper uses to find shared libraries.     ##
 ###############################################################################
 
-LD_LIBRARY_PATH=${LIB_DIR}
+libpath_add() {
+    [ -z "$1" ] && return
+    LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$1
+}
+
+libpath_add "@serverdir@"
+libpath_add "@nss_libdir@"
+libpath_add "@nspr_libdir@"
+libpath_add "@ldapsdk_libdir@"
+libpath_add "@sasl_libdir@"
+libpath_add "@pcre_libdir@"
+
 export LD_LIBRARY_PATH
 
 

+ 12 - 2
wrappers/mmldif.in

@@ -4,7 +4,6 @@
 ##  (1) Specify variables used by this script.                               ##
 ###############################################################################
 
-LIB_DIR=@serverdir@:@nss_libdir@:@nspr_libdir@:@ldapsdk_libdir@:@sasl_libdir@:@pcre_libdir@
 BIN_DIR=@bindir@
 COMMAND=mmldif-bin
 
@@ -14,7 +13,18 @@ COMMAND=mmldif-bin
 ##      search order this command wrapper uses to find shared libraries.     ##
 ###############################################################################
 
-LD_LIBRARY_PATH=${LIB_DIR}
+libpath_add() {
+    [ -z "$1" ] && return
+    LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$1
+}
+
+libpath_add "@serverdir@"
+libpath_add "@nss_libdir@"
+libpath_add "@nspr_libdir@"
+libpath_add "@ldapsdk_libdir@"
+libpath_add "@sasl_libdir@"
+libpath_add "@pcre_libdir@"
+
 export LD_LIBRARY_PATH
 
 

+ 12 - 2
wrappers/pwdhash.in

@@ -4,7 +4,6 @@
 ##  (1) Specify variables used by this script.                               ##
 ###############################################################################
 
-LIB_DIR=@serverdir@:@nss_libdir@:@nspr_libdir@:@ldapsdk_libdir@:@sasl_libdir@:@pcre_libdir@
 BIN_DIR=@bindir@
 COMMAND=pwdhash-bin
 
@@ -14,7 +13,18 @@ COMMAND=pwdhash-bin
 ##      search order this command wrapper uses to find shared libraries.     ##
 ###############################################################################
 
-LD_LIBRARY_PATH=${LIB_DIR}
+libpath_add() {
+    [ -z "$1" ] && return
+    LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$1
+}
+
+libpath_add "@serverdir@"
+libpath_add "@nss_libdir@"
+libpath_add "@nspr_libdir@"
+libpath_add "@ldapsdk_libdir@"
+libpath_add "@sasl_libdir@"
+libpath_add "@pcre_libdir@"
+
 export LD_LIBRARY_PATH
 
 

+ 9 - 2
wrappers/repl-monitor.in

@@ -43,8 +43,15 @@
 # wrapper for repl-monitor.pl
 # set the library paths and call repl-monitor.pl
 
-LD_LIBRARY_PATH=@nss_libdir@:/usr/lib
-SHLIB_PATH=@nss_libdir@:/usr/lib
+libpath_add() {
+    [ -z "$1" ] && return
+    LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$1
+}
+
+libpath_add "@nss_libdir@"
+libpath_add "/usr/lib"
+
+SHLIB_PATH=$LD_LIBRARY_PATH
 export LD_LIBRARY_PATH SHLIB_PATH
 
 @bindir@/repl-monitor.pl "$@"

+ 10 - 2
wrappers/rsearch.in

@@ -4,7 +4,6 @@
 ##  (1) Specify variables used by this script.                               ##
 ###############################################################################
 
-LIB_DIR=@nss_libdir@:@nspr_libdir@:@ldapsdk_libdir@:@sasl_libdir@
 BIN_DIR=@bindir@
 COMMAND=rsearch-bin
 
@@ -14,7 +13,16 @@ COMMAND=rsearch-bin
 ##      search order this command wrapper uses to find shared libraries.     ##
 ###############################################################################
 
-LD_LIBRARY_PATH=${LIB_DIR}
+libpath_add() {
+    [ -z "$1" ] && return
+    LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$1
+}
+
+libpath_add "@nss_libdir@"
+libpath_add "@nspr_libdir@"
+libpath_add "@ldapsdk_libdir@"
+libpath_add "@sasl_libdir@"
+
 export LD_LIBRARY_PATH