summary refs log tree commit diff
path: root/pkgs/development
diff options
context:
space:
mode:
authorShea Levy <shea@shealevy.com>2012-08-24 22:29:23 -0400
committerShea Levy <shea@shealevy.com>2012-08-24 23:05:41 -0400
commit228c35f0b2b386635e6bbd8c6513e9fc5bafeb2f (patch)
tree1976d6c47a6ef5551cc7f47d0b282bb4c6f0b467 /pkgs/development
parenta4b39fac652c6d829ea39c10f72b43f2074b1609 (diff)
downloadnixlib-228c35f0b2b386635e6bbd8c6513e9fc5bafeb2f.tar
nixlib-228c35f0b2b386635e6bbd8c6513e9fc5bafeb2f.tar.gz
nixlib-228c35f0b2b386635e6bbd8c6513e9fc5bafeb2f.tar.bz2
nixlib-228c35f0b2b386635e6bbd8c6513e9fc5bafeb2f.tar.lz
nixlib-228c35f0b2b386635e6bbd8c6513e9fc5bafeb2f.tar.xz
nixlib-228c35f0b2b386635e6bbd8c6513e9fc5bafeb2f.tar.zst
nixlib-228c35f0b2b386635e6bbd8c6513e9fc5bafeb2f.zip
openjdk: Build from bootstrap
Diffstat (limited to 'pkgs/development')
-rw-r--r--pkgs/development/compilers/openjdk/bootstrap.nix21
-rw-r--r--pkgs/development/compilers/openjdk/default.nix1
-rw-r--r--pkgs/development/compilers/openjdk/make-bootstrap.nix4
3 files changed, 25 insertions, 1 deletions
diff --git a/pkgs/development/compilers/openjdk/bootstrap.nix b/pkgs/development/compilers/openjdk/bootstrap.nix
new file mode 100644
index 000000000000..8f603bb2354d
--- /dev/null
+++ b/pkgs/development/compilers/openjdk/bootstrap.nix
@@ -0,0 +1,21 @@
+{ runCommand, glibc, fetchurl }:
+
+let
+  # !!! These should be on nixos.org
+  src = if glibc.system == "x86_64-linux" then
+    fetchurl {
+      url = ftp://linode.shealevy.com/openjdk-bootstrap-x86_64-linux-2012-08-24.tar.xz;
+      sha256 = "0gla9dxrfq2w1hvgsnn8jg8a60k27im6z43a6iidi0qmwa0wah32";
+    }
+  else if glibc.system == "i686-linux" then
+    fetchurl {
+      url = ftp://linode.shealevy.com/openjdk-bootstrap-i686-linux-2012-08-24.tar.xz;
+      sha256 = "184wq212bycwbbq4ix8cc6jwjxkrqw9b01zb86q95kqpa8zy5206";
+    }
+  else throw "No bootstrap for system";
+in
+
+runCommand "openjdk-bootstrap" {} ''
+  xz -dc ${src} | sed "s/e*-glibc-[^/]*/$(basename ${glibc})/g" | tar xv
+  mv openjdk-bootstrap $out
+''
diff --git a/pkgs/development/compilers/openjdk/default.nix b/pkgs/development/compilers/openjdk/default.nix
index cf85c1706a8a..5f5148911ec2 100644
--- a/pkgs/development/compilers/openjdk/default.nix
+++ b/pkgs/development/compilers/openjdk/default.nix
@@ -107,6 +107,7 @@ stdenv.mkDerivation rec {
     "UNIXCOMMAND_PATH="
     "BOOTDIR=${jdk}"
     "DROPS_DIR=$(DROPS_PATH)"
+    "SKIP_BOOT_CYCLE=false"
   ];
 
   configurePhase = ''
diff --git a/pkgs/development/compilers/openjdk/make-bootstrap.nix b/pkgs/development/compilers/openjdk/make-bootstrap.nix
index ca6533b72acc..aa5b8ad39f56 100644
--- a/pkgs/development/compilers/openjdk/make-bootstrap.nix
+++ b/pkgs/development/compilers/openjdk/make-bootstrap.nix
@@ -5,7 +5,7 @@ let arch = if openjdk.system == "x86_64-linux" then "amd64" else "i386"; in
 runCommand "${openjdk.name}-bootstrap.tar.xz" {} ''
   mkdir -p openjdk-bootstrap/bin
   mkdir -p openjdk-bootstrap/lib
-  mkdir -p openjdk-bootstrap/jre/lib/{security,ext,${arch}/{jli,server,headless}}
+  mkdir -p openjdk-bootstrap/jre/lib/{security,ext,${arch}/{jli,server,client,headless}}
   cp ${openjdk}/bin/{idlj,ja{va{,c,p,h},r},rmic} openjdk-bootstrap/bin
   cp ${openjdk}/lib/tools.jar openjdk-bootstrap/lib
   cp ${openjdk}/jre/lib/{meta-index,{charsets,jce,jsse,rt,resources}.jar,currency.data} openjdk-bootstrap/jre/lib
@@ -14,6 +14,8 @@ runCommand "${openjdk.name}-bootstrap.tar.xz" {} ''
   cp ${openjdk}/jre/lib/${arch}/{jvm.cfg,lib{awt,java,verify,zip,nio,net}.so} openjdk-bootstrap/jre/lib/${arch}
   cp ${openjdk}/jre/lib/${arch}/jli/libjli.so openjdk-bootstrap/jre/lib/${arch}/jli
   cp ${openjdk}/jre/lib/${arch}/server/libjvm.so openjdk-bootstrap/jre/lib/${arch}/server
+  cp ${openjdk}/jre/lib/${arch}/client/libjvm.so openjdk-bootstrap/jre/lib/${arch}/client ||
+    rmdir openjdk-bootstrap/jre/lib/${arch}/client
   cp ${openjdk}/jre/lib/${arch}/headless/libmawt.so openjdk-bootstrap/jre/lib/${arch}/headless
   cp -a ${openjdk}/include openjdk-bootstrap