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
This commit is contained in:
Shea Levy 2012-10-04 16:56:41 -04:00
parent 3ab23d9542
commit a08ca4c04a
2 changed files with 15 additions and 11 deletions

View File

@ -122,7 +122,6 @@ stdenv.mkDerivation rec {
"UNIXCOMMAND_PATH=" "UNIXCOMMAND_PATH="
"BOOTDIR=${jdk}" "BOOTDIR=${jdk}"
"DROPS_DIR=$(DROPS_PATH)" "DROPS_DIR=$(DROPS_PATH)"
"SKIP_BOOT_CYCLE=false"
]; ];
configurePhase = '' configurePhase = ''

View File

@ -2355,31 +2355,36 @@ let
openjdkBootstrap = callPackage ../development/compilers/openjdk/bootstrap.nix {}; openjdkBootstrap = callPackage ../development/compilers/openjdk/bootstrap.nix {};
openjdkStage1 = callPackage ../development/compilers/openjdk {
jdk = pkgs.openjdkBootstrap;
ant = pkgs.ant.override { jdk = pkgs.openjdkBootstrap; };
};
openjdk = openjdk =
if stdenv.isDarwin then if stdenv.isDarwin then
callPackage ../development/compilers/openjdk-darwin { } callPackage ../development/compilers/openjdk-darwin { }
else else
callPackage ../development/compilers/openjdk { callPackage ../development/compilers/openjdk {
jdk = pkgs.openjdkBootstrap; jdk = pkgs.openjdkStage1;
ant = pkgs.ant.override { jdk = pkgs.openjdkBootstrap; }; ant = pkgs.ant.override { jdk = pkgs.openjdkStage1; };
}; };
openjre = callPackage ../development/compilers/openjdk { openjre = pkgs.openjdk.override {
jreOnly = true; jreOnly = true;
}; };
jdk = if (stdenv.isDarwin || stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux") jdk = if (stdenv.isDarwin || stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux")
then openjdk then pkgs.openjdk
else jdkdistro true false; else pkgs.oraclejdk;
jre = if (stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux") jre = if (stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux")
then openjre then pkgs.openjre
else jdkdistro false false; 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 = supportsJDK =
system == "i686-linux" || system == "i686-linux" ||