~ruther/guix-local

3e462da5c1c48c43f6da95cba6237e24452b2d6c — Ludovic Courtès 11 years ago 353fda8
gnu: openssl: Set appropriate RUNPATH on shared libraries.

Fixes <http://bugs.gnu.org/20041>.
Reported by taylanbayirli@gmail.com (Taylan Ulrich Bayırlı/Kammer).

* gnu/packages/patches/openssl-runpath.patch: New file.
* gnu/packages/openssl.scm (openssl)[source]: Use it.
* gnu-system.am (dist_patch_DATA): Add it.
3 files changed, 18 insertions(+), 1 deletions(-)

M gnu-system.am
M gnu/packages/openssl.scm
A gnu/packages/patches/openssl-runpath.patch
M gnu-system.am => gnu-system.am +1 -0
@@ 489,6 489,7 @@ dist_patch_DATA =						\
  gnu/packages/patches/nvi-dbpagesize-binpower.patch		\
  gnu/packages/patches/nvi-db4.patch				\
  gnu/packages/patches/openexr-missing-samples.patch		\
  gnu/packages/patches/openssl-runpath.patch			\
  gnu/packages/patches/orpheus-cast-errors-and-includes.patch	\
  gnu/packages/patches/ots-no-include-missing-file.patch	\
  gnu/packages/patches/patchelf-page-size.patch			\

M gnu/packages/openssl.scm => gnu/packages/openssl.scm +2 -1
@@ 36,7 36,8 @@
                                ".tar.gz"))
            (sha256
             (base32
              "0jijgzf72659pikms2bc5w31h78xrd1h5zp2r01an2h340y3kdhm"))))
              "0jijgzf72659pikms2bc5w31h78xrd1h5zp2r01an2h340y3kdhm"))
            (patches (list (search-patch "openssl-runpath.patch")))))
   (build-system gnu-build-system)
   (native-inputs `(("perl" ,perl)))
   (arguments

A gnu/packages/patches/openssl-runpath.patch => gnu/packages/patches/openssl-runpath.patch +15 -0
@@ 0,0 1,15 @@
This patch makes the build system pass -Wl,-rpath=$out/lib even for
libraries (it already does so for executables, thanks to 'DO_GNU_APP'
in 'Makefile.shared'.)

--- openssl-1.0.2a/Makefile.shared	2015-04-05 01:07:35.357602454 +0200
+++ openssl-1.0.2a/Makefile.shared	2015-04-05 01:09:50.474513303 +0200
@@ -106,7 +106,7 @@ LINK_SO=	\
     LIBPATH=`for x in $$LIBDEPS; do echo $$x; done | sed -e 's/^ *-L//;t' -e d | uniq`; \
     LIBPATH=`echo $$LIBPATH | sed -e 's/ /:/g'`; \
     LD_LIBRARY_PATH=$$LIBPATH:$$LD_LIBRARY_PATH \
-    $${SHAREDCMD} $${SHAREDFLAGS} \
+    $${SHAREDCMD} $${SHAREDFLAGS} -Wl,-rpath,$(LIBRPATH) \
 	-o $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX \
 	$$ALLSYMSFLAGS $$SHOBJECTS $$NOALLSYMSFLAGS $$LIBDEPS \
   ) && $(SYMLINK_SO)