diff -ur lcgdm-1.8.2.orig/config/Imake.rules lcgdm-1.8.2/config/Imake.rules --- lcgdm-1.8.2.orig/config/Imake.rules 2011-12-06 15:29:45.424784129 +0100 +++ lcgdm-1.8.2/config/Imake.rules 2011-12-06 15:30:52.691786014 +0100 @@ -165,6 +165,13 @@ ln -s SharedLibraryTargetName(libname).rev $@.`echo rev|cut -f1 -d.` #endif +#ifndef InstallPlugin +#define InstallPlugin(libname,dest) @@\ +dest/SharedLibraryTargetName(libname): dest SharedLibraryTargetName(libname) @@\ + -mv $@ dest/OLD-SharedLibraryTargetName(libname) @@\ + cp SharedLibraryTargetName(libname) $@ +#endif + #ifndef MakeDir #define MakeDir(dirname,owner,group,mode) @@\ dirname: @@\ diff -ur lcgdm-1.8.2.orig/security/Csec_api_loader.c lcgdm-1.8.2/security/Csec_api_loader.c --- lcgdm-1.8.2.orig/security/Csec_api_loader.c 2011-12-06 14:35:18.000000000 +0100 +++ lcgdm-1.8.2/security/Csec_api_loader.c 2011-12-06 15:30:52.693786002 +0100 @@ -222,6 +222,7 @@ void *Csec_get_shlib(Csec_context_t *ctx) { char filename[CA_MAXNAMELEN]; char filename_thread[CA_MAXNAMELEN]; + char fullpath[CA_MAXNAMELEN]; char suffix[CA_MAXNAMELEN]; char symname[256]; void *handle; @@ -302,6 +303,12 @@ filename_thread, ctx->protocols[ctx->current_protocol].id); handle = dlopen(filename_thread, RTLD_NOW); + if (handle == NULL) { + strcpy(fullpath, LIBDIR); + strcat(fullpath, "/"); + strcat(fullpath, filename_thread); + handle = dlopen(fullpath, RTLD_NOW); + } } if (handle == NULL) { @@ -310,6 +317,12 @@ filename, ctx->protocols[ctx->current_protocol].id); handle = dlopen(filename, RTLD_NOW); + if (handle == NULL) { + strcpy(fullpath, LIBDIR); + strcat(fullpath, "/"); + strcat(fullpath, filename); + handle = dlopen(fullpath, RTLD_NOW); + } } if (handle == NULL) { diff -ur lcgdm-1.8.2.orig/security/Imakefile lcgdm-1.8.2/security/Imakefile --- lcgdm-1.8.2.orig/security/Imakefile 2011-12-06 15:29:45.458784131 +0100 +++ lcgdm-1.8.2/security/Imakefile 2011-12-06 15:30:52.746786015 +0100 @@ -13,7 +13,8 @@ include FileName(..,VERSION) INCLUDES = FileName(..,h) -LIB = InstallLibDir +LIBBASE = InstallLibDir +LIB = $(LIBBASE)/lcgdm #if UseKRB5 #define KRB5Mech KRB5 @@ -179,7 +180,7 @@ NormalLibraryTarget(security,$(SECLIB_OBJS)) Csec_api_loader.Osuf: Csec_api_loader.c - $(CC) $(CFLAGS) -c -o Csec_api_loader.Osuf Csec_api_loader.c + $(CC) $(CFLAGS) -DLIBDIR='"$(LIB)"' -c -o Csec_api_loader.Osuf Csec_api_loader.c #if UseGSI SharedLibraryTargetName(Csec_plugin_GSI_thread): Csec_plugin_GSI_pthr.Osuf Csec_plugin_GSI_pthr_mapper.Osuf @@ -232,11 +233,11 @@ MakeDir($(LIB),root,bin,0755) -InstallSharedLibrary(Csec_plugin_ID,$(VERSION),$(LIB)) -InstallSharedLibrary(Csec_plugin_GSI,$(VERSION),$(LIB)) -InstallSharedLibrary(Csec_plugin_GSI_thread,$(VERSION),$(LIB)) -InstallSharedLibrary(Csec_plugin_KRB5,$(VERSION),$(LIB)) -InstallSharedLibrary(Csec_plugin_KRB4,$(VERSION),$(LIB)) +InstallPlugin(Csec_plugin_ID,$(LIB)) +InstallPlugin(Csec_plugin_GSI,$(LIB)) +InstallPlugin(Csec_plugin_GSI_thread,$(LIB)) +InstallPlugin(Csec_plugin_KRB5,$(LIB)) +InstallPlugin(Csec_plugin_KRB4,$(LIB)) MakeDir($(LIBMANDIR),root,bin,0755)