diff --git a/pkgs/by-name/ap/apacheAnt/package.nix b/pkgs/by-name/ap/apacheAnt/package.nix
index 785a518edd3b11..338ae22b49f007 100644
--- a/pkgs/by-name/ap/apacheAnt/package.nix
+++ b/pkgs/by-name/ap/apacheAnt/package.nix
@@ -1,10 +1,12 @@
-{ fetchurl, lib, stdenv, coreutils, makeWrapper, gitUpdater }:
+{ fetchurl, lib, stdenv, jre, coreutils, makeWrapper, gitUpdater }:
stdenv.mkDerivation rec {
pname = "ant";
version = "1.10.15";
- nativeBuildInputs = [ makeWrapper ];
+ nativeBuildInputs = [ ];
+
+ buildInputs = [ jre ];
src = fetchurl {
url = "mirror://apache/ant/binaries/apache-ant-${version}-bin.tar.bz2";
@@ -16,66 +18,29 @@ stdenv.mkDerivation rec {
sha256 = "1l8say86bz9gxp4yy777z7nm4j6m905pg342li1aphc14p5grvwn";
};
+ postPatch = ''
+ # Hard-code immutable paths
+ substituteInPlace bin/ant \
+ --replace-fail '$JAVA_HOME' '${jre.home}' \
+ --replace-fail '$ANT_HOME' "$out/lib/ant" \
+ --replace-fail '$ANT_LIB' "$out/lib/ant/lib" \
+ --replace-fail '$CLASSPATH' "$out/lib/ant/lib"
+ '';
+
installPhase =
''
- mkdir -p $out/bin $out/lib/ant
+ mkdir -p $out/lib/ant
mv * $out/lib/ant/
# Get rid of the manual (35 MiB). Maybe we should put this in a
- # separate output. Keep the antRun script since it's vanilla sh
- # and needed for the task (but since we set ANT_HOME to
- # a weird value, we have to move antRun to a weird location).
- # Get rid of the other Ant scripts since we provide our own.
- mv $out/lib/ant/bin/antRun $out/bin/
- rm -rf $out/lib/ant/{manual,bin,WHATSNEW}
- mkdir $out/lib/ant/bin
- mv $out/bin/antRun $out/lib/ant/bin/
+ # separate output.
+ rm -rf $out/lib/ant/{manual,WHATSNEW}
+
+ ln -s $out/lib/ant/bin $out
# Install ant-contrib.
unpackFile $contrib
cp -p ant-contrib/ant-contrib-*.jar $out/lib/ant/lib/
-
- cat >> $out/bin/ant <&2
- exit 1
- fi
- fi
-
- if [ -z \$NIX_JVM ]; then
- if [ -e \$JAVA_HOME/bin/java ]; then
- NIX_JVM=\$JAVA_HOME/bin/java
- elif [ -e \$JAVA_HOME/bin/gij ]; then
- NIX_JVM=\$JAVA_HOME/bin/gij
- else
- NIX_JVM=java
- fi
- fi
-
- LOCALCLASSPATH="\$ANT_HOME/lib/ant-launcher.jar\''${LOCALCLASSPATH:+:}\$LOCALCLASSPATH"
-
- exec \$NIX_JVM \$NIX_ANT_OPTS \$ANT_OPTS -classpath "\$LOCALCLASSPATH" \
- -Dant.home=\$ANT_HOME -Dant.library.dir="\$ANT_LIB" \
- org.apache.tools.ant.launch.Launcher \$NIX_ANT_ARGS \$ANT_ARGS \
- -cp "\$CLASSPATH" "\$@"
- EOF
-
- chmod +x $out/bin/ant
''; # */
passthru = {