~ruther/guix-local

ec8c5d027f87bb39ce3fd03c40a13d7b316d9dac — Danny Milosavljevic 2 years ago fc1b857
gnu: Add openjdk@21.

* gnu/packages/java.scm (openjdk21): New variable.
* gnu/packages/patches/openjdk-21-fix-rpath.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
3 files changed, 34 insertions(+), 0 deletions(-)

M gnu/local.mk
M gnu/packages/java.scm
A gnu/packages/patches/openjdk-21-fix-rpath.patch
M gnu/local.mk => gnu/local.mk +1 -0
@@ 1696,6 1696,7 @@ dist_patch_DATA =						\
  %D%/packages/patches/openjdk-10-pointer-comparison.patch      \
  %D%/packages/patches/openjdk-10-setsignalhandler.patch        \
  %D%/packages/patches/openjdk-15-xcursor-no-dynamic.patch	\
  %D%/packages/patches/openjdk-21-fix-rpath.patch		\
  %D%/packages/patches/openmpi-mtl-priorities.patch		\
  %D%/packages/patches/openmw-assume-nonconst-SIGSTKSZ.patch    \
  %D%/packages/patches/openssh-trust-guix-store-directory.patch	\

M gnu/packages/java.scm => gnu/packages/java.scm +17 -0
@@ 1550,6 1550,23 @@ blacklisted.certs.pem"
  (make-openjdk openjdk19 "20"
                "0pk5lpwijfv9qv7vwpsq2xfklbnqdfs6xbdhc5aamrpar4xi4ykx"))

(define-public openjdk21
  (make-openjdk openjdk20 "21"
                "06wjfwrkqykjdkis2s1nh91cy8vwincnmc699cxvyk3fc12jf3vw"
   (source (origin
             (inherit (package-source base))
             (patches (search-patches "openjdk-21-fix-rpath.patch"
                                      "openjdk-15-xcursor-no-dynamic.patch"))))
   (arguments
    (substitute-keyword-arguments (package-arguments base)
      ((#:phases phases)
       #~(modify-phases #$phases
           (replace 'fix-java-shebangs
             (lambda _
               ;; 'blacklisted' was renamed back to 'blocked'.
               (substitute* "src/java.base/share/data/blockedcertsconverter/blocked.certs.pem"
                 (("^#!.*") "#! java BlockedCertsConverter SHA-256\n"))))))))))

;;; Convenience alias to point to the latest version of OpenJDK.
(define-public openjdk openjdk19)


A gnu/packages/patches/openjdk-21-fix-rpath.patch => gnu/packages/patches/openjdk-21-fix-rpath.patch +16 -0
@@ 0,0 1,16 @@
Author: Danny Milosavljevic <dannym@scratchpost.org>
Date: 2023-09-20

diff -ru openjdk-21/make/modules/jdk.internal.le/Lib.gmk.orig openjdk-21.drv-4/source/make/modules/jdk.internal.le/Lib.gmk
--- openjdk-21/make/modules/jdk.internal.le/Lib.gmk.orig	1970-01-01 01:00:01.000000000 +0100
+++ openjdk-21/make/modules/jdk.internal.le/Lib.gmk	2023-09-20 21:42:04.626821839 +0200
@@ -34,7 +34,8 @@
       TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
       OPTIMIZATION := LOW, \
       CFLAGS := $(CXXFLAGS_JDKLIB), \
-      LDFLAGS := $(LDFLAGS_JDKLIB), \
+      LDFLAGS := $(LDFLAGS_JDKLIB) \
+        $(call SET_SHARED_LIBRARY_ORIGIN), \
       LIBS_unix := $(JDKLIB_LIBS) $(LIBCXX), \
       LIBS_windows := $(JDKLIB_LIBS) user32.lib, \
   ))