* bug#65926: package openjdk 20.0.2 and release-candidate 21+35 and add helpers for that
@ 2023-09-13 20:04 Dr. Arne Babenhauserheide
2024-01-21 5:34 ` Maxim Cournoyer
0 siblings, 1 reply; 2+ messages in thread
From: Dr. Arne Babenhauserheide @ 2023-09-13 20:04 UTC (permalink / raw)
To: 65926
[-- Attachment #1.1: Type: text/plain, Size: 184 bytes --]
Hi,
attached are patches to add helpers and package openjdk 20.0.2 and
21+35.
The 21+35 package skips the validation of the runpath, because that
fails. I don’t know why.
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1.2: 0001-Add-version-prefix-for-versions-with-as-separator-of.patch --]
[-- Type: text/x-patch, Size: 3571 bytes --]
From e72a8ec42a4d4a199711c0abf7960f8caeab5c1e Mon Sep 17 00:00:00 2001
Message-ID: <e72a8ec42a4d4a199711c0abf7960f8caeab5c1e.1694635452.git.arne_bab@web.de>
From: Arne Babenhauserheide <arne_bab@web.de>
Date: Wed, 13 Sep 2023 21:59:25 +0200
Subject: [PATCH 1/4] Add version-prefix-+ for versions with + as separator of
the build
* guix/utils.scm (version-prefix-+): new procedure
---
guix/utils.scm | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/guix/utils.scm b/guix/utils.scm
index e9af33bdeb..2993b31a5c 100644
--- a/guix/utils.scm
+++ b/guix/utils.scm
@@ -116,6 +116,7 @@ (define-module (guix utils)
version>?
version>=?
version-prefix
+ version-prefix-+
version-major+minor+point
version-major+minor
version-major
@@ -822,6 +823,11 @@ (define (version-major version-string)
"Return the major version number as string from the version-string."
(version-prefix version-string 1))
+(define (version-prefix-+ version-string)
+ "Truncate version-string to leave out a suffix appended with +.
+For example, (version-prefix-+ \"21+35\" returns \"21\""
+ (string-join (take (string-split version-string #\+) 1) "+"))
+
(define (version-unique-prefix version versions)
"Return the shortest version prefix to unambiguously identify VERSION among
VERSIONS. For example:
base-commit: e2a7c227dea5b361e2ebdbba24b923d1922a79d0
prerequisite-patch-id: e26acb8280f31db9b663b6fc444a2229fc5b588e
prerequisite-patch-id: db5cc62f7d04f3ed3014ae984fe732f3b6db8d17
prerequisite-patch-id: 3a0bf9ef6f27f1d92537c5e9ee5c38c7d6ced99e
prerequisite-patch-id: 088a72da8c11e5d1c7087b4a5e8bb9c4a3b9b2af
prerequisite-patch-id: 1b4787e17ec6ab62978615e1d3804a1024c5e1a0
prerequisite-patch-id: f814d9756faa5d91a68b81654606c66b4cf389e5
prerequisite-patch-id: f2dbed3e6da49472bd141c9fa40de2d2208130fb
prerequisite-patch-id: 2dbf557994da4a264566b67294f7f3f8e2931f5f
prerequisite-patch-id: 912a76fac540b98d5683ba1886a7d62f0963cd9f
prerequisite-patch-id: f6a9bfd16b8952c73b7a6d97be70013a290815d7
prerequisite-patch-id: e50c1aaa1d401bba32a49d2e1fb1661746543d09
prerequisite-patch-id: 1f63cb516bc5c9772ae808371528006fca20dcad
prerequisite-patch-id: 1ac04f0120fb6c4f106d05bee88103debb815b41
prerequisite-patch-id: eeff242fb5e41c8c83b3daadd0965e58eb6670ba
prerequisite-patch-id: 3812c9ac1252d9d20e8485462be155156f302a54
prerequisite-patch-id: 9d3dd155c91ab334999c03fefab04f361ea4d8b5
prerequisite-patch-id: f5b09b934b65fe45bdfd1273baa3bb949ed52cca
prerequisite-patch-id: 61a9b3943bdbe5cb6a4aa978888ceb64088f9a14
prerequisite-patch-id: 3f9d50361fb537607c33d09115366aec05160688
prerequisite-patch-id: 765c77b7c31f24491149665a066d2906f8da8d33
prerequisite-patch-id: 2b92c37e3aa74152a7aa226e1fbd5f2735037dc0
prerequisite-patch-id: 2a3123ab0786108f26e25c45fc4c545b99b6dd27
prerequisite-patch-id: 891a2458a90ea90113c576df5029514f5143366e
prerequisite-patch-id: 1a08957a2fd3e3637ed7f3cf3f44c9f8194d6668
prerequisite-patch-id: d382210c915c0a809cb709cba45a4542d60c4d20
prerequisite-patch-id: d424ad2c4c4bf14becb025c67757f48d4a6ae6b5
prerequisite-patch-id: 07e1c90231819e0b963645b041522e53891fd344
prerequisite-patch-id: 124009dec6dad63add19bf258f71bdb127078ecb
prerequisite-patch-id: 0afa33c8e0e2aca07da2782e04d259d3f8c498c5
prerequisite-patch-id: 205bb6c05a145eb9137e8623687418089351e73e
prerequisite-patch-id: 7138f72403701b9749a0a587f1807030d730c00d
prerequisite-patch-id: 39bd665160a5e62aaa4ea94ad2e3ca30f31e2127
--
2.41.0
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1.3: 0002-Add-syntax-make-openjdk-release-candidate-for-versio.patch --]
[-- Type: text/x-patch, Size: 3054 bytes --]
From 42b2dbb2d09ab5706523f25951f51289e3ad6181 Mon Sep 17 00:00:00 2001
Message-ID: <42b2dbb2d09ab5706523f25951f51289e3ad6181.1694635452.git.arne_bab@web.de>
In-Reply-To: <e72a8ec42a4d4a199711c0abf7960f8caeab5c1e.1694635452.git.arne_bab@web.de>
References: <e72a8ec42a4d4a199711c0abf7960f8caeab5c1e.1694635452.git.arne_bab@web.de>
From: Arne Babenhauserheide <arne_bab@web.de>
Date: Wed, 13 Sep 2023 22:00:55 +0200
Subject: [PATCH 2/4] Add syntax make-openjdk-release-candidate for versions
like 21+35
* gnu/packages/java.scm (make-openjdk-release-candidate): new procedure
---
gnu/packages/java.scm | 39 +++++++++++++++++++++++++++++++++++++++
1 file changed, 39 insertions(+)
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index f7464e2168..0c22f4def9 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -1431,6 +1431,45 @@ (define-syntax make-openjdk
field
...)))))))
+(define-syntax make-openjdk-release-candidate
+ ;; Return an OpenJDK package at VERSION with checksum HASH, using BOOTSTRAP,
+ ;; the bootstrap package. One or more FIELD can be provided to further
+ ;; refine the package definition; for convenience, the BASE, NAME and
+ ;; VERSION are defined in their scope.
+ (lambda (x)
+ (syntax-case x ()
+ ((_ bootstrap version* hash field ...)
+ (with-syntax ((base (datum->syntax x 'base))
+ (name (datum->syntax x 'name))
+ (version (datum->syntax x 'version)))
+ #'(let ((base (package
+ (inherit bootstrap)
+ (name "openjdk")
+ (version version*)
+ (source
+ (origin
+ (inherit (package-source bootstrap))
+ (method git-fetch)
+ (uri (git-reference
+ (url (format
+ #f "https://github.com/openjdk/jdk~au"
+ (version-prefix-+ version*)))
+ (commit (string-append "jdk-" version*))))
+ (file-name (git-file-name name version))
+ (sha256 (base32 hash))))
+ (native-inputs
+ (modify-inputs (package-native-inputs bootstrap)
+ (replace "openjdk" bootstrap)))
+ (home-page (string-append
+ "https://openjdk.java.net/projects/jdk/"
+ (version-major version)))))
+ (name "openjdk")
+ (version version*))
+ (package
+ (inherit base)
+ field
+ ...)))))))
+
(define-public openjdk12
(make-openjdk
openjdk11 "12.33" "0mbhdrk12b6878kby0flnbak7444dlpm0ihlmf92vk59y1c02bc2"
--
2.41.0
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1.4: 0003-Add-openjdk-20.0.2.patch --]
[-- Type: text/x-patch, Size: 1907 bytes --]
From 823bf15aed65b6abe48ad28fb6bb94d7e9bc5db2 Mon Sep 17 00:00:00 2001
Message-ID: <823bf15aed65b6abe48ad28fb6bb94d7e9bc5db2.1694635452.git.arne_bab@web.de>
In-Reply-To: <e72a8ec42a4d4a199711c0abf7960f8caeab5c1e.1694635452.git.arne_bab@web.de>
References: <e72a8ec42a4d4a199711c0abf7960f8caeab5c1e.1694635452.git.arne_bab@web.de>
From: Arne Babenhauserheide <arne_bab@web.de>
Date: Wed, 13 Sep 2023 22:02:13 +0200
Subject: [PATCH 3/4] Add openjdk 20.0.2
* gnu/packages/java.scm (openjdk20): new package
---
gnu/packages/java.scm | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 0c22f4def9..d541242b73 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -1590,6 +1590,22 @@ (define-public openjdk19
;;; Convenience alias to point to the latest version of OpenJDK.
(define-public openjdk openjdk19)
+(define-public openjdk20
+ (make-openjdk openjdk19 "20.0.2"
+ "1af1v2c3d8x4c6shzl6cv9qwq7a4hn5map5pjh9vjcky0hkzd489"
+ (arguments
+ (substitute-keyword-arguments (package-arguments openjdk19)
+ ((#:phases phases)
+ #~(modify-phases #$phases
+ (replace 'fix-java-shebangs
+ (lambda _
+ ;; Update file path.
+ (substitute* "src/java.base/share/data/blockedcertsconverter/blocked.certs.pem"
+ (("^#!.*") "#! java BlockedCertsConverter SHA-256\n"))))
+ (add-before 'configure 'define-java-environment-variables
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; Fix for "valid range 1980-01-01T00:00:02Z to 2099-12-31T23:59:59Z".
+ (setenv "SOURCE_DATE_EPOCH" "1234567890")))))))))
\f
;; This version of JBR is here in order to be able to build custom
;; IntelliJ plugins. Those usually need both jbr11 and jbr17 for
--
2.41.0
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1.5: 0004-Add-openjdk-release-candidate-21-35.patch --]
[-- Type: text/x-patch, Size: 2232 bytes --]
From cfcb798398c0cec64a6fa2bfaf2a0ad50612da21 Mon Sep 17 00:00:00 2001
Message-ID: <cfcb798398c0cec64a6fa2bfaf2a0ad50612da21.1694635452.git.arne_bab@web.de>
In-Reply-To: <e72a8ec42a4d4a199711c0abf7960f8caeab5c1e.1694635452.git.arne_bab@web.de>
References: <e72a8ec42a4d4a199711c0abf7960f8caeab5c1e.1694635452.git.arne_bab@web.de>
From: Arne Babenhauserheide <arne_bab@web.de>
Date: Wed, 13 Sep 2023 22:02:36 +0200
Subject: [PATCH 4/4] Add openjdk release-candidate 21+35
* gnu/packages/java.scm (openjdk21): new package
---
gnu/packages/java.scm | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index d541242b73..0c0e6a717c 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -1606,6 +1606,26 @@ (define-public openjdk20
(lambda* (#:key inputs #:allow-other-keys)
;; Fix for "valid range 1980-01-01T00:00:02Z to 2099-12-31T23:59:59Z".
(setenv "SOURCE_DATE_EPOCH" "1234567890")))))))))
+
+(define-public openjdk21
+ (make-openjdk-release-candidate openjdk20 "21+35"
+ "06wjfwrkqykjdkis2s1nh91cy8vwincnmc699cxvyk3fc12jf3vw"
+ (arguments
+ (substitute-keyword-arguments (package-arguments openjdk19)
+ ((#:phases phases)
+ #~(modify-phases #$phases
+ (replace 'fix-java-shebangs
+ (lambda _
+ ;; Update file path.
+ (substitute* "src/java.base/share/data/blockedcertsconverter/blocked.certs.pem"
+ (("^#!.*") "#! java BlockedCertsConverter SHA-256\n"))))
+ (replace 'validate-runpath
+ (lambda _ #t)) ;; just do nothing because this validation fails on libjava.so missing which is part of openjdk itself
+ (add-before 'configure 'define-java-environment-variables
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; Fix for "valid range 1980-01-01T00:00:02Z to 2099-12-31T23:59:59Z".
+ (setenv "SOURCE_DATE_EPOCH" "1234567890")))))))))
+
\f
;; This version of JBR is here in order to be able to build custom
;; IntelliJ plugins. Those usually need both jbr11 and jbr17 for
--
2.41.0
[-- Attachment #1.6: Type: text/plain, Size: 101 bytes --]
Best wishes,
Arne
--
Unpolitisch sein
heißt politisch sein,
ohne es zu merken.
draketo.de
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 1125 bytes --]
^ permalink raw reply related [flat|nested] 2+ messages in thread
* bug#65926: package openjdk 20.0.2 and release-candidate 21+35 and add helpers for that
2023-09-13 20:04 bug#65926: package openjdk 20.0.2 and release-candidate 21+35 and add helpers for that Dr. Arne Babenhauserheide
@ 2024-01-21 5:34 ` Maxim Cournoyer
0 siblings, 0 replies; 2+ messages in thread
From: Maxim Cournoyer @ 2024-01-21 5:34 UTC (permalink / raw)
To: Dr. Arne Babenhauserheide; +Cc: 65926-done
Hello!
"Dr. Arne Babenhauserheide" <arne_bab@web.de> writes:
> Hi,
>
> attached are patches to add helpers and package openjdk 20.0.2 and
> 21+35.
>
> The 21+35 package skips the validation of the runpath, because that
> fails. I don’t know why.
>
> From e72a8ec42a4d4a199711c0abf7960f8caeab5c1e Mon Sep 17 00:00:00 2001
> Message-ID: <e72a8ec42a4d4a199711c0abf7960f8caeab5c1e.1694635452.git.arne_bab@web.de>
> From: Arne Babenhauserheide <arne_bab@web.de>
> Date: Wed, 13 Sep 2023 21:59:25 +0200
> Subject: [PATCH 1/4] Add version-prefix-+ for versions with + as separator of
> the build
>
> * guix/utils.scm (version-prefix-+): new procedure
It seems all of your series got sent as a single diff, instead of
multiple messages. Apply it with 'git am' only applies the first
commit. Am I missing something?
> ---
> guix/utils.scm | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/guix/utils.scm b/guix/utils.scm
> index e9af33bdeb..2993b31a5c 100644
> --- a/guix/utils.scm
> +++ b/guix/utils.scm
> @@ -116,6 +116,7 @@ (define-module (guix utils)
> version>?
> version>=?
> version-prefix
> + version-prefix-+
> version-major+minor+point
> version-major+minor
> version-major
> @@ -822,6 +823,11 @@ (define (version-major version-string)
> "Return the major version number as string from the version-string."
> (version-prefix version-string 1))
>
> +(define (version-prefix-+ version-string)
> + "Truncate version-string to leave out a suffix appended with +.
> +For example, (version-prefix-+ \"21+35\" returns \"21\""
> + (string-join (take (string-split version-string #\+) 1) "+"))
This is probably odd enough to be better defined in java.scm, but see
below.
[...]
> Subject: [PATCH 2/4] Add syntax make-openjdk-release-candidate for versions
> like 21+35
>
> * gnu/packages/java.scm (make-openjdk-release-candidate): new procedure
I'm not sure we want this in Guix proper; it'd be good for a bleeding
edge java channel, perhaps?
]
> gnu/packages/java.scm | 39 +++++++++++++++++++++++++++++++++++++++
> 1 file changed, 39 insertions(+)
>
> diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
> index f7464e2168..0c22f4def9 100644
> --- a/gnu/packages/java.scm
> +++ b/gnu/packages/java.scm
> @@ -1431,6 +1431,45 @@ (define-syntax make-openjdk
> field
> ...)))))))
>
> +(define-syntax make-openjdk-release-candidate
> + ;; Return an OpenJDK package at VERSION with checksum HASH, using BOOTSTRAP,
> + ;; the bootstrap package. One or more FIELD can be provided to further
> + ;; refine the package definition; for convenience, the BASE, NAME and
> + ;; VERSION are defined in their scope.
> + (lambda (x)
> + (syntax-case x ()
> + ((_ bootstrap version* hash field ...)
> + (with-syntax ((base (datum->syntax x 'base))
> + (name (datum->syntax x 'name))
> + (version (datum->syntax x 'version)))
> + #'(let ((base (package
> + (inherit bootstrap)
> + (name "openjdk")
> + (version version*)
> + (source
> + (origin
> + (inherit (package-source bootstrap))
> + (method git-fetch)
> + (uri (git-reference
> + (url (format
> + #f "https://github.com/openjdk/jdk~au"
> + (version-prefix-+ version*)))
> + (commit (string-append "jdk-" version*))))
> + (file-name (git-file-name name version))
> + (sha256 (base32 hash))))
> + (native-inputs
> + (modify-inputs (package-native-inputs bootstrap)
> + (replace "openjdk" bootstrap)))
> + (home-page (string-append
> + "https://openjdk.java.net/projects/jdk/"
> + (version-major version)))))
> + (name "openjdk")
> + (version version*))
> + (package
> + (inherit base)
> + field
> + ...)))))))
> +
Especially since this mostly duplicates the macro from make-openjdk.
> Subject: [PATCH 3/4] Add openjdk 20.0.2
>
> * gnu/packages/java.scm (openjdk20): new package
> ---
> gnu/packages/java.scm | 16 ++++++++++++++++
> 1 file changed, 16 insertions(+)
>
> diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
> index 0c22f4def9..d541242b73 100644
> --- a/gnu/packages/java.scm
> +++ b/gnu/packages/java.scm
> @@ -1590,6 +1590,22 @@ (define-public openjdk19
> ;;; Convenience alias to point to the latest version of OpenJDK.
> (define-public openjdk openjdk19)
>
> +(define-public openjdk20
> + (make-openjdk openjdk19 "20.0.2"
> + "1af1v2c3d8x4c6shzl6cv9qwq7a4hn5map5pjh9vjcky0hkzd489"
> + (arguments
> + (substitute-keyword-arguments (package-arguments openjdk19)
> + ((#:phases phases)
> + #~(modify-phases #$phases
> + (replace 'fix-java-shebangs
> + (lambda _
> + ;; Update file path.
> + (substitute* "src/java.base/share/data/blockedcertsconverter/blocked.certs.pem"
> + (("^#!.*") "#! java BlockedCertsConverter SHA-256\n"))))
> + (add-before 'configure 'define-java-environment-variables
> + (lambda* (#:key inputs #:allow-other-keys)
> + ;; Fix for "valid range 1980-01-01T00:00:02Z to 2099-12-31T23:59:59Z".
> + (setenv "SOURCE_DATE_EPOCH" "1234567890")))))))))
I see we already have 20 on master. We could simply update it to 20.0.2
with its hash. The two phases above need not be duplicated; they are
attached to the openjdk19 package and inherited.
--
Thanks,
Maxim
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2024-01-21 5:35 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-09-13 20:04 bug#65926: package openjdk 20.0.2 and release-candidate 21+35 and add helpers for that Dr. Arne Babenhauserheide
2024-01-21 5:34 ` Maxim Cournoyer
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).