Prechádzať zdrojové kódy

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 rokov pred
rodič
commit
ce0dc222c3
43 zmenil súbory, kde vykonal 596 pridanie a 103 odobranie
  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