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 ...])) ‘worked’, because it took to long for me so I interrupted the build in the build phase. 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. Greetings, Maxime.