summaryrefslogtreecommitdiffstats
path: root/ldap/admin/src
diff options
context:
space:
mode:
Diffstat (limited to 'ldap/admin/src')
-rw-r--r--ldap/admin/src/Makefile11
-rw-r--r--ldap/admin/src/sec_tools_wrapper66
2 files changed, 76 insertions, 1 deletions
diff --git a/ldap/admin/src/Makefile b/ldap/admin/src/Makefile
index e7d43c48..8e3de153 100644
--- a/ldap/admin/src/Makefile
+++ b/ldap/admin/src/Makefile
@@ -241,6 +241,9 @@ INST_INCLUDES = $(OBJDIR)/install_keywords.h
TEMPLATE_SCRIPTS_SRC = $(wildcard scripts/template-*)
TEMPLATE_SCRIPTS_DEST = $(subst scripts/,$(SCRIPTSDIR)/,$(TEMPLATE_SCRIPTS_SRC))
+# we wrap the security tools with a shell script wrapper for their ld libpath
+PACKAGE_SEC_TOOLS = $(addprefix $(RELDIR)/shared/bin/,$(SECURITY_TOOLS))
+
# We only need to do this if we have to ship 32 bit binaries in our 64 bit packages
# Right now, on rhel/linux, we ship all native 64 bit apps so we don't have to do
# this. We still may need to do this on solaris/hpux, but hopefully not for very
@@ -266,7 +269,7 @@ endif
all: $(BINDIR) $(OBJDEST) $(INST_INCLUDES) $(ALLOBJS) $(BINS) \
installPerlFiles $(SCRIPTSDIR) $(TEMPLATE_SCRIPTS_DEST) \
- $(FIX_SECMOD_DEP)
+ $(FIX_SECMOD_DEP) $(PACKAGE_SEC_TOOLS)
$(SCRIPTSDIR):
$(MKDIR) $@
@@ -381,3 +384,9 @@ $(SCRIPTSDIR)/template-%: scripts/template-% $(SCRIPTSDIR)
-@$(RM) $@
$(CP) $< $@
chmod +x $@
+
+$(RELDIR)/shared/bin/%: sec_tools_wrapper $(RELDIR)/shared/bin
+ -@$(RM) $@
+ $(CP) $< $@
+ chmod +x $@
+
diff --git a/ldap/admin/src/sec_tools_wrapper b/ldap/admin/src/sec_tools_wrapper
new file mode 100644
index 00000000..338a1569
--- /dev/null
+++ b/ldap/admin/src/sec_tools_wrapper
@@ -0,0 +1,66 @@
+#!/bin/sh
+#
+# 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) 2006 Red Hat, Inc.
+# All rights reserved.
+# END COPYRIGHT BLOCK
+#
+# This file is the wrapper around the security tools. It just sets the
+# runtime library lookup path and invokes the actual binary with the given
+# arguments. This file is copied to the actual name of the command e.g.
+# we get the binary certutil program from the NSS package. When we package
+# it, we rename it to certutil-bin e.g. cp $(NSS)/certutil shared/bin/certutil-bin
+# This file is copied to certutil e.g. cp sec_tools_wrapper shared/bin/certutil
+
+# figure out where the libdir is based on the location of this shell script
+savedir=`pwd`
+bindir=`dirname $0`
+if test -n "$bindir" ; then
+ cd $bindir/../lib
+else
+# could be running as e.g. ./certutil or certutil if current dir is in PATH
+ cd ../lib
+fi
+# assume the libdir is ../lib from the bindir e.g. sroot/shared/bin and sroot/shared/lib
+libdir=`pwd`
+cd $savedir
+
+# cover our bases on ld libpaths
+SHLIB_PATH=$libdir
+LIBPATH=$libdir
+LD_LIBRARY_PATH=$libdir
+DYLD_PATH=$libdir
+export SHLIB_PATH LIBPATH LD_LIBRARY_PATH DYLD_PATH
+
+$0-bin ${1+"$@"}