diff options
Diffstat (limited to 'ldap/admin/src')
-rw-r--r-- | ldap/admin/src/Makefile | 11 | ||||
-rw-r--r-- | ldap/admin/src/sec_tools_wrapper | 66 |
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+"$@"} |