all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* 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 external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.