Subject: bug#51693: [patch] Add Java 17

From: "Dr. Arne Babenhauserheide" <[email-masked]>
Date: Mon, 08 Nov 2021 21:32:16 +0100

Hi,

the attached patch adds openjdk@17

Take care with updating packages depending on this, because the changes
to the module system can cause runtime failures.

From 23d8220c78a9ac6aa84dff96fd0c0a1d8214a699 Mon Sep 17 00:00:00 2001
From: Arne Babenhauserheide <[email-masked]>
Date: Mon, 8 Nov 2021 21:21:41 +0100
Subject: [PATCH] gnu: openjdk17: add Java 17.0.1.

* gnu/packages/java.scm (openjdk17): 17.0.1
---
 gnu/packages/java.scm | 46 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 46 insertions(+)

diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index da72dbb38c..34abdcc418 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -2581,6 +2581,52 @@ (define-public openjdk16
                #t))))))
     (home-page "https://openjdk.java.net/projects/jdk/16")))

+(define-public openjdk17
+  (package
+    (inherit openjdk16)
+    (name "openjdk")
+    (version "17.0.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/openjdk/jdk17u")
+                    (commit (string-append "jdk-" version "-ga"))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1l1jgbz8q7zq66npfg88r0l5xga427vrz35iys09j44b6qllrldd"))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("openjdk16:jdk" ,openjdk16 "jdk")
+       ("pkg-config" ,pkg-config)
+       ("unzip" ,unzip)
+       ("which" ,which)
+       ("zip" ,zip)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments openjdk15)
+       ((#:phases phases)
+        `(modify-phases ,phases
+           (add-after 'unpack 'make-templates-writable
+             (lambda _
+               ;; The build system copies a few .template files from the
+               ;; source directory into the build directory and then modifies
+               ;; them in-place.  So these files have to be writable.
+               (for-each
+                (lambda (file)
+                  (invoke "chmod" "u+w" file))
+                (find-files "src/java.base/share/classes/jdk/internal/misc/"
+                            "\\.template$"))
+               #t))
+           (replace 'fix-java-shebangs
+             (lambda _
+               ;; This file was "fixed" by patch-source-shebangs, but it requires
+               ;; this exact first line.
+               (substitute* "make/data/blockedcertsconverter/blocked.certs.pem"
+                 (("^#!.*") "#! java BlockedCertsConverter SHA-256\n"))
+               #t))
+           ))))
+    (home-page "https://openjdk.java.net/projects/jdk/17")))
+
 (define-public icedtea icedtea-8)

 
--
2.33.1

Best wishes,
Arne
-- 
Unpolitisch sein
heißt politisch sein,
ohne es zu merken.
draketo.de