From 491dc2fb16a5ae1d30d1607322e19922d8dec5c3 Mon Sep 17 00:00:00 2001 From: Roel Janssen Date: Mon, 30 Oct 2017 11:19:51 +0100 Subject: [PATCH] gnu: java: Fix libjvm.so linkage problem in icedtea-7. * gnu/packages/java.scm (icedtea-7): Add phase to create a symbolic link to libjvm.so. --- gnu/packages/java.scm | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index ff5f1c9ae6..1fcd237d55 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -1405,6 +1405,23 @@ bootstrapping purposes.") (copy-recursively "openjdk.build/j2re-image" jre) (copy-recursively "openjdk.build/j2sdk-image" jdk)) #t)) + ;; Some of the libraries in the lib/amd64 folder link to libjvm.so. + ;; But that shared object is located in the server/ folder, so it + ;; cannot be found. This phase creates a symbolic link in the + ;; lib/amd64 folder so that the other libraries can find it. + ;; + ;; See: + ;; https://lists.gnu.org/archive/html/guix-devel/2017-10/msg00169.html + ;; + ;; FIXME: Find the bug in the build system, so that this symlink is + ;; not needed. + (add-after 'install 'install-libjvm + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((lib-path (string-append (assoc-ref outputs "out") + "/lib/amd64"))) + (symlink (string-append lib-path "/server/libjvm.so") + (string-append lib-path "/libjvm.so"))) + #t)) ;; By default IcedTea only generates an empty keystore. In order to ;; be able to use certificates in Java programs we need to generate a ;; keystore from a set of certificates. For convenience we use the