From a08ca4c04a3137bc5671a811c177e70212c4593d Mon Sep 17 00:00:00 2001 From: Shea Levy Date: Thu, 4 Oct 2012 16:56:41 -0400 Subject: [PATCH] openjdk: Don't use the official build system's boostrapping, do our own. The openjdk BOOT_CYCLE bootstrap doesn't use the binaries built in the first stage for the second stage, so we get a bunch of errors like: /bin/sh: /nix/store/wdgl7xl9b72hn212l0672ad5sn7vh44y-openjdk-bootstrap/bin/native2ascii: No such file or directory Instead, just build each stage as a separate derivation --- .../development/compilers/openjdk/default.nix | 1 - pkgs/top-level/all-packages.nix | 25 +++++++++++-------- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/pkgs/development/compilers/openjdk/default.nix b/pkgs/development/compilers/openjdk/default.nix index f243baab591..56daf43595d 100644 --- a/pkgs/development/compilers/openjdk/default.nix +++ b/pkgs/development/compilers/openjdk/default.nix @@ -122,7 +122,6 @@ stdenv.mkDerivation rec { "UNIXCOMMAND_PATH=" "BOOTDIR=${jdk}" "DROPS_DIR=$(DROPS_PATH)" - "SKIP_BOOT_CYCLE=false" ]; configurePhase = '' diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index c34758800c6..2e8a80a4cd0 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2355,31 +2355,36 @@ let openjdkBootstrap = callPackage ../development/compilers/openjdk/bootstrap.nix {}; + openjdkStage1 = callPackage ../development/compilers/openjdk { + jdk = pkgs.openjdkBootstrap; + ant = pkgs.ant.override { jdk = pkgs.openjdkBootstrap; }; + }; + openjdk = if stdenv.isDarwin then callPackage ../development/compilers/openjdk-darwin { } else callPackage ../development/compilers/openjdk { - jdk = pkgs.openjdkBootstrap; - ant = pkgs.ant.override { jdk = pkgs.openjdkBootstrap; }; + jdk = pkgs.openjdkStage1; + ant = pkgs.ant.override { jdk = pkgs.openjdkStage1; }; }; - openjre = callPackage ../development/compilers/openjdk { + openjre = pkgs.openjdk.override { jreOnly = true; }; jdk = if (stdenv.isDarwin || stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux") - then openjdk - else jdkdistro true false; + then pkgs.openjdk + else pkgs.oraclejdk; jre = if (stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux") - then openjre - else jdkdistro false false; + then pkgs.openjre + else pkgs.oraclejre; - oraclejdk = jdkdistro true false; + oraclejdk = pkgs.jdkdistro true false; - oraclejre = jdkdistro false false; + oraclejre = pkgs.jdkdistro false false; - jrePlugin = lowPrio (jdkdistro false true); + jrePlugin = lowPrio (pkgs.jdkdistro false true); supportsJDK = system == "i686-linux" ||