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