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.
This commit is contained in:
Roel Janssen 2017-10-30 11:19:51 +01:00
parent 91496dfc9a
commit 491dc2fb16
No known key found for this signature in database
GPG Key ID: C3EC1DCA843072E1
1 changed files with 17 additions and 0 deletions

View File

@ -1405,6 +1405,23 @@ bootstrapping purposes.")
(copy-recursively "openjdk.build/j2re-image" jre) (copy-recursively "openjdk.build/j2re-image" jre)
(copy-recursively "openjdk.build/j2sdk-image" jdk)) (copy-recursively "openjdk.build/j2sdk-image" jdk))
#t)) #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 ;; By default IcedTea only generates an empty keystore. In order to
;; be able to use certificates in Java programs we need to generate a ;; be able to use certificates in Java programs we need to generate a
;; keystore from a set of certificates. For convenience we use the ;; keystore from a set of certificates. For convenience we use the