Update of jdk and jre to jdk-distros, based on Distributor License for Java.

D    pkgs/development/interpreters/jre

Obsolete. jdk and jre are now build by the same expression.

D    pkgs/development/compilers/blackdown

Obsolete. jdk is now downloadable.

D    pkgs/development/compilers/jdk/jdk5-sun-linux.nix

Obsolete

A    pkgs/development/compilers/jdk/dlj-bundle-builder.sh

Build for DLJ bundles.

M    pkgs/top-level/all-packages.nix

Dropped blackdown and ant based on blackdown.

A    pkgs/development/compilers/jdk/jdk6-construct.sh

Copy of DLJ construct script to fix problem with jdk6 bundles.

A    pkgs/development/compilers/jdk/jdk6-linux.nix

New main Nix expression for jdk and jre. Supports mozillaPlugin.

A    pkgs/development/compilers/jdk/dlj-bundle-builder.sh

Include path to libjli in rpath.


svn path=/nixpkgs/trunk/; revision=8186
This commit is contained in:
Martin Bravenboer 2007-03-05 17:13:53 +00:00
parent 12b6b77f96
commit 6892b99bf6
12 changed files with 354 additions and 152 deletions

@ -1,13 +0,0 @@
{stdenv, fetchurl}:
assert stdenv.system == "i686-linux";
(stdenv.mkDerivation {
name = "blackdown-1.4.2";
dirname = "j2sdk1.4.2";
builder = ./builder.sh;
src = fetchurl {
url = http://nix.cs.uu.nl/dist/tarballs/j2sdk-1.4.2-02-linux-i586.bin;
md5 = "a65733528562794b7838407084cabd9a";
};
}) // {mozillaPlugin = "/jre/plugin/i386/mozilla";}

@ -1,26 +0,0 @@
set -e
source $stdenv/setup
cp $src .
bin=`basename $src`
chmod u+x $bin
# This is required because those GNU coreutils fuckers suddenly
# removed the `+N' syntax (due to a misguided desire for "standards
# compliance"), which the Blackdown installer uses.
export _POSIX2_VERSION=199209
alias more=cat
yes yes | ./$bin
mkdir $out
mv $dirname/* $out/
# remove crap in the root directory
for file in $out/*
do
if test -f $file ; then
rm $file
fi
done

@ -1,9 +0,0 @@
{stdenv, fetchurl}:
if stdenv.system == "i686-linux"
then
(import ./blackdown-i686.nix) {
inherit stdenv fetchurl;
}
else
null

@ -1,8 +1,10 @@
args:
if args.stdenv.system == "i686-linux" then
(import ./jdk5-sun-linux.nix) args
(import ./jdk6-linux.nix) args
else if args.stdenv.system == "powerpc-linux" then
(import ./jdk5-ibm-powerpc-linux.nix) args
else
false

@ -1,11 +1,13 @@
source $stdenv/setup
sh ${src} --accept-license
unzip $src || true
ensureDir $out
echo "Moving sources to the right location"
mv $version/* $out/
if test -z "$installjdk"; then
sh ${construct} . tmp-linux-jdk tmp-linux-jre
ensureDir $out
cp -R tmp-linux-jre/* $out
else
sh ${construct} . $out tmp-linux-jre
fi
echo "Removing files at top level"
for file in $out/*
@ -21,13 +23,13 @@ rpath=
for i in $libraries; do
rpath=$rpath${rpath:+:}$i/lib
done
if test -z "$installjdk"; then
rpath=${rpath:+:}$out/lib/i386/jli
else
rpath=${rpath:+:}$out/jre/lib/i386/jli
fi
find $out -type f -perm +100 \
-exec patchelf --interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" \
--set-rpath "$rpath" {} \;
# Unpack .pack files.
for i in $(find $out -name "*.pack"); do
echo "unpacking $i..."
$out/bin/unpack200 "$i" "$(dirname $i)/$(basename $i .pack).jar"
rm "$i"
done

@ -1,29 +0,0 @@
/**
* This Nix expression requires the user to download the jdk
* distribution to /tmp. Please obtain jdk-1_5_0_07-linux-i586.bin
* from java.sun.com by hand and place it in /tmp. Blame Sun, not me.
*
* Note that this is not necessary if someone has already pushed a
* binary.
*
* @author Martin Bravenboer <martin@cs.uu.nl>
*/
{ swingSupport ? true
, stdenv, fetchurl, unzip, 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;
filename = "jdk-1_5_0_07";
dirname = "jdk1.5.0_07";
pathname = "/tmp/jdk-1_5_0_07-linux-i586.bin";
md5 = "1325082c36b4adcb71bc5449ae4c68cf";
buildInputs = [unzip];
libraries =
(if swingSupport then [libX11 libXext] else []);
} // {inherit swingSupport;})

