nixpkgs/pkgs/top-level/java-packages.nix

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

251 lines
8.1 KiB
Nix
Raw Normal View History

{ pkgs }:
2016-10-30 15:44:56 +00:00
with pkgs;
let
openjfx11 = callPackage ../development/compilers/openjdk/openjfx/11.nix { };
openjfx15 = callPackage ../development/compilers/openjdk/openjfx/15.nix { };
2022-01-14 14:44:08 +00:00
openjfx17 = callPackage ../development/compilers/openjdk/openjfx/17.nix { };
openjfx19 = callPackage ../development/compilers/openjdk/openjfx/19.nix { };
openjfx20 = callPackage ../development/compilers/openjdk/openjfx/20.nix { };
openjfx21 = callPackage ../development/compilers/openjdk/openjfx/21.nix { };
2024-03-12 22:11:00 +00:00
openjfx22 = callPackage ../development/compilers/openjdk/openjfx/22.nix { };
2016-10-30 15:44:56 +00:00
in {
2024-03-12 22:11:00 +00:00
inherit openjfx11 openjfx15 openjfx17 openjfx19 openjfx20 openjfx21 openjfx22;
compiler = let
gnomeArgs = {
inherit (gnome2) GConf gnome_vfs;
};
bootstrapArgs = gnomeArgs // {
openjfx = openjfx11; /* need this despite next line :-( */
enableJavaFX = false;
headless = true;
};
mkAdoptopenjdk = path-linux: path-darwin: let
package-linux = import path-linux { inherit stdenv lib; };
package-darwin = import path-darwin { inherit lib; };
package = if stdenv.isLinux
then package-linux
else package-darwin;
2023-01-31 16:56:09 +00:00
in {
inherit package-linux package-darwin;
__attrsFailEvaluation = true;
jdk-hotspot = callPackage package.jdk-hotspot {};
jre-hotspot = callPackage package.jre-hotspot {};
} // lib.optionalAttrs (package?jdk-openj9) {
jdk-openj9 = callPackage package.jdk-openj9 {};
} // lib.optionalAttrs (package?jre-openj9) {
jre-openj9 = callPackage package.jre-openj9 {};
};
mkBootstrap = adoptopenjdk: path: args:
/* adoptopenjdk not available for i686, so fall back to our old builds for bootstrapping */
java-packages.nix: detect i686 using stdenv.hostPlatform `java-packages.nix` attempts to automatically decide which java to use for bootstrapping. When this works, it works well. However when it fails due to the user setting `config.allowNonSource=false` on a non-x86 platform, the reported failure is extremely confusing and does not mention the `NIXPKGS_ALLOW_NONSOURCE=1` option to proceed, or that `allowNonSource` had anything to do with the eval failure. Here's why this is happening: Currently, `java-packages.nix` makes its detection choice based on `adoptopenjdk.jdk-hotspot.meta.available`. If the user has set `config.allowNonSource=false` then the `adoptopenjdk-bin` packages will all report `_.meta.available==false`. If `adoptopenjdk.jdk-hotspot.meta.available==false` then the detection code will proceed to use `callPackage path args`, *even if that package is **also** `meta.unavailable`* for end-user-unfixable reasons. In the case of `openjdk8`, the `path` passed is a `nix` expression that only works on x86. The user has two options for continuing the build: buy an x86 machine or add an `allowNonSource` exception for the bootstrap jdk. The second option is generally preferred, but the user is only offered the first option. The following comment appears above the line in `java-packages.nix` which does the automatic selection: ``` /* adoptopenjdk not available for i686, so fall back to our old builds for bootstrapping */ ``` Since the intent here was to decide based on "i686-ness", let's query the authoritative source for i686ness in nixpkgs: `stdenv.hostPlatform`.
2022-06-30 00:29:39 +00:00
if !stdenv.hostPlatform.isi686
then
# only linux has the gtkSupport option
if stdenv.isLinux
then adoptopenjdk.jdk-hotspot.override { gtkSupport = false; }
else adoptopenjdk.jdk-hotspot
else callPackage path args;
mkOpenjdk = path-linux: path-darwin: args:
if stdenv.isLinux
then mkOpenjdkLinuxOnly path-linux args
else let
openjdk = callPackage path-darwin {};
in openjdk // { headless = openjdk; };
mkOpenjdkLinuxOnly = path-linux: args: let
openjdk = callPackage path-linux (gnomeArgs // args);
in assert stdenv.isLinux; openjdk // {
headless = openjdk.override { headless = true; };
};
in rec {
adoptopenjdk-8 = mkAdoptopenjdk
../development/compilers/adoptopenjdk-bin/jdk8-linux.nix
../development/compilers/adoptopenjdk-bin/jdk8-darwin.nix;
adoptopenjdk-11 = mkAdoptopenjdk
../development/compilers/adoptopenjdk-bin/jdk11-linux.nix
../development/compilers/adoptopenjdk-bin/jdk11-darwin.nix;
adoptopenjdk-13 = mkAdoptopenjdk
../development/compilers/adoptopenjdk-bin/jdk13-linux.nix
../development/compilers/adoptopenjdk-bin/jdk13-darwin.nix;
adoptopenjdk-14 = mkAdoptopenjdk
../development/compilers/adoptopenjdk-bin/jdk14-linux.nix
../development/compilers/adoptopenjdk-bin/jdk14-darwin.nix;
adoptopenjdk-15 = mkAdoptopenjdk
../development/compilers/adoptopenjdk-bin/jdk15-linux.nix
../development/compilers/adoptopenjdk-bin/jdk15-darwin.nix;
adoptopenjdk-16 = mkAdoptopenjdk
../development/compilers/adoptopenjdk-bin/jdk16-linux.nix
../development/compilers/adoptopenjdk-bin/jdk16-darwin.nix;
2022-03-23 01:56:36 +00:00
adoptopenjdk-17 = mkAdoptopenjdk
../development/compilers/adoptopenjdk-bin/jdk17-linux.nix
../development/compilers/adoptopenjdk-bin/jdk17-darwin.nix;
corretto11 = callPackage ../development/compilers/corretto/11.nix { };
corretto17 = callPackage ../development/compilers/corretto/17.nix { };
corretto19 = callPackage ../development/compilers/corretto/19.nix { };
2024-04-26 07:05:55 +00:00
corretto21 = callPackage ../development/compilers/corretto/21.nix { };
openjdk8-bootstrap = mkBootstrap adoptopenjdk-8
../development/compilers/openjdk/bootstrap.nix
{ version = "8"; };
openjdk11-bootstrap = mkBootstrap adoptopenjdk-11
../development/compilers/openjdk/bootstrap.nix
{ version = "10"; };
openjdk13-bootstrap = mkBootstrap adoptopenjdk-13
../development/compilers/openjdk/12.nix
(bootstrapArgs // {
inherit openjdk11-bootstrap;
/* build segfaults with gcc9 or newer, so use gcc8 like Debian does */
stdenv = gcc8Stdenv;
});
openjdk14-bootstrap = mkBootstrap adoptopenjdk-14
../development/compilers/openjdk/13.nix
(bootstrapArgs // {
inherit openjdk13-bootstrap;
});
openjdk15-bootstrap = mkBootstrap adoptopenjdk-15
../development/compilers/openjdk/14.nix
(bootstrapArgs // {
inherit openjdk14-bootstrap;
});
openjdk16-bootstrap = mkBootstrap adoptopenjdk-16
../development/compilers/openjdk/15.nix
(bootstrapArgs // {
inherit openjdk15-bootstrap;
});
openjdk17-bootstrap = mkBootstrap adoptopenjdk-17
../development/compilers/openjdk/16.nix
(bootstrapArgs // {
inherit openjdk16-bootstrap;
});
2022-03-23 01:57:01 +00:00
openjdk18-bootstrap = mkBootstrap adoptopenjdk-17
../development/compilers/openjdk/17.nix
(bootstrapArgs // {
inherit openjdk17-bootstrap;
});
openjdk8 = mkOpenjdk
../development/compilers/openjdk/8.nix
2023-10-07 23:26:09 +00:00
../development/compilers/zulu/8.nix
{ };
openjdk11 = mkOpenjdk
../development/compilers/openjdk/11.nix
2023-10-07 23:26:09 +00:00
../development/compilers/zulu/11.nix
{ openjfx = openjfx11; };
openjdk12 = mkOpenjdkLinuxOnly ../development/compilers/openjdk/12.nix {
/* build segfaults with gcc9 or newer, so use gcc8 like Debian does */
stdenv = gcc8Stdenv;
openjfx = openjfx11;
};
openjdk13 = mkOpenjdkLinuxOnly ../development/compilers/openjdk/13.nix {
inherit openjdk13-bootstrap;
openjfx = openjfx11;
};
openjdk14 = mkOpenjdkLinuxOnly ../development/compilers/openjdk/14.nix {
inherit openjdk14-bootstrap;
openjfx = openjfx11;
};
openjdk15 = mkOpenjdkLinuxOnly ../development/compilers/openjdk/15.nix {
inherit openjdk15-bootstrap;
openjfx = openjfx15;
};
2024-02-08 18:49:57 +00:00
openjdk16 = mkOpenjdkLinuxOnly ../development/compilers/openjdk/16.nix {
inherit openjdk16-bootstrap;
openjfx = openjfx15;
};
openjdk17 = mkOpenjdk
../development/compilers/openjdk/17.nix
2023-10-07 23:26:09 +00:00
../development/compilers/zulu/17.nix
{
inherit openjdk17-bootstrap;
2022-01-14 14:44:08 +00:00
openjfx = openjfx17;
};
2022-03-23 01:57:01 +00:00
openjdk18 = mkOpenjdk
../development/compilers/openjdk/18.nix
2023-10-07 23:26:09 +00:00
../development/compilers/zulu/18.nix
2022-03-23 01:57:01 +00:00
{
inherit openjdk18-bootstrap;
openjfx = openjfx17;
};
openjdk19 = mkOpenjdk
../development/compilers/openjdk/19.nix
2023-10-07 23:26:09 +00:00
../development/compilers/zulu/19.nix
{
openjdk19-bootstrap = temurin-bin.jdk-19;
openjfx = openjfx19;
};
openjdk20 = mkOpenjdk
../development/compilers/openjdk/20.nix
2023-10-07 23:26:09 +00:00
../development/compilers/zulu/20.nix
{
openjdk20-bootstrap = temurin-bin.jdk-20;
openjfx = openjfx20;
};
openjdk21 = mkOpenjdk
../development/compilers/openjdk/21.nix
2023-10-08 21:15:19 +00:00
../development/compilers/zulu/21.nix
{
2023-10-05 13:08:34 +00:00
openjdk21-bootstrap = temurin-bin.jdk-21;
openjfx = openjfx21;
};
2024-03-12 22:11:00 +00:00
openjdk22 = mkOpenjdk
../development/compilers/openjdk/22.nix
../development/compilers/zulu/22.nix
{
openjdk22-bootstrap = temurin-bin.jdk-21;
openjfx = openjfx22;
};
temurin-bin = recurseIntoAttrs (callPackage (
if stdenv.isLinux
then ../development/compilers/temurin-bin/jdk-linux.nix
else ../development/compilers/temurin-bin/jdk-darwin.nix
) {});
semeru-bin = recurseIntoAttrs (callPackage (
if stdenv.isLinux
then ../development/compilers/semeru-bin/jdk-linux.nix
else ../development/compilers/semeru-bin/jdk-darwin.nix
) {});
};
2016-10-30 15:44:56 +00:00
}
2024-02-06 15:05:49 +00:00
// lib.optionalAttrs config.allowAliases {
jogl_2_4_0 = throw "'jogl_2_4_0' is renamed to/replaced by 'jogl'";
2024-02-06 15:05:49 +00:00
mavenfod = throw "'mavenfod' is renamed to/replaced by 'maven.buildMavenPackage'";
}