summary refs log tree commit diff
path: root/gnu/packages/java.scm
diff options
context:
space:
mode:
authorRoel Janssen <roel@gnu.org>2017-10-30 11:19:51 +0100
committerRoel Janssen <roel@gnu.org>2017-10-30 11:19:51 +0100
commit491dc2fb16a5ae1d30d1607322e19922d8dec5c3 (patch)
tree436b355e0d2100e0ec7135ac62c712cd1d3f0efc /gnu/packages/java.scm
parent91496dfc9a4c3a708b5c2604fad3e42e101fea04 (diff)
downloadguix-491dc2fb16a5ae1d30d1607322e19922d8dec5c3.tar.gz
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.
Diffstat (limited to 'gnu/packages/java.scm')
-rw-r--r--gnu/packages/java.scm17
1 files changed, 17 insertions, 0 deletions
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