Ricardo Wurmus <ricardo.wur...@mdc-berlin.de> skribis: >>> * to use Ant without problems ANT_HOME and JAVA_HOME really should be >>> set appropriately (ANT_HOME to $out of the ant-minimal package, >>> JAVA_HOME to $out of icedtea6). Should I suggest these two paths as >>> search paths by adding something like this to ant-minimal (for >>> ANT_HOME) and icedtea6 (for JAVA_HOME)? >>> >>> (native-search-paths >>> (list (search-path-specification >>> (variable "ANT_HOME") >>> (files '("."))))) >> >> Since Ant is generally used via the ‘ant’ command (AIUI), what about >> wrapping that command so that ANT_HOME and JAVA_HOME are set >> appropriately? > > According to the docs[1], > > "ANT_HOME is used by the launcher script for finding the > libraries. JAVA_HOME is used by the launcher for finding the > JDK/JRE to use." > > So, it would indeed make sense to modify the "launcher script" > (whichever this is, probably "ant") to set ANT_HOME before continuing. > I'm not a Java person, though, so I don't know if this is considered > bad.
I think this would be fine. > JAVA_HOME, however, probably should not be set. After all, Ant works > with different JDK/JRE versions, not only IcedTea 6. Right. > I even wonder if we should make icedtea6 a build-time input only to > compile the libraries, so that one would not need to have icedtea6 > installed at all. Or should there be multiple variants of Java packages > akin to what we do with Python modules? I must admit that I find this > rather confusing. How closely do we have to tie Java applications / > libraries to a particular version of the JDK? Are there any insights > you could share about how it's done in Nix? This commit from Nixpkgs gives some insight: commit 54d172141435d61813666ccb6dbfe8a58a9ce896 Author: Eelco Dolstra <eelco.dols...@logicblox.com> Date: Fri Jan 3 13:29:06 2014 +0100 ant: Update to 1.9.3 Also, Ant no longer has a build-time dependency on a particular JDK. It finds the JDK via $JAVA_HOME or $PATH (by looking up javac). This way, we don't need to have separate packages like apacheAntOpenJDK and apacheAntOracleJDK. It also seems reasonable: after all, installing GNU Make doesn't give you a C compiler either. It does mean that instead of buildInputs = [ ant ]; you now need to write something like buildInputs = [ ant jdk ]; However, the Nixpkgs does not actually build Ant; it just reuses pre-built binaries, which may not be what we want. Also, it produces its own ‘ant’ launcher script: https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/tools/build-managers/apache-ant/default.nix HTH, Ludo’.