diff options
author | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2005-10-07 22:27:42 +0000 |
---|---|---|
committer | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2005-10-07 22:27:42 +0000 |
commit | 5b63bb66f7cce977ac94a2e3c6e0034cb80c16e7 (patch) | |
tree | 600c2ab6abd221d77c2b2733f6b6b04601a3ed88 /pkgs/development/compilers/jdk | |
parent | 881f4b0db1cacf2d5e451482c7f98a4281aff5c8 (diff) | |
download | nixpkgs-5b63bb66f7cce977ac94a2e3c6e0034cb80c16e7.tar nixpkgs-5b63bb66f7cce977ac94a2e3c6e0034cb80c16e7.tar.gz nixpkgs-5b63bb66f7cce977ac94a2e3c6e0034cb80c16e7.tar.bz2 nixpkgs-5b63bb66f7cce977ac94a2e3c6e0034cb80c16e7.tar.lz nixpkgs-5b63bb66f7cce977ac94a2e3c6e0034cb80c16e7.tar.xz nixpkgs-5b63bb66f7cce977ac94a2e3c6e0034cb80c16e7.tar.zst nixpkgs-5b63bb66f7cce977ac94a2e3c6e0034cb80c16e7.zip |
* Purification of JDK 5. At runtime it now uses the Nix-deployed
Glibc and X11 client libraries. The latter are actually optional dependencies: if the function is called with `swingSupport' set to `false', they are not needed. This is nice for, e.g., server environments. All hail Patchelf! svn path=/nixpkgs/trunk/; revision=4030
Diffstat (limited to 'pkgs/development/compilers/jdk')
-rw-r--r-- | pkgs/development/compilers/jdk/builder.sh | 10 | ||||
-rw-r--r-- | pkgs/development/compilers/jdk/default.nix | 8 | ||||
-rw-r--r-- | pkgs/development/compilers/jdk/jdk5-sun-linux.nix | 10 |
3 files changed, 21 insertions, 7 deletions
diff --git a/pkgs/development/compilers/jdk/builder.sh b/pkgs/development/compilers/jdk/builder.sh index cc70c09b3c8..b1a8528b938 100644 --- a/pkgs/development/compilers/jdk/builder.sh +++ b/pkgs/development/compilers/jdk/builder.sh @@ -30,6 +30,16 @@ do fi done +# Set the dynamic linker. +rpath= +for i in $libraries; do + rpath=$rpath${rpath:+:}$i/lib +done +glibc=$(cat $NIX_GCC/nix-support/orig-glibc) +find $out -type f -perm +100 \ + -exec patchelf --interpreter $glibc/lib/ld-linux.so.* \ + --set-rpath "$rpath" {} \; + # Unpack .pack files. for i in $(find $out -name "*.pack"); do echo "unpacking $i..." diff --git a/pkgs/development/compilers/jdk/default.nix b/pkgs/development/compilers/jdk/default.nix index 060d270fb08..14cf14bd376 100644 --- a/pkgs/development/compilers/jdk/default.nix +++ b/pkgs/development/compilers/jdk/default.nix @@ -1,9 +1,7 @@ -{stdenv, fetchurl, unzip}: +args: -if stdenv.system == "i686-linux" +if args.stdenv.system == "i686-linux" then - (import ./jdk5-sun-linux.nix) { - inherit stdenv fetchurl unzip; - } + (import ./jdk5-sun-linux.nix) args else false diff --git a/pkgs/development/compilers/jdk/jdk5-sun-linux.nix b/pkgs/development/compilers/jdk/jdk5-sun-linux.nix index 3160ad24bbc..c01cd707d36 100644 --- a/pkgs/development/compilers/jdk/jdk5-sun-linux.nix +++ b/pkgs/development/compilers/jdk/jdk5-sun-linux.nix @@ -8,10 +8,14 @@ * * @author Martin Bravenboer <martin@cs.uu.nl> */ -{stdenv, fetchurl, unzip}: +{ swingSupport ? true +, stdenv, fetchurl, unzip, patchelf, libX11 ? null, libXext ? null +}: assert stdenv.system == "i686-linux"; +assert swingSupport -> libX11 != null && libXext != null; + stdenv.mkDerivation { name = "jdk-1.5.0"; builder = ./builder.sh; @@ -19,5 +23,7 @@ stdenv.mkDerivation { dirname = "jdk1.5.0_05"; pathname = "/tmp/jdk-1_5_0_05-linux-i586.bin"; md5 = "2f83bf2a38fff1f8ac51b02ec7391ca3"; - buildInputs = [unzip]; + buildInputs = [unzip patchelf]; + libraries = + (if swingSupport then [libX11 libXext] else []); } |