From a88128d90ac2210312c302f8f0ce7c206329510c Mon Sep 17 00:00:00 2001 From: Some One Date: Sat, 6 Sep 2025 01:05:59 +0200 Subject: [PATCH] more java... --- ant.nix | 33 --- gradle/ant.patch | 24 ++ gradle/ant_1_6_5.nix | 27 ++ gradle/ant_1_7_0.nix | 25 ++ gradle_0_0_2.nix => gradle/gradle_0_0_2.nix | 13 +- gradle/junit.nix | 25 ++ jdk/ant_1_6.nix | 10 - jdk/dlj-bundle-builder.sh | 60 +++++ jdk/ecj.nix | 4 +- jdk/gnu-classpath_98.nix | 10 +- jdk/jdk6-bootstrap.nix | 4 +- jdk/jdk6-construct.sh | 273 ++++++++++++++++++++ jdk/jdk6-linux.nix | 84 ++++++ junit.nix | 36 --- overlay.nix | 23 +- 15 files changed, 546 insertions(+), 105 deletions(-) delete mode 100644 ant.nix create mode 100644 gradle/ant.patch create mode 100644 gradle/ant_1_6_5.nix create mode 100644 gradle/ant_1_7_0.nix rename gradle_0_0_2.nix => gradle/gradle_0_0_2.nix (69%) create mode 100644 gradle/junit.nix create mode 100644 jdk/dlj-bundle-builder.sh create mode 100644 jdk/jdk6-construct.sh create mode 100644 jdk/jdk6-linux.nix delete mode 100644 junit.nix diff --git a/ant.nix b/ant.nix deleted file mode 100644 index b2f3a59..0000000 --- a/ant.nix +++ /dev/null @@ -1,33 +0,0 @@ -{stdenv, fetchzip, jdk8, junit, breakpointHook}: stdenv.mkDerivation rec { - pname = "ant"; - version = "1.7.0"; - - src = fetchzip { - url = "https://archive.apache.org/dist/ant/source/apache-ant-1.7.0-src.tar.gz"; - hash = "sha256-IFAA0jVdnK5a6ElnPd8K24N4i2XyvlhfPmJlu2wrPgM="; - }; - - #patches = [./mysql.patch]; - - nativeBuildInputs = [jdk8]; - buildInputs = [breakpointHook]; - #buildInputs = [autoreconfHook ncurses breakpointHook]; - #env = { - # ACLOCAL_PATH="${libtool}/share/aclocal"; - # NIX_CFLAGS_COMPILE="-fpermissive"; - #}; - - buildPhase = '' - #cp ${junit}/junit-4.1.jar ./lib/junit.jar - export CLASSPATH="${junit}/junit-4.1.jar" - ./build.sh - #bash ./gradlew build - #bash ./gradlew install -Pgradle_installPath=$out - ''; - - #configureFlags = ["--with-plugins=innobase"]; - - #postInstall = '' - # ln -s $out/libexec/mysqld $out/bin/mysqld - #''; -} diff --git a/gradle/ant.patch b/gradle/ant.patch new file mode 100644 index 0000000..1280ee5 --- /dev/null +++ b/gradle/ant.patch @@ -0,0 +1,24 @@ +diff --git a/build.xml b/build.xml +index bfb55e9..838464c 100644 +--- a/build.xml ++++ b/build.xml +@@ -603,7 +603,8 @@ + deprecation="${deprecation}" + target="${javac.target}" + source="${javac.source}" +- optimize="${optimize}" > ++ optimize="${optimize}" ++ bootclasspath="${bootclasspath}" > + + + +@@ -1406,7 +1407,8 @@ + debug="${debug}" + target="${javac.target}" + source="${javac.source}" +- deprecation="${deprecation}" > ++ deprecation="${deprecation}" ++ bootclasspath="${bootclasspath}" > + + + diff --git a/gradle/ant_1_6_5.nix b/gradle/ant_1_6_5.nix new file mode 100644 index 0000000..31bce6a --- /dev/null +++ b/gradle/ant_1_6_5.nix @@ -0,0 +1,27 @@ +{stdenv, fetchzip, ecj, jamvm_1_5_4, gnu-classpath_98, ant-bootstrap}: stdenv.mkDerivation rec { + pname = "ant"; + version = "1.6.5"; + + src = fetchzip { + url = "https://archive.apache.org/dist/ant/source/apache-ant-1.6.5-src.tar.gz"; + hash = "sha256-UJaFPX3KtFa06B4eDu2ZNMO+GreTtdEYbhGrKr3soUI="; + }; + + patches = [./ant.patch]; + + nativeBuildInputs = [jamvm_1_5_4 ant-bootstrap]; + env = { + JAVA_HOME="${gnu-classpath_98}"; + CLASSPATH="${ecj}/bin/ecj.jar"; + ANT_OPTS="-Dbuild.compiler=org.eclipse.jdt.core.JDTCompilerAdapter -Dbootclasspath=${gnu-classpath_98}/share/classpath/glibj.zip"; + }; + + buildPhase = '' + ant + ''; + + installPhase = '' + mkdir $out + cp -r ./dist/* $out/ + ''; +} diff --git a/gradle/ant_1_7_0.nix b/gradle/ant_1_7_0.nix new file mode 100644 index 0000000..8bfa396 --- /dev/null +++ b/gradle/ant_1_7_0.nix @@ -0,0 +1,25 @@ +{stdenv, fetchzip, jdk6, junit, breakpointHook}: stdenv.mkDerivation rec { + pname = "ant"; + version = "1.7.0"; + + src = fetchzip { + url = "https://archive.apache.org/dist/ant/source/apache-ant-1.7.0-src.tar.gz"; + hash = "sha256-IFAA0jVdnK5a6ElnPd8K24N4i2XyvlhfPmJlu2wrPgM="; + }; + + nativeBuildInputs = [jdk6]; + buildInputs = [breakpointHook]; + env = { + JAVA_HOME="${jdk6}"; + CLASSPATH="${junit}/junit-4.1.jar"; + }; + + buildPhase = '' + ./build.sh + ''; + + installPhase = '' + mkdir $out + cp -r ./dist/* $out/ + ''; +} diff --git a/gradle_0_0_2.nix b/gradle/gradle_0_0_2.nix similarity index 69% rename from gradle_0_0_2.nix rename to gradle/gradle_0_0_2.nix index d1cef42..3193589 100644 --- a/gradle_0_0_2.nix +++ b/gradle/gradle_0_0_2.nix @@ -1,4 +1,4 @@ -{stdenv, fetchFromGitHub, temurin-jre-bin-8, ant}: stdenv.mkDerivation rec { +{stdenv, fetchFromGitHub, jdk6, ant_1_7_0}: stdenv.mkDerivation rec { pname = "gradle"; version = "0.0.2"; @@ -11,15 +11,14 @@ #patches = [./mysql.patch]; - nativeBuildInputs = [temurin-jre-bin-8 ant]; + nativeBuildInputs = [jdk6 ant_1_7_0]; #buildInputs = [autoreconfHook ncurses breakpointHook]; - #env = { - # ACLOCAL_PATH="${libtool}/share/aclocal"; - # NIX_CFLAGS_COMPILE="-fpermissive"; - #}; + env = { + JAVA_HOME="${jdk6}"; + }; buildPhase = '' - ./gradlew + ant #bash ./gradlew build #bash ./gradlew install -Pgradle_installPath=$out ''; diff --git a/gradle/junit.nix b/gradle/junit.nix new file mode 100644 index 0000000..f82cc74 --- /dev/null +++ b/gradle/junit.nix @@ -0,0 +1,25 @@ +{stdenv, fetchFromGitHub, jdk6, ant_1_6_5}: stdenv.mkDerivation rec { + pname = "junit"; + version = "4.0.0"; + + src = fetchFromGitHub { + owner = "junit-team"; + repo = pname; + rev = "5139a1be36da4ed64a860de82e7d74f2e5405037"; + hash = "sha256-ZDu3rQ5y0D7pREmnJjUwiWDbTv+TgJPMZjJ4LVczoLU="; + }; + + nativeBuildInputs = [jdk6 ant_1_6_5]; + env = { + JAVA_HOME="${jdk6}"; + }; + + buildPhase = '' + ant + ''; + + installPhase = '' + mkdir $out + cp -r ./junit4.1/* $out/ + ''; +} diff --git a/jdk/ant_1_6.nix b/jdk/ant_1_6.nix index 6086eed..8ea0b1e 100644 --- a/jdk/ant_1_6.nix +++ b/jdk/ant_1_6.nix @@ -7,8 +7,6 @@ hash = "sha256-UJaFPX3KtFa06B4eDu2ZNMO+GreTtdEYbhGrKr3soUI="; }; - #patches = [./mysql.patch]; - nativeBuildInputs = [gnu-classpath_93 jamvm_1_5_1]; env = { JAVA_HOME="${gnu-classpath_93}"; @@ -18,18 +16,10 @@ buildPhase = '' ./build.sh - #bash ./gradlew build - #bash ./gradlew install -Pgradle_installPath=$out ''; installPhase = '' mkdir $out cp -r ./dist/* $out/ ''; - - #configureFlags = ["--with-plugins=innobase"]; - - #postInstall = '' - # ln -s $out/libexec/mysqld $out/bin/mysqld - #''; } diff --git a/jdk/dlj-bundle-builder.sh b/jdk/dlj-bundle-builder.sh new file mode 100644 index 0000000..459bfce --- /dev/null +++ b/jdk/dlj-bundle-builder.sh @@ -0,0 +1,60 @@ +source $stdenv/setup + +echo "Unpacking distribution" +unzip ${src} || true + +# set the dynamic linker of unpack200, necessary for construct script +echo "patching unpack200" +patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" --set-rpath "" */bin/unpack200 + +echo "constructing JDK and JRE installations" +if test -z "$installjdk"; then + sh ${construct} . tmp-linux-jdk tmp-linux-jre + mkdir -p $out + cp -R tmp-linux-jre/* $out +else + sh ${construct} . $out tmp-linux-jre +fi + +echo "removing files at top level of installation" +for file in $out/* +do + if test -f $file ; then + rm $file + fi +done +rm -rf $out/docs + +# construct the rpath +rpath= +for i in $libraries; do + rpath=$rpath${rpath:+:}$i/lib +done + +if test -z "$installjdk"; then + jrePath=$out +else + jrePath=$out/jre +fi + +if test -n "$jce"; then + unzip $jce + cp -v jce/*.jar $jrePath/lib/security +fi + +rpath=$rpath${rpath:+:}$jrePath/lib/$architecture/jli + +# set all the dynamic linkers +find $out -type f -perm -0100 \ + -exec patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ + --set-rpath "$rpath" {} \; + +find $out -name "*.so" -exec patchelf --set-rpath "$rpath" {} \; + +if test -z "$pluginSupport"; then + rm -f $out/bin/javaws +fi + +mkdir $jrePath/lib/$architecture/plugins +ln -s $jrePath/lib/$architecture/libnpjp2.so $jrePath/lib/$architecture/plugins + diff --git a/jdk/ecj.nix b/jdk/ecj.nix index eb9fff4..59f57fe 100644 --- a/jdk/ecj.nix +++ b/jdk/ecj.nix @@ -1,4 +1,4 @@ -{stdenv, fetchzip, ant_1_6, gnu-classpath_93, jamvm_1_5_1, jikes}: stdenv.mkDerivation rec { +{stdenv, fetchzip, ant-bootstrap, gnu-classpath_93, jamvm_1_5_1, jikes}: stdenv.mkDerivation rec { pname = "ecj"; version = "3.2.1"; #Compiler meldet 3.2.1 bei 3.2.2 source @@ -8,7 +8,7 @@ stripRoot=false; }; - nativeBuildInputs = [ant_1_6 jamvm_1_5_1 jikes]; + nativeBuildInputs = [ant-bootstrap jamvm_1_5_1 jikes]; env = { JAVA_HOME="${gnu-classpath_93}"; diff --git a/jdk/gnu-classpath_98.nix b/jdk/gnu-classpath_98.nix index 5d329f0..88469e9 100644 --- a/jdk/gnu-classpath_98.nix +++ b/jdk/gnu-classpath_98.nix @@ -15,10 +15,10 @@ configureFlags = ["--disable-gtk-peer" "--disable-gconf-peer" "--disable-plugin" "--disable-gjdoc"]; - /*postInstall = '' - mkdir -p $out/jre/lib - ln -s $out/share/classpath/tools.zip $out/lib/tools.jar - ln -s $out/share/classpath/glibj.zip $out/jre/lib/rt.jar + postInstall = '' + #mkdir -p $out/jre/lib + #ln -s $out/share/classpath/tools.zip $out/lib/tools.jar + #ln -s $out/share/classpath/glibj.zip $out/jre/lib/rt.jar cat << 'EOF' > $out/bin/javac #!/bin/bash @@ -32,5 +32,5 @@ EOF exec jamvm "$@" EOF chmod +x $out/bin/java - '';*/ + ''; } diff --git a/jdk/jdk6-bootstrap.nix b/jdk/jdk6-bootstrap.nix index 8a4fcfc..f5dbf56 100644 --- a/jdk/jdk6-bootstrap.nix +++ b/jdk/jdk6-bootstrap.nix @@ -20,7 +20,7 @@ alsa-lib, cups, motif, wget, cpio, fastjar, libxslt, xorg, zlib, libjpeg, libpng xorg.libX11.dev xorg.libXt.dev xorg.libXinerama.dev xorg.libXcomposite.dev xorg.libXrender.dev xorg.libXtst breakpointHook]; env = { - # BUILD_CORBA="false"; + BUILD_CORBA="false"; # BUILD_JAXP="false"; BUILD_JAXWS="false"; # NO_DOCS="true"; @@ -82,7 +82,7 @@ alsa-lib, cups, motif, wget, cpio, fastjar, libxslt, xorg, zlib, libjpeg, libpng # cp -r ./dist/* $out/ #''; - configureFlags = ["--with-ecj" "--with-java=${jamvm}/bin/jamvm" "--with-jdk-home=${gnu-classpath}" "--without-rhino" "--disable-downloading" "--disable-tests" "--enable-nss"]; + configureFlags = ["--with-ecj" "--with-java=${jamvm}/bin/jamvm" "--with-jdk-home=${gnu-classpath}" "--without-rhino" "--disable-downloading" "--disable-tests" "--disable-bootstrap-tools"]; #postInstall = '' # ln -s $out/libexec/mysqld $out/bin/mysqld diff --git a/jdk/jdk6-construct.sh b/jdk/jdk6-construct.sh new file mode 100644 index 0000000..16ee0f5 --- /dev/null +++ b/jdk/jdk6-construct.sh @@ -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/*/db/demo` + if [ ! -d $javahome ]; then + echo "${program}: unbundle directory incorrect: $undir" + echo " expecting $undir/jdk1.5.0_xx" + exit 2 + else + javahome=$(dirname $(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 < $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 < $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 + diff --git a/jdk/jdk6-linux.nix b/jdk/jdk6-linux.nix new file mode 100644 index 0000000..67a65ea --- /dev/null +++ b/jdk/jdk6-linux.nix @@ -0,0 +1,84 @@ +{ swingSupport ? true +, stdenv +, requireFile +, fetchurl +, unzip +, makeWrapper +, xorg ? null +, installjdk ? true +, pluginSupport ? false +, installjce ? false +}: + +assert stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux"; +assert swingSupport -> xorg != null; + +let + + /** + * The JRE libraries are in directories that depend on the CPU. + */ + architecture = + if stdenv.system == "i686-linux" then + "i386" + else if stdenv.system == "x86_64-linux" then + "amd64" + else + abort "jdk requires i686-linux or x86_64 linux"; + + jce = + if installjce then + requireFile { + name = "jce_policy-6.zip"; + url = http://www.oracle.com/technetwork/java/javase/downloads/jce-6-download-429243.html; + sha256 = "0qljzfxbikm8br5k7rkamibp1vkyjrf6blbxpx6hn4k46f62bhnh"; + } + else + null; +in + +stdenv.mkDerivation { + name = + if installjdk then "jdk-1.6.0_45b06" else "jre-1.6.0_45b06"; + + src = + if stdenv.system == "i686-linux" then + requireFile { + name = "jdk-6u45-linux-i586.bin"; + url = http://www.oracle.com/technetwork/java/javase/downloads/jdk6downloads-1902814.html; + sha256 = "0mx3d2qlal5zyz1a7ld1yk2rs8pf9sjxs2jzasais3nq30jmlfym"; + } + else if stdenv.system == "x86_64-linux" then + fetchurl { + url = "https://files.befatorinc.de/api/public/dl/JXObGHCx"; + sha256 = "1s0j1pdr6y8c816d9i86rx4zp12nbhmas1rxksp0r53cn7m3ljbb"; + } + else + abort "jdk requires i686-linux or x86_64 linux"; + + 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 jdk6. + */ + construct = ./jdk6-construct.sh; + inherit installjdk; + + buildInputs = [unzip makeWrapper]; + + /** + * libXt is only needed on amd64 + */ + libraries = + [stdenv.cc.libc] ++ + (if swingSupport then [xorg.libX11 xorg.libXext xorg.libXtst xorg.libXi xorg.libXp xorg.libXt] else []); + + inherit swingSupport pluginSupport architecture jce; + inherit (xorg) libX11; + + mozillaPlugin = if installjdk then "/jre/lib/${architecture}/plugins" else "/lib/${architecture}/plugins"; + + #meta.license = lib.licenses.unfree; +} diff --git a/junit.nix b/junit.nix deleted file mode 100644 index d439264..0000000 --- a/junit.nix +++ /dev/null @@ -1,36 +0,0 @@ -{stdenv, fetchFromGitHub, jdk6, ant_1_6}: stdenv.mkDerivation rec { - pname = "junit"; - version = "4.0.0"; - - src = fetchFromGitHub { - owner = "junit-team"; - repo = pname; - rev = "5139a1be36da4ed64a860de82e7d74f2e5405037"; - hash = "sha256-ZDu3rQ5y0D7pREmnJjUwiWDbTv+TgJPMZjJ4LVczoLU="; - }; - - patches = [./junit.patch]; - - nativeBuildInputs = [jdk6 ant_1_6]; - #env = { - # ACLOCAL_PATH="${libtool}/share/aclocal"; - # NIX_CFLAGS_COMPILE="-fpermissive"; - #}; - - buildPhase = '' - ant - #bash ./gradlew build - #bash ./gradlew install -Pgradle_installPath=$out - ''; - - installPhase = '' - mkdir $out - cp -r ./junit4.1/* $out/ - ''; - - #configureFlags = ["--with-plugins=innobase"]; - - #postInstall = '' - # ln -s $out/libexec/mysqld $out/bin/mysqld - #''; -} diff --git a/overlay.nix b/overlay.nix index d650e6f..3d2773f 100644 --- a/overlay.nix +++ b/overlay.nix @@ -139,18 +139,21 @@ bommels = pkgs.lib.makeScope pkgs.newScope (self: rec { jikes = self.callPackage ./jdk/jikes.nix { }; gnu-classpath_93 = self.callPackage ./jdk/gnu-classpath_93.nix { inherit jikes; }; jamvm_1_5_1 = self.callPackage ./jdk/jamvm_1_5_1.nix { inherit gnu-classpath_93; }; - ant_1_6 = self.callPackage ./jdk/ant_1_6.nix { inherit gnu-classpath_93 jamvm_1_5_1; }; - ecj = self.callPackage ./jdk/ecj.nix { inherit ant_1_6 gnu-classpath_93 jamvm_1_5_1 jikes; }; - xalan = self.callPackage ./jdk/xalan.nix { inherit ant_1_6 gnu-classpath_93 jamvm_1_5_1 ecj; }; - xerces = self.callPackage ./jdk/xerces.nix { inherit ant_1_6 gnu-classpath_93 jamvm_1_5_1 ecj; }; + ant-bootstrap = self.callPackage ./jdk/ant_1_6.nix { inherit gnu-classpath_93 jamvm_1_5_1; }; + ecj = self.callPackage ./jdk/ecj.nix { inherit ant-bootstrap gnu-classpath_93 jamvm_1_5_1 jikes; }; + #xalan = self.callPackage ./jdk/xalan.nix { inherit ant_1_6 gnu-classpath_93 jamvm_1_5_1 ecj; }; + #xerces = self.callPackage ./jdk/xerces.nix { inherit ant_1_6 gnu-classpath_93 jamvm_1_5_1 ecj; }; gnu-classpath_98 = self.callPackage ./jdk/gnu-classpath_98.nix { inherit ecj jamvm_1_5_1; }; jamvm_1_5_4 = self.callPackage ./jdk/jamvm_1_5_4.nix { inherit gnu-classpath_98; }; - gnu-classpath = self.callPackage ./jdk/gnu-classpath.nix { inherit autoreconfHook ecj jamvm_1_5_4 gnu-classpath_98; }; - jamvm = self.callPackage ./jdk/jamvm.nix { inherit gnu-classpath xerces autoreconfHook; }; - jdk6 = self.callPackage ./jdk/jdk6-bootstrap.nix { inherit ant_1_6 gnu-classpath jamvm; }; - junit = self.callPackage ./junit.nix { inherit ant_1_6 jdk6; }; - ant = self.callPackage ./ant.nix { inherit junit; }; - gradle_0_0_2 = self.callPackage ./gradle_0_0_2.nix { inherit ant; }; + #gnu-classpath = self.callPackage ./jdk/gnu-classpath.nix { inherit autoreconfHook ecj jamvm_1_5_4 gnu-classpath_98; }; + #jamvm = self.callPackage ./jdk/jamvm.nix { inherit gnu-classpath xerces autoreconfHook; }; + #jdk6 = self.callPackage ./jdk/jdk6-bootstrap.nix { inherit ant_1_6 gnu-classpath jamvm; }; + jdk6 = self.callPackage ./jdk/jdk6-linux.nix { }; + + ant_1_6_5 = self.callPackage ./gradle/ant_1_6_5.nix { inherit ecj jamvm_1_5_4 gnu-classpath_98 ant-bootstrap; }; + junit = self.callPackage ./gradle/junit.nix { inherit ant_1_6_5 jdk6; }; + ant_1_7_0 = self.callPackage ./gradle/ant_1_7_0.nix { inherit jdk6 junit; }; + gradle_0_0_2 = self.callPackage ./gradle/gradle_0_0_2.nix { inherit jdk6 ant_1_7_0; }; gradle = self.callPackage ./gradle.nix { inherit gradle_0_0_2; }; elasticsearch-service = self.callPackage ./elasticsearch-service.nix { inherit gradle; };