guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH]: Add Ant.


From: Ludovic Courtès
Subject: Re: [PATCH]: Add Ant.
Date: Sat, 07 Feb 2015 23:55:49 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.4 (gnu/linux)

Ricardo Wurmus <address@hidden> 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 <address@hidden>
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’.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]