apacheAntGcj: Remove

No need to keep two different versions of Ant around.  The default Ant
works fine with GCJ (and doesn't pull in OpenJDK).
This commit is contained in:
Eelco Dolstra 2014-01-09 13:06:51 +01:00
parent 16e626a80d
commit 113265b6d3
4 changed files with 22 additions and 114 deletions

View file

@ -81,6 +81,28 @@ stdenv.mkDerivation {
meta = {
homepage = http://ant.apache.org/;
description = "A Java-based build tool";
longDescription = ''
Apache Ant is a Java-based build tool. In theory, it is kind of like
Make, but without Make's wrinkles.
Why another build tool when there is already make, gnumake, nmake, jam,
and others? Because all those tools have limitations that Ant's
original author couldn't live with when developing software across
multiple platforms. Make-like tools are inherently shell-based -- they
evaluate a set of dependencies, then execute commands not unlike what
you would issue in a shell. This means that you can easily extend
these tools by using or writing any program for the OS that you are
working on. However, this also means that you limit yourself to the
OS, or at least the OS type such as Unix, that you are working on.
Ant is different. Instead of a model where it is extended with
shell-based commands, Ant is extended using Java classes. Instead of
writing shell commands, the configuration files are XML-based, calling
out a target tree where various tasks get executed. Each task is run
by an object that implements a particular Task interface.
'';
license = stdenv.lib.licenses.asl20;
maintainers = [ stdenv.lib.maintainers.eelco ];
platforms = stdenv.lib.platforms.all;

View file

@ -1,90 +0,0 @@
{ stdenv, fetchurl, gcj, junit }:
let version = "1.7.1"; in
/* TODO: Once we have Icedtea, use this Nix expression to build Ant with
Sun's javac. */
stdenv.mkDerivation {
name = "ant-gcj-${version}";
src = fetchurl {
url = "mirror://apache/ant/source/apache-ant-${version}-src.tar.bz2";
sha256 = "19pvqvgkxgpgsqm4lvbki5sm0z84kxmykdqicvfad47gc1r9mi2d";
};
patches = [ ./use-gcj.patch ];
buildInputs = [ gcj junit ];
configurePhase = ''
mkdir -p "tool-aliases/bin"
cd "tool-aliases/bin"
cat > javac <<EOF
#!/bin/sh
opts="-C"
echo 'running \`gcj '"\$opts \$@'..."
exec "$(type -P gcj)" \$opts \$@
EOF
chmod +x javac
ln -sv $(type -P gij) java
export PATH="$PWD:$PATH"
cd ../..
export JAVA_HOME="$PWD/tool-aliases"
# Make JUnit visible.
export CLASSPATH="$(find ${junit} -name \*.jar -printf "%p:")"
'';
# Note: We don't build the javadoc.
buildPhase = ''
mkdir -p "$out"
./build.sh -Dant.install="$out" install-lite
'';
installPhase = ''
# Actually, everything is already installed at this point, so we just
# rearrange a few things.
rm -v "$out/bin/"*.bat
mkdir -p "$out/lib/java"
mv -v "$out/lib/"*.jar "$out/lib/java"
sed -i "$out/bin/ant" \
-e "s|^ANT_LIB=.*$|ANT_LIB=$out/lib/java|g ;
s|JAVACMD=java.*$|JAVACMD=${gcj}/lib/jvm/bin/java|g ;
/^ant_exec_command/i export ANT_HOME=$out"
'';
meta = {
description = "Java-based build tool";
longDescription = ''
Apache Ant is a Java-based build tool. In theory, it is kind of like
Make, but without Make's wrinkles.
Why another build tool when there is already make, gnumake, nmake, jam,
and others? Because all those tools have limitations that Ant's
original author couldn't live with when developing software across
multiple platforms. Make-like tools are inherently shell-based -- they
evaluate a set of dependencies, then execute commands not unlike what
you would issue in a shell. This means that you can easily extend
these tools by using or writing any program for the OS that you are
working on. However, this also means that you limit yourself to the
OS, or at least the OS type such as Unix, that you are working on.
Ant is different. Instead of a model where it is extended with
shell-based commands, Ant is extended using Java classes. Instead of
writing shell commands, the configuration files are XML-based, calling
out a target tree where various tasks get executed. Each task is run
by an object that implements a particular Task interface.
'';
homepage = http://ant.apache.org/;
license = "APLv2";
maintainers = [ ];
platforms = stdenv.lib.platforms.gnu; # arbitrary choice
};
}

View file

@ -1,18 +0,0 @@
Setting `java.compiler' or `build.compiler' in `build.properties' isn't enough.
--- apache-ant-1.7.1/build.xml 2008-06-27 07:05:23.000000000 +0200
+++ apache-ant-1.7.1/build.xml 2009-09-24 15:10:53.000000000 +0200
@@ -578,12 +578,7 @@
classname="com.jcraft.jsch.Session"
classpathref="classpath"/>
- <condition property="build.compiler" value="classic">
- <not>
- <isset property="jdk1.3+"/>
- </not>
- </condition>
- <property name="build.compiler" value="modern"/>
+ <property name="build.compiler" value="gcj"/>
<!--check for XSD support in the parser-->
<condition property="xmlschema.present">

View file

@ -3444,11 +3444,6 @@ let
apacheAnt = callPackage ../development/tools/build-managers/apache-ant { };
apacheAntGcj = callPackage ../development/tools/build-managers/apache-ant/from-source.nix {
# must be either pre-built or built with GCJ *alone*
gcj = gcj.gcc; # use the raw GCJ, which has ${gcj}/lib/jvm
};
astyle = callPackage ../development/tools/misc/astyle { };
autobuild = callPackage ../development/tools/misc/autobuild { };
@ -5558,7 +5553,6 @@ let
redland = pkgs.librdf_redland;
rhino = callPackage ../development/libraries/java/rhino {
ant = apacheAntGcj;
javac = gcj;
jvm = gcj;
};