Unverified Commit 9ad194b5 authored by h7x4's avatar h7x4 Committed by GitHub
Browse files

jdk: combine meta.platforms of both packages to fix hydra builds for dependent packages (#389625)

parents e72bf8a6 d1ad3425
Loading
Loading
Loading
Loading
+40 −32
Original line number Diff line number Diff line
@@ -7,38 +7,48 @@ with pkgs;

  compiler =
    let
      mkOpenjdk =
        featureVersion: path-darwin:
      # merge meta.platforms of both packages so that dependent packages and hydra build them
      mergeMetaPlatforms =
        jdk: other:
        jdk
        // {
          meta = jdk.meta // {
            platforms = lib.unique (jdk.meta.platforms ++ other.meta.platforms);
          };
        };

      mkLinuxDarwin =
        linux: darwin:
        if stdenv.hostPlatform.isLinux then
          mkOpenjdkLinuxOnly featureVersion
          mergeMetaPlatforms linux darwin
        else
          let
            openjdk = callPackage path-darwin { };
          in
          openjdk // { headless = openjdk; };
          mergeMetaPlatforms darwin linux;

      mkOpenjdkLinuxOnly =
      mkOpenjdk =
        featureVersion:
        let
          openjdk = callPackage ../development/compilers/openjdk/generic.nix { inherit featureVersion; };
        in
        assert stdenv.hostPlatform.isLinux;
        openjdk
          openjdkLinux =
            (callPackage ../development/compilers/openjdk/generic.nix { inherit featureVersion; })
            // {
          headless = openjdk.override { headless = true; };
              headless = mergeMetaPlatforms openjdkLinuxHeadless openjdkDarwin;
            };

          openjdkLinuxHeadless = openjdkLinux.override { headless = true; };
          openjdkDarwin = (callPackage ../development/compilers/zulu/${featureVersion}.nix { }) // {
            headless = mergeMetaPlatforms openjdkDarwin openjdkLinuxHeadless;
          };
        in
        mkLinuxDarwin openjdkLinux openjdkDarwin;
    in
    rec {
      corretto11 = callPackage ../development/compilers/corretto/11.nix { };
      corretto17 = callPackage ../development/compilers/corretto/17.nix { };
      corretto21 = callPackage ../development/compilers/corretto/21.nix { };

      openjdk8 = mkOpenjdk "8" ../development/compilers/zulu/8.nix;
      openjdk11 = mkOpenjdk "11" ../development/compilers/zulu/11.nix;
      openjdk17 = mkOpenjdk "17" ../development/compilers/zulu/17.nix;
      openjdk21 = mkOpenjdk "21" ../development/compilers/zulu/21.nix;
      openjdk23 = mkOpenjdk "23" ../development/compilers/zulu/23.nix;
      openjdk8 = mkOpenjdk "8";
      openjdk11 = mkOpenjdk "11";
      openjdk17 = mkOpenjdk "17";
      openjdk21 = mkOpenjdk "21";
      openjdk23 = mkOpenjdk "23";

      # Legacy aliases
      openjdk8-bootstrap = temurin-bin.jdk-8;
@@ -46,21 +56,19 @@ with pkgs;
      openjdk17-bootstrap = temurin-bin.jdk-17;

      temurin-bin = recurseIntoAttrs (
        callPackage (
          if stdenv.hostPlatform.isLinux then
            ../development/compilers/temurin-bin/jdk-linux.nix
          else
            ../development/compilers/temurin-bin/jdk-darwin.nix
        ) { }
        let
          temurinLinux = callPackage ../development/compilers/temurin-bin/jdk-linux.nix { };
          temurinDarwin = callPackage ../development/compilers/temurin-bin/jdk-darwin.nix { };
        in
        lib.mapAttrs (name: drv: mkLinuxDarwin drv temurinDarwin.${name}) temurinLinux
      );

      semeru-bin = recurseIntoAttrs (
        callPackage (
          if stdenv.hostPlatform.isLinux then
            ../development/compilers/semeru-bin/jdk-linux.nix
          else
            ../development/compilers/semeru-bin/jdk-darwin.nix
        ) { }
        let
          semeruLinux = callPackage ../development/compilers/semeru-bin/jdk-linux.nix { };
          semeruDarwin = callPackage ../development/compilers/semeru-bin/jdk-darwin.nix { };
        in
        lib.mapAttrs (name: drv: mkLinuxDarwin drv semeruDarwin.${name}) semeruLinux
      );
    };
}