guix-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug#54852] [PATCH] gnu: Add openjdk18.


From: Rostislav Svoboda
Subject: [bug#54852] [PATCH] gnu: Add openjdk18.
Date: Tue, 10 May 2022 00:20:24 +0200

Hi Maxime,

> The following simplified package definition ‘worked’ for me:
>
> (define-public openjdk18
>   (package
>     (inherit openjdk17)
>     (name "openjdk")
>     (version "18")
>     (source (origin
>               (method git-fetch)
>               (uri (git-reference
>                     (url "https://github.com/openjdk/jdk18u";)
>                     (commit (string-append "jdk-" version "-ga"))))
>               (file-name (git-file-name name version))
>               (sha256
>                (base32
>                 "1bv6bdhkmwvn10l0xy8yi9xibds640hs5zsvx0jp7wrxa3qw4qy8"))))
>     (native-inputs
>       (modify-inputs (package-native-inputs openjdk17)
>         (replace "openjdk16:jdk" openjdk17)))
>     [home-page ...]))

I'm a bit puzzled. Here is how I run the build:
The `/home/bost/dev/guix` contains a clone of
https://git.savannah.gnu.org/git/guix.git

```shell
$ pwd
/home/bost/dev/guix/gnu/packages
$ time guix build --check --load-path=. openjdk
...
Executed in   73.08 secs    fish           external
usr time  151.31 secs    0.00 micros  151.31 secs
sys time    0.48 secs  759.00 micros    0.48 secs
```

So my build time is about 2,5 minutes. During the build I get plenty
of warnings like:
    guix build: warning: failed to load '(SOME-THING)':
    no code for module (SOME-THING)
    ./SOME-THING.scm:20:0: warning: module name (gnu packages
SOME-THING) does not match file name 'SOME-THING.scm'
    hint: File `./SOME-THING.scm' should probably start with:

    (define-module (SOME-THING))

and it looks like the warnings can be ignored.

Regarding the compilation itself, first of all I had to exclude the
271b2e43bef96f17f3f1e1085394b4bb144c5768 due to the
https://issues.guix.gnu.org/55255 from my repo.
Then I had to fix the `[home-page ...]` and put there `(home-page
"https://openjdk.java.net/projects/jdk/18";)` and even after that it
doesn't compile. I get:
    The following graft will be made:
       /gnu/store/42kdy7fs7pykx79m69v2gpxw7gmph745-openjdk-18.drv
    guix build: error: some outputs of
`/gnu/store/42kdy7fs7pykx79m69v2gpxw7gmph745-openjdk-18.drv' are not
valid, so checking is not possible

And here are the definitions which work for me:
;; I'd prefer:
(define-public openjdk18
  (package
    (inherit openjdk17)
    (name "openjdk")
    (version "18")
    (source (origin
              (method git-fetch)
              (uri (git-reference
                    (url "https://github.com/openjdk/jdk18u";)
                    (commit (string-append "jdk-" version "-ga"))))
              (file-name (git-file-name name version))
              (sha256
               (base32
                "1bv6bdhkmwvn10l0xy8yi9xibds640hs5zsvx0jp7wrxa3qw4qy8"))))
    (native-inputs
     (map (lambda (input)
            (match (car input)
              ("openjdk16:jdk" `("openjdk17:jdk" ,openjdk17 "jdk"))
              (_ input)))
          (package-native-inputs openjdk17)))
    (home-page "https://openjdk.java.net/projects/jdk/18";)))

;; This works too:
(define-public openjdk18
  (package
    (inherit openjdk17)
    (name "openjdk")
    (version "18")
    (source (origin
              (method git-fetch)
              (uri (git-reference
                    (url "https://github.com/openjdk/jdk18u";)
                    (commit (string-append "jdk-" version "-ga"))))
              (file-name (git-file-name name version))
              (sha256
               (base32
                "1bv6bdhkmwvn10l0xy8yi9xibds640hs5zsvx0jp7wrxa3qw4qy8"))))
    (modify-inputs (package-native-inputs openjdk17)
      (delete "openjdk16:jdk")
      (append `(("openjdk17:jdk" ,openjdk17 "jdk"))))
    (home-page "https://openjdk.java.net/projects/jdk/18";)))

> About the labels issue: maybe "icedtea-8" could be changed to "icedtea",
> "openjdkN" to "openjdk" and "openjdkN:jdk" to "openjdk:jdk" at some point
> in the future, such that the package name matches the input label and
> the input alist can be changed to a package list.

Sure. Good idea.

Greetings,
Bost





reply via email to

[Prev in Thread] Current Thread [Next in Thread]