From 1a86e6aba92976456918c650e8d1f5600c7e8b18 Mon Sep 17 00:00:00 2001 From: Marie Ramlow Date: Fri, 26 Sep 2025 13:13:06 +0200 Subject: [PATCH 1/3] openjdk25: init at 25+36 --- .../openjdk/25/patches/make-4.4.1.patch | 25 +++++++++++++++++++ .../compilers/openjdk/25/source.json | 6 +++++ .../development/compilers/openjdk/generic.nix | 8 +++++- pkgs/top-level/all-packages.nix | 9 +++++++ pkgs/top-level/java-packages.nix | 1 + 5 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 pkgs/development/compilers/openjdk/25/patches/make-4.4.1.patch create mode 100644 pkgs/development/compilers/openjdk/25/source.json diff --git a/pkgs/development/compilers/openjdk/25/patches/make-4.4.1.patch b/pkgs/development/compilers/openjdk/25/patches/make-4.4.1.patch new file mode 100644 index 000000000000..980eed347ce4 --- /dev/null +++ b/pkgs/development/compilers/openjdk/25/patches/make-4.4.1.patch @@ -0,0 +1,25 @@ +diff --git a/make/PreInit.gmk b/make/PreInit.gmk +index 3df44308dd..490d7c24e9 100644 +--- a/make/PreInit.gmk ++++ b/make/PreInit.gmk +@@ -60,13 +60,19 @@ + # Extract non-global targets that require a spec file. + CALLED_SPEC_TARGETS := $(filter-out $(ALL_GLOBAL_TARGETS), $(CALLED_TARGETS)) + ++# GNU make-4.4 (and later) include not just single-letter form of the ++# options MAKEFILES but also long for and even some of the arguments. ++# Skip long form and use only short form: ++# MAKEFLAGS=' --debug=basic -- LOG=trace ...' ++MAKEFLAGS_SINGLE_LETTER := $(firstword -$(MAKEFLAGS)) ++ + # If we have only global targets, or if we are called with -qp (assuming an + # external part, e.g. bash completion, is trying to understand our targets), + # we will skip SPEC location and the sanity checks. + ifeq ($(CALLED_SPEC_TARGETS), ) + SKIP_SPEC := true + endif +-ifeq ($(findstring p, $(MAKEFLAGS))$(findstring q, $(MAKEFLAGS)), pq) ++ifeq ($(findstring p, $(MAKEFLAGS_SINGLE_LETTER))$(findstring q, $(MAKEFLAGS_SINGLE_LETTER)), pq) + SKIP_SPEC := true + endif + diff --git a/pkgs/development/compilers/openjdk/25/source.json b/pkgs/development/compilers/openjdk/25/source.json new file mode 100644 index 000000000000..b34a8438ef74 --- /dev/null +++ b/pkgs/development/compilers/openjdk/25/source.json @@ -0,0 +1,6 @@ +{ + "hash": "sha256-5kQ7xPyWGk/weVYVVNEFPUF1HspfisqcPHA+DM6Q35c=", + "owner": "openjdk", + "repo": "jdk25u", + "rev": "refs/tags/jdk-25+36" +} diff --git a/pkgs/development/compilers/openjdk/generic.nix b/pkgs/development/compilers/openjdk/generic.nix index 24f0e384cb4c..4b0d810ffe86 100644 --- a/pkgs/development/compilers/openjdk/generic.nix +++ b/pkgs/development/compilers/openjdk/generic.nix @@ -80,6 +80,7 @@ temurin-bin-21, temurin-bin-23, temurin-bin-24, + temurin-bin-25, jdk-bootstrap ? { "8" = temurin-bin-8.__spliced.buildBuild or temurin-bin-8; @@ -88,6 +89,7 @@ "21" = temurin-bin-21.__spliced.buildBuild or temurin-bin-21; "23" = temurin-bin-23.__spliced.buildBuild or temurin-bin-23; "24" = temurin-bin-24.__spliced.buildBuild or temurin-bin-24; + "25" = temurin-bin-25.__spliced.buildBuild or temurin-bin-25; } .${featureVersion}, }: @@ -104,6 +106,7 @@ let atLeast21 = lib.versionAtLeast featureVersion "21"; atLeast23 = lib.versionAtLeast featureVersion "23"; atLeast24 = lib.versionAtLeast featureVersion "24"; + atLeast25 = lib.versionAtLeast featureVersion "25"; tagPrefix = if atLeast11 then "jdk-" else "jdk"; version = lib.removePrefix "refs/tags/${tagPrefix}" source.src.rev; @@ -217,7 +220,7 @@ stdenv.mkDerivation (finalAttrs: { sha256 = "sha256-LzmSew51+DyqqGyyMw2fbXeBluCiCYsS1nCjt9hX6zo="; }) ] - ++ lib.optionals atLeast11 [ + ++ lib.optionals (atLeast11 && !atLeast25) [ # Fix build for gnumake-4.4.1: # https://github.com/openjdk/jdk/pull/12992 (fetchpatch { @@ -226,6 +229,9 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-Qcm3ZmGCOYLZcskNjj7DYR85R4v07vYvvavrVOYL8vg="; }) ] + ++ lib.optionals atLeast25 [ + ./25/patches/make-4.4.1.patch + ] ++ lib.optionals (!headless && enableGtk) [ ( if atLeast17 then diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index cf92b29fefa1..65300938ad04 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5290,6 +5290,11 @@ with pkgs; jdk24 = openjdk24; jdk24_headless = openjdk24_headless; + openjdk25 = javaPackages.compiler.openjdk25; + openjdk25_headless = javaPackages.compiler.openjdk25.headless; + jdk25 = openjdk25; + jdk25_headless = openjdk25_headless; + # default JDK jdk = jdk21; jdk_headless = jdk21_headless; @@ -5316,6 +5321,10 @@ with pkgs; jdk = jdk21; jdkOnBuild = buildPackages.jdk21; }; + jre25_minimal = callPackage ../development/compilers/openjdk/jre.nix { + jdk = jdk25; + jdkOnBuild = buildPackages.jdk25; + }; jre_minimal = callPackage ../development/compilers/openjdk/jre.nix { jdkOnBuild = buildPackages.jdk; }; diff --git a/pkgs/top-level/java-packages.nix b/pkgs/top-level/java-packages.nix index 770a29df445e..f0095f5be91b 100644 --- a/pkgs/top-level/java-packages.nix +++ b/pkgs/top-level/java-packages.nix @@ -50,6 +50,7 @@ with pkgs; openjdk21 = mkOpenjdk "21"; openjdk23 = mkOpenjdk "23"; openjdk24 = mkOpenjdk "24"; + openjdk25 = mkOpenjdk "25"; # Legacy aliases openjdk8-bootstrap = temurin-bin.jdk-8; From 78c5ad9fa5c012bc2efc6c1cd955b26e26e6cd6d Mon Sep 17 00:00:00 2001 From: Marie Ramlow Date: Fri, 26 Sep 2025 13:13:06 +0200 Subject: [PATCH 2/3] openjfx25: init at 25+29 `eclipse/updates/4.30/R-4.30-202312010110/plugins/org.eclipse.swt.gtk.linux.aarch64_3.124.200.v20231113-1355` has been manually added in deps.json, as our gradle dependency lockfile generator currently cannot handle platform specific dependencies like this one. --- pkgs/by-name/op/openjfx/25/deps.json | 145 ++++++++++++++++++ pkgs/by-name/op/openjfx/25/source.json | 6 + pkgs/by-name/op/openjfx/package.nix | 2 + .../development/compilers/openjdk/generic.nix | 2 + pkgs/top-level/all-packages.nix | 1 + 5 files changed, 156 insertions(+) create mode 100644 pkgs/by-name/op/openjfx/25/deps.json create mode 100644 pkgs/by-name/op/openjfx/25/source.json diff --git a/pkgs/by-name/op/openjfx/25/deps.json b/pkgs/by-name/op/openjfx/25/deps.json new file mode 100644 index 000000000000..ccf9307c9961 --- /dev/null +++ b/pkgs/by-name/op/openjfx/25/deps.json @@ -0,0 +1,145 @@ +{ + "!comment": "This is a nixpkgs Gradle dependency lockfile. For more details, refer to the Gradle section in the nixpkgs manual.", + "!version": 1, + "https://download.eclipse.org": { + "eclipse/updates/4.30/R-4.30-202312010110/plugins/org.eclipse.swt.gtk.linux.x86_64_3.124.200.v20231113-1355": { + "jar": "sha256-Q048o4oWnZ9Y33AxXiSxbxEeayfbWOf1HoxtoLS4SIs=" + }, + "eclipse/updates/4.30/R-4.30-202312010110/plugins/org.eclipse.swt.gtk.linux.aarch64_3.124.200.v20231113-1355": { + "jar": "sha256-j98ySq5bTxFHbDJKzWMZP+kfUqekWU1jYUJNDyNg9js=" + } + }, + "https://github.com": { + "unicode-org/icu/releases/download/release-74-2/icu4c-74_2-data-bin-l": { + "zip": "sha256-Ks2xuYIigECWPRg7LdnTISUsYT4PTbIT1LvBBBfN5Wk=" + } + }, + "https://repo.maven.apache.org/maven2": { + "com/ibm/icu#icu4j/61.1": { + "jar": "sha256-VcmOsYOLKku5oH3Da9N4Uy1k0M3LfO7pFCNoZqfeRGQ=", + "pom": "sha256-E7h6QHnOsFUVsZrHoVIDlHB1YB1JQj9xk1ikmACYBWs=" + }, + "net/java#jvnet-parent/3": { + "pom": "sha256-MPV4nvo53b+WCVqto/wSYMRWH68vcUaGcXyy3FBJR1o=" + }, + "org/abego/treelayout#org.abego.treelayout.core/1.0.3": { + "jar": "sha256-+l4xOVw5wufUasoPgfcgYJMWB7L6Qb02A46yy2+5MyY=", + "pom": "sha256-o7KyI3lDcDVeeSQzrwEvyZNmfAMxviusrYTbwJrOSgw=" + }, + "org/antlr#ST4/4.1": { + "jar": "sha256-ixzK7Z7cVc0lXZwZxNjaR1bZtvy0NWcSkrQ0cLFtddg=", + "pom": "sha256-cz5r2XyjTMbfk6QkPlEeVnPLm4jHSxiETgQqRdUWmHw=" + }, + "org/antlr#antlr-master/3.5.2": { + "pom": "sha256-QtkaUx6lEA6wm1QaoALDuQjo8oK9c7bi9S83HvEzG9Y=" + }, + "org/antlr#antlr-runtime/3.5.2": { + "jar": "sha256-zj/I7LEPOemjzdy7LONQ0nLZzT0LHhjm/nPDuTichzQ=", + "pom": "sha256-RqnCIAu4sSvXEkqnpQl/9JCZkIMpyFGgTLIFFCCqfyU=" + }, + "org/antlr#antlr4-master/4.7.2": { + "pom": "sha256-upnLJdI5DzhoDHUChCoO4JWdHmQD4BPM/2mP1YVu6tE=" + }, + "org/antlr#antlr4-runtime/4.7.2": { + "jar": "sha256-TFGLh9S9/4tEzYy8GvgW6US2Kj/luAt4FQHPH0dZu8Q=", + "pom": "sha256-3AnLqYwl08BuSuxRaIXUw68DBiulX0/mKD/JzxdqYPs=" + }, + "org/antlr#antlr4/4.7.2": { + "pom": "sha256-z56zaUD6xEiBA4wb4/LFjgbmjRq/v9SmjTS72LrFV3E=" + }, + "org/antlr#antlr4/4.7.2/complete": { + "jar": "sha256-aFI4bXl17/KRcdrgAswiMlFRDTXyka4neUjzgaezgLQ=" + }, + "org/apache#apache/13": { + "pom": "sha256-/1E9sDYf1BI3vvR4SWi8FarkeNTsCpSW+BEHLMrzhB0=" + }, + "org/apache/lucene#lucene-core/7.7.3": { + "jar": "sha256-jrAzNcGjxqixiN9012G6qDVplTWCq0QLU0yIRJ6o4N4=", + "pom": "sha256-gvilIoHGyLp5dKy6rESzLXbiYAgvP0u+FlwPbkuJFCo=" + }, + "org/apache/lucene#lucene-grouping/7.7.3": { + "jar": "sha256-L1vNY7JXQ9MMMTmGIk0Qf3XFKThxSVQlNRDFfT9nvrg=", + "pom": "sha256-HwStk+IETUCP2SXu4K6ktKHvjAdXe0Jme7U2BgKCImU=" + }, + "org/apache/lucene#lucene-parent/7.7.3": { + "pom": "sha256-6PrdU9XwBMQN3SNdQ4ZI5yxyVZn+4VQ+ViTV+1AQcwU=" + }, + "org/apache/lucene#lucene-queries/7.7.3": { + "jar": "sha256-PLWS2wpulWnGrMvbiKmtex2nQo28p5Ia0cWlhl1bQiY=", + "pom": "sha256-rkBsiiuw12SllERCefRiihl2vQlB551CzmTgmHxYnFA=" + }, + "org/apache/lucene#lucene-queryparser/7.7.3": { + "jar": "sha256-F3XJ/o7dlobTt6ZHd4+kTqqW8cwMSZMVCHEz4amDnoQ=", + "pom": "sha256-z2klkhWscjC5+tYKXInKDp9bm6rM7dFGlY/76Q9OsNI=" + }, + "org/apache/lucene#lucene-sandbox/7.7.3": { + "jar": "sha256-VfG38J2uKwytMhw00Vw8/FmgIRviM/Yp0EbEK/FwErc=", + "pom": "sha256-1vbdxsz1xvymRH1HD1BJ4WN6xje/HbWuDV8WaP34EiI=" + }, + "org/apache/lucene#lucene-solr-grandparent/7.7.3": { + "pom": "sha256-Oig3WAynavNq99/i3B0zT8b/XybRDySJnbd3CtfP2f4=" + }, + "org/apiguardian#apiguardian-api/1.1.2": { + "jar": "sha256-tQlEisUG1gcxnxglN/CzXXEAdYLsdBgyofER5bW3Czg=", + "module": "sha256-4IAoExN1s1fR0oc06aT7QhbahLJAZByz7358fWKCI/w=", + "pom": "sha256-MjVQgdEJCVw9XTdNWkO09MG3XVSemD71ByPidy5TAqA=" + }, + "org/glassfish#javax.json/1.0.4": { + "jar": "sha256-Dh3sQKHt6WWUElHtqWiu7gUsxPUDeLwxbMSOgVm9vrQ=", + "pom": "sha256-a6+Dg/+pi2bqls1b/B7H8teUY7uYrJgFKWSxIcIhLVQ=" + }, + "org/glassfish#json/1.0.4": { + "pom": "sha256-bXxoQjEV+SFxjZRPhZkktMaFIX7AOkn3BFWossqpcuY=" + }, + "org/junit#junit-bom/5.12.2": { + "module": "sha256-3nCsXZGlJlbYiQptI7ngTZm5mxoEAlMN7K1xvzGyc14=", + "pom": "sha256-zvgP7IZFT2gGv7DfJGabXG8y4styhTnqhZ9H39ybvBc=" + }, + "org/junit/jupiter#junit-jupiter-api/5.12.2": { + "jar": "sha256-C5ynKOS82a3FfyneuVVv+e1eCLTohDuHWrpOTj4E8JI=", + "module": "sha256-VFfyRO3hjRFzbwfrnF8wklrrCW5Cw1m2oEqaDgOyKes=", + "pom": "sha256-VmKCFmSJvUCxLDUHuZXkj44CXgmgXn0W3SuY3GQs994=" + }, + "org/junit/jupiter#junit-jupiter-engine/5.12.2": { + "jar": "sha256-9XbAa4rM3pmFBjuLyAUmy5gO7CTe4LciH8jd16zmWAA=", + "module": "sha256-0W0wjmqiWjCz75JNnf5PiJqb/ybqvXLvMO6oH864SBU=", + "pom": "sha256-PHGRdFCb6dsfqBesY7eLIfH2fQaL5HHaPQR4G9RAKqM=" + }, + "org/junit/jupiter#junit-jupiter-params/5.12.2": { + "jar": "sha256-shn/qUm5CnGqO2wrYGRWuCvKCyCJt0Wcj/RhFW/1mw8=", + "module": "sha256-x3KP8z0SJgBzLq09DW+K3XRd4+lEFRmHE5WuiZymFHQ=", + "pom": "sha256-pcfvF8refV90q2IHK7xrxxy9AWgGJGvOQl/LvBEISTw=" + }, + "org/junit/jupiter#junit-jupiter/5.12.2": { + "jar": "sha256-OFSzrUNJBrgn/sR0qg2NqLVunlbV/H8uIPw/EuxL6JQ=", + "module": "sha256-ioIpqKD4Se/BzD/9XPlN4W6sgAYcX5M5eoXAk8nX6nA=", + "pom": "sha256-ka2OSkvzBCMslByQFKyRNnvroTHx21jVv+SZx5DUbxc=" + }, + "org/junit/platform#junit-platform-commons/1.12.2": { + "jar": "sha256-5oOgHoXfq+pSDAVqxgFaYWJ1bmAuxlPA2oXiM/CvvBg=", + "module": "sha256-ZMeQwnpztFz8b4TMtotI92SQNIZ+Fo1iJ1TUlmkrwic=", + "pom": "sha256-TyuKkGXJCcaJLYYi1VO2qwpwMhYkSZ47acEon1nswHc=" + }, + "org/junit/platform#junit-platform-engine/1.12.2": { + "jar": "sha256-zvDvy1vS4F4rgI04urXGVQicDDABUnN250y2BqeRHsg=", + "module": "sha256-+Xsxk2wRnAgtTQOM3resDmVvRR2eXX6Jg9IqJONvoQM=", + "pom": "sha256-lICxinlldp0Ag8LLcRBUI/UwKo8Ea7IEfm2/8J84NJA=" + }, + "org/junit/platform#junit-platform-launcher/1.12.2": { + "jar": "sha256-3M8sH6Cpd8U60JSthZv93dUk2XWUt2MHrXh95xmFdX8=", + "module": "sha256-UKBqBDdOMA57hhWIxdwNAhQh4Z8ToL2ymwYX/y/ehdE=", + "pom": "sha256-YZFFzSFdMiJTcr5iW7ooaD10FC/uGl39scZLUv6cC1E=" + }, + "org/opentest4j#opentest4j/1.3.0": { + "jar": "sha256-SOLfY2yrZWPO1k3N/4q7I1VifLI27wvzdZhoLd90Lxs=", + "module": "sha256-SL8dbItdyU90ZSvReQD2VN63FDUCSM9ej8onuQkMjg0=", + "pom": "sha256-m/fP/EEPPoNywlIleN+cpW2dQ72TfjCUhwbCMqlDs1U=" + }, + "org/sonatype/oss#oss-parent/7": { + "pom": "sha256-tR+IZ8kranIkmVV/w6H96ne9+e9XRyL+kM5DailVlFQ=" + }, + "org/sonatype/oss#oss-parent/9": { + "pom": "sha256-+0AmX5glSCEv+C42LllzKyGH7G8NgBgohcFO8fmCgno=" + } + } +} diff --git a/pkgs/by-name/op/openjfx/25/source.json b/pkgs/by-name/op/openjfx/25/source.json new file mode 100644 index 000000000000..1ba71dbdaa6c --- /dev/null +++ b/pkgs/by-name/op/openjfx/25/source.json @@ -0,0 +1,6 @@ +{ + "hash": "sha256-O8ogDcM/YYYwFmYqglc48m11lcbjqxeYbjsB6crY1bU=", + "owner": "openjdk", + "repo": "jfx25u", + "rev": "refs/tags/25+29" +} diff --git a/pkgs/by-name/op/openjfx/package.nix b/pkgs/by-name/op/openjfx/package.nix index 04c6006d723d..ca4cab8b6cba 100644 --- a/pkgs/by-name/op/openjfx/package.nix +++ b/pkgs/by-name/op/openjfx/package.nix @@ -37,12 +37,14 @@ jdk21_headless, jdk23_headless, jdk24_headless, + jdk25_headless, jdk-bootstrap ? { "17" = jdk17_headless; "21" = jdk21_headless; "23" = jdk23_headless; "24" = jdk24_headless; + "25" = jdk25_headless; } .${featureVersion}, }: diff --git a/pkgs/development/compilers/openjdk/generic.nix b/pkgs/development/compilers/openjdk/generic.nix index 4b0d810ffe86..2a9012113690 100644 --- a/pkgs/development/compilers/openjdk/generic.nix +++ b/pkgs/development/compilers/openjdk/generic.nix @@ -60,12 +60,14 @@ openjfx21, openjfx23, openjfx24, + openjfx25, openjfx_jdk ? { "17" = openjfx17; "21" = openjfx21; "23" = openjfx23; "24" = openjfx24; + "25" = openjfx25; } .${featureVersion} or (throw "JavaFX is not supported on OpenJDK ${featureVersion}"), diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 65300938ad04..c3e584654d40 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5254,6 +5254,7 @@ with pkgs; openjfx21 = callPackage ../by-name/op/openjfx/package.nix { featureVersion = "21"; }; openjfx23 = callPackage ../by-name/op/openjfx/package.nix { featureVersion = "23"; }; openjfx24 = callPackage ../by-name/op/openjfx/package.nix { featureVersion = "24"; }; + openjfx25 = callPackage ../by-name/op/openjfx/package.nix { featureVersion = "25"; }; openjdk8-bootstrap = javaPackages.compiler.openjdk8-bootstrap; openjdk8 = javaPackages.compiler.openjdk8; From 06fa0a1e64215e5cbbcabe77fc84c78a5bb33abf Mon Sep 17 00:00:00 2001 From: Marie Ramlow Date: Fri, 26 Sep 2025 17:42:23 +0200 Subject: [PATCH 3/3] jre{11,17,21,25,}_minimal: group together in all-packages.nix According to https://github.com/NixOS/nixpkgs/blob/5b751d1b50366c18fc5ef7faa82f5d4d2b75ef47/pkgs/by-name/README.md#recommendation-for-new-packages-with-multiple-versions --- pkgs/top-level/all-packages.nix | 47 ++++++++++++++++++++------------- 1 file changed, 28 insertions(+), 19 deletions(-) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index c3e584654d40..33347561016a 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5310,25 +5310,34 @@ with pkgs; jre = jdk; jre_headless = jdk_headless; - jre11_minimal = callPackage ../development/compilers/openjdk/jre.nix { - jdk = jdk11; - jdkOnBuild = buildPackages.jdk11; - }; - jre17_minimal = callPackage ../development/compilers/openjdk/jre.nix { - jdk = jdk17; - jdkOnBuild = buildPackages.jdk17; - }; - jre21_minimal = callPackage ../development/compilers/openjdk/jre.nix { - jdk = jdk21; - jdkOnBuild = buildPackages.jdk21; - }; - jre25_minimal = callPackage ../development/compilers/openjdk/jre.nix { - jdk = jdk25; - jdkOnBuild = buildPackages.jdk25; - }; - jre_minimal = callPackage ../development/compilers/openjdk/jre.nix { - jdkOnBuild = buildPackages.jdk; - }; + inherit + ({ + jre11_minimal = callPackage ../development/compilers/openjdk/jre.nix { + jdk = jdk11; + jdkOnBuild = buildPackages.jdk11; + }; + jre17_minimal = callPackage ../development/compilers/openjdk/jre.nix { + jdk = jdk17; + jdkOnBuild = buildPackages.jdk17; + }; + jre21_minimal = callPackage ../development/compilers/openjdk/jre.nix { + jdk = jdk21; + jdkOnBuild = buildPackages.jdk21; + }; + jre25_minimal = callPackage ../development/compilers/openjdk/jre.nix { + jdk = jdk25; + jdkOnBuild = buildPackages.jdk25; + }; + jre_minimal = callPackage ../development/compilers/openjdk/jre.nix { + jdkOnBuild = buildPackages.jdk; + }; + }) + jre11_minimal + jre17_minimal + jre21_minimal + jre25_minimal + jre_minimal + ; openjdk = jdk; openjdk_headless = jdk_headless;