@ -0,0 +1,273 @@
#!/bin/bash
# construct.sh
# example construction of JRE and JDK directories from the DLJ bundles
#
# Copyright © 2006 Sun Microsystems, Inc.
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
# "Software"), to deal in the Software without restriction, including
# without limitation the rights to use, copy, modify, merge, publish,
# distribute, sublicense, and/or sell copies of the Software, and to
# permit persons to whom the Software is furnished to do so, subject to
# the following conditions:
#
# The above copyright notice and this permission notice shall be
# included in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
# Sun, Sun Microsystems, the Sun logo and Java, Java HotSpot,
# and JVM trademarks or registered trademarks of Sun Microsystems,
# Inc. in the U.S. and other countries.
program=`basename $0`
usage () {
echo "usage: ${program} path/to/unbundle-jdk path/to/linux-jdk path/to/linux-jre"
}
getargs() {
undir=$1
jdkdir=$2
jredir=$3
if [ ! -d $undir ]; then
echo "${program}: unbundle directory not found: $undir"
exit 2
fi
# make sure javahome is the JDK
javahome=`echo $undir/*/demo`
if [ ! -d $javahome ]; then
echo "${program}: unbundle directory incorrect: $undir"
echo " expecting $undir/jdk1.5.0_xx"
exit 2
else
javahome=`dirname $javahome`
fi
# verify JDK dir
jdkdirp=`dirname $jdkdir`
jdkbase=`basename $jdkdir`
if [ ! -d $jdkdirp ]; then
echo "${program}: parent directory for JDK does not exist: $jdkdirp"
exit 2
fi
savedir=`pwd`
cd $jdkdirp
jdkdirp=`pwd`
cd $savedir
jdkdir=$jdkdirp/$jdkbase
# verify JRE dir
jredirp=`dirname $jredir`
jrebase=`basename $jredir`
if [ ! -d $jredirp ]; then
echo "${program}: parent directory for JRE does not exist: $jredirp"
exit 2
fi
savedir=`pwd`
cd $jredirp
jredirp=`pwd`
cd $savedir
jredir=$jredirp/$jrebase
}
checkfiles() {
if [ -r $jdkdir ]; then
echo "${program}: directory for JDK already exists: $jdkdir"
exit 2
fi
if [ -r $jredir ]; then
echo "${program}: directory for JRE already exists: $jredir"
exit 2
fi
}
copytree() {
echo "copying over the JDK tree..."
cp -a $javahome $jdkdir
}
linkrel() {
target=$1
link=$2
# make a softlink from the $link to the $target
# make this a relative link
targetb=(`echo $target | tr '/' ' '`)
linkb=(`echo $link | tr '/' ' '`)
(( n = ${#targetb[*]} ))
(( m = ${#linkb[*]} ))
c=$n # common length
if [ $m -lt $c ]; then
(( c = m ))
fi
for (( i = 0 ; i < c ; i++ )); do
if [ ${targetb[$i]} != ${linkb[$i]} ]; then
# echo components differ, stopping
break
fi
done
rel=""
for (( j = i + 1; j < m ; j++ )); do
if [ -z $rel ]; then
rel=".."
else
rel="$rel/.."
fi
done
for (( j = i; j < n ; j++ )); do
if [ -z $rel ]; then
rel=${targetb[$j]}
else
rel="$rel/${targetb[$j]}"
fi
done
ln -s $rel $link
}
createjre() {
echo "creating JRE directory..."
# absolute link
# ln -s $jdkdir/jre $jredir
# relative link
linkrel $jdkdir/jre $jredir
}
unpackjars() {
echo "unpacking jars..."
unpack200=$jdkdir/bin/unpack200
if [ ! -x $unpack200 ]; then
echo "${program}: file missing $unpack200"
exit 1
fi
cd $jdkdir
PACKED_JARS=`find . -name '*.pack'`
for i in $PACKED_JARS; do
# echo $i
jdir=`dirname $i`
jbase=`basename $i .pack`
if ! $unpack200 $jdkdir/$jdir/$jbase.pack $jdkdir/$jdir/$jbase.jar; then
echo "${program}: error unpacking $jdkdir/$jdir/$jbase.jar"
fi
if [ ! -r $jdkdir/$jdir/$jbase.jar ]; then
echo "${program}: missing $jdkdir/$jdir/$jbase.jar"
else
echo " $jdir/$jbase.jar"
# remove pack file
rm $jdkdir/$jdir/$jbase.pack
fi
done
}
preparecds() {
# if this is a client installation...
compiler="`$jdkdir/bin/java -client -version 2>&1 | tail -n +3 | cut -d' ' -f1-4`"
if [ "X$compiler" = "XJava HotSpot(TM) Client VM" ]; then
# create the CDS archive
echo "creating the class data sharing archive..."
if ! $jdkdir/bin/java -client -Xshare:dump > /dev/null 2>&1; then
echo "returned error code $?"
fi
fi
}
jreman () {
echo "setting up the JRE man pages..."
# note this list is slightly different for OpenSolaris bundles
jreman=/tmp/jre.man.txt
cat <<EOF > $jreman
man/ja_JP.eucJP/man1/java.1
man/ja_JP.eucJP/man1/javaws.1
man/ja_JP.eucJP/man1/keytool.1
man/ja_JP.eucJP/man1/orbd.1
man/ja_JP.eucJP/man1/pack200.1
man/ja_JP.eucJP/man1/policytool.1
man/ja_JP.eucJP/man1/rmid.1
man/ja_JP.eucJP/man1/rmiregistry.1
man/ja_JP.eucJP/man1/servertool.1
man/ja_JP.eucJP/man1/tnameserv.1
man/ja_JP.eucJP/man1/unpack200.1
man/man1/java.1
man/man1/javaws.1
man/man1/keytool.1
man/man1/orbd.1
man/man1/pack200.1
man/man1/policytool.1
man/man1/rmid.1
man/man1/rmiregistry.1
man/man1/servertool.1
man/man1/tnameserv.1
man/man1/unpack200.1
EOF
# create jre/man directory
# mkdir $jdkdir/jre/man
# move the real JRE man pages to jre/man
# link the JDK JRE man pages to jre/man
# real JDK man pages stay where they are
for m in `cat $jreman`; do
manpath=`dirname $jdkdir/jre/$m`
mkdir -p $manpath
mv $jdkdir/$m $jdkdir/jre/$m
linkrel $jdkdir/jre/$m $jdkdir/$m
done
# link in Japanese man pages
ln -s ja_JP.eucJP $jdkdir/jre/man/ja
rm $jreman
}
elimdups() {
echo "eliminating duplication between the JDK and JDK/jre..."
jdkcomm=/tmp/jdk.bin.comm.txt
cat <<EOF > $jdkcomm
bin/ControlPanel
bin/java
bin/javaws
bin/keytool
bin/orbd
bin/pack200
bin/policytool
bin/rmid
bin/rmiregistry
bin/servertool
bin/tnameserv
bin/unpack200
EOF
# note there is little point in linking these common files
# COPYRIGHT
# LICENSE
# THIRDPARTYLICENSEREADME.txt
# And this file is unique to the JDK
# README.html
# And these files are unique to the JDK/jre/
# CHANGES
# README
# Welcome.html
for p in `cat $jdkcomm`; do
rm $jdkdir/$p
# this is a relative link
ln -s ../jre/$p $jdkdir/$p
done
rm $jdkcomm
}
if [ $# -eq 3 ] ; then
getargs $1 $2 $3
checkfiles
copytree
createjre
unpackjars
preparecds
jreman
elimdups
else
usage
exit 1
fi
exit 0

@ -0,0 +1,45 @@
{ swingSupport ? true
, stdenv
, fetchurl
, unzip
, libX11 ? null
, libXext ? null
, installjdk ? true
}:
/**
* @todo Support x86_64-linux.
*/
assert stdenv.system == "i686-linux";
assert swingSupport -> libX11 != null && libXext != null;
(stdenv.mkDerivation {
name =
if installjdk then "jdk-1.6.0" else "jre-1.6.0";
src =
fetchurl {
url = http://download.java.net/dlj/binaries/jdk-6-dlj-linux-i586.bin;
sha256 = "0rw48124fdc5rhafj6qzrysb4w823jbn3awxgn07kcy1nvnrhkqw";
};
builder = ./dlj-bundle-builder.sh;
/**
* If jdk5 is added, make sure to use the original construct script.
* This copy removes references to kinit, klist, ktab, which seem to be
* gone in jdk.
*/
construct = ./jdk6-construct.sh;
inherit installjdk;
buildInputs = [unzip];
libraries =
(if swingSupport then [libX11 libXext] else []);
} // {
inherit swingSupport;
} // {
mozillaPlugin =
if installjdk then "jre/plugin/i386/ns7" else "/plugin/i386/ns7";
}
)

@ -1,9 +0,0 @@
{stdenv, fetchurl, unzip}:
if stdenv.system == "i686-linux"
then
(import ./jre-sun-linux.nix) {
inherit stdenv fetchurl unzip;
}
else
false

@ -1,16 +0,0 @@
{stdenv, fetchurl, unzip}:
assert stdenv.system == "i686-linux";
(stdenv.mkDerivation {
name = "jre-1.5.0";
version = "jre1.5.0_07";
builder = ./builder.sh;
src = fetchurl {
url = http://jdl.sun.com/webapps/download/AutoDL?BundleId=10542;
md5 = "e2ad1c9e47f3e34d1efae059b9e2a2d9";
};
buildInputs = [unzip];
})
// {mozillaPlugin = "/plugin/i386/ns7";}

@ -503,8 +503,7 @@ rec {
};
trang = import ../tools/text/xml/trang {
inherit fetchurl stdenv unzip;
jre = blackdown;
inherit fetchurl stdenv unzip jre;
};
transfig = import ../tools/graphics/transfig {
@ -582,10 +581,8 @@ rec {
abcPatchable = patches :
import ../development/compilers/abc/default.nix {
inherit stdenv fetchurl patches jre apacheAnt;
# apacheAnt = apacheAntBlackdown14;
javaCup = import ../development/libraries/java/cup {
inherit stdenv fetchurl;
jdk = blackdown;
inherit stdenv fetchurl jdk;
};
};
@ -594,10 +591,6 @@ rec {
inherit stdenv fetchurl jre;
};
blackdown = import ../development/compilers/blackdown {
inherit fetchurl stdenv;
};
dylan = import ../development/compilers/gwydion-dylan {
inherit fetchurl stdenv perl boehmgc yacc flex readline;
dylan =
@ -742,12 +735,15 @@ rec {
inherit fetchurl stdenv;
};
jdk =
jre = jdkdistro false;
jdk = jdkdistro true;
jdkdistro = installjdk :
if stdenv.isDarwin then
"/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home"
else
import ../development/compilers/jdk {
inherit fetchurl stdenv unzip;
inherit fetchurl stdenv unzip installjdk;
inherit (xlibs) libX11 libXext;
};
@ -863,10 +859,6 @@ rec {
inherit fetchurl stdenv ncurses readline;
};
jre = import ../development/interpreters/jre {
inherit fetchurl stdenv unzip;
};
kaffe = import ../development/interpreters/kaffe {
inherit fetchurl stdenv jikes alsaLib xlibs;
};
@ -941,8 +933,7 @@ rec {
*/
ecj = import ../development/eclipse/ecj {
inherit fetchurl stdenv unzip jre;
ant = apacheAntBlackdown14;
inherit fetchurl stdenv unzip jre ant;
};
jdtsdk = import ../development/eclipse/jdt-sdk {
@ -969,21 +960,16 @@ rec {
inherit fetchurl stdenv jre;
};
ant = apacheAnt;
apacheAnt = import ../development/tools/build-managers/apache-ant {
inherit fetchurl stdenv jdk;
name = "ant-jdk-1.5.0";
name = "ant-" + jdk.name;
};
apacheAnt14 = import ../development/tools/build-managers/apache-ant {
inherit fetchurl stdenv;
jdk = j2sdk14x;
name = "ant-jdk-1.4.2";
};
apacheAntBlackdown14 = import ../development/tools/build-managers/apache-ant {
inherit fetchurl stdenv;
jdk = blackdown;
name = "ant-blackdown-1.4.2";
name = "ant-" + j2sdk14x.name;
};
autoconf = autoconf259;
@ -1145,8 +1131,7 @@ rec {
};
swigWithJava = import ../development/tools/misc/swig {
inherit fetchurl stdenv;
jdk = blackdown;
inherit fetchurl stdenv jdk;
perlSupport = false;
pythonSupport = false;
javaSupport = true;
@ -2065,8 +2050,7 @@ rec {
};
mysql_jdbc = import ../servers/sql/mysql/jdbc {
inherit fetchurl stdenv;
ant = apacheAntBlackdown14;
inherit fetchurl stdenv ant;
};
nagios = import ../servers/monitoring/nagios {
@ -2082,13 +2066,11 @@ rec {
};
postgresql_jdbc = import ../servers/sql/postgresql/jdbc {
inherit fetchurl stdenv;
ant = apacheAntBlackdown14;
inherit fetchurl stdenv ant;
};
tomcat5 = import ../servers/http/tomcat {
inherit fetchurl stdenv ;
jdk = blackdown;
inherit fetchurl stdenv jdk;
};
vsftpd = import ../servers/ftp/vsftpd {
@ -2910,7 +2892,7 @@ rec {
]
# RealPlayer is disabled by default for legal reasons.
++ (if getConfig ["firefox" "enableRealPlayer"] false then [RealPlayer] else [])
++ (if blackdown != null then [blackdown] else []);
++ (if jre != false then [jre] else []);
};
xara = import ../applications/graphics/xara {

@ -6,7 +6,7 @@ let {
MPlayer
MPlayerPlugin
#abc
apacheAntBlackdown14
apacheAnt
apacheHttpd
aspectj
aterm
@ -17,7 +17,6 @@ let {
binutils
bison23
bittorrent
blackdown
bmp
bmp_plugin_musepack
bmp_plugin_wma
@ -67,6 +66,7 @@ let {
hello
iputils
jakartaregexp
jdk
jetty
jikes
jing_tools