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

Re: ant dependency on jython and antlr



Hallo Daniel,

* Daniel Bonniot wrote:
>Since version 1.5.3-2, the package ant depends on jython and antlr. The 
>justification was:
>* Depend on the previously suggested packages jython and antlr to avoid
>    dangling symlinks in /usr/share/ant/lib
[...Policy...]
>It seems pretty clear that ant does not *depend* on jython or antlr, 
>since those are not required for ant to "provide a significant amount of 
>functionality." The Suggests was probably right.

There is a problem with all this: The ant package has one big jar for
all available tasks (the optional.jar has all the 'Task's, the
junit, jython and so are only called from that task definitions). This
means that if any package wants to use a task in its build, it will
Build-Depends: on ant and will think that it works. In the current
setup, it will. With your setup, all packages, which will use a
additional task need to Build-Depends: on junit, jython or whatever.

>the link in the jython and antlr packages, respectively. They should 
>probably suggest ant, too.

They have nothing to do with ant. Only the tasks in optional.jar does
include some glue to make them useable from ant. Jython knows nothing
about ant, Same with junit and so on. What you suggests is  'could be
used from make programms' Suggests: make.

>Note that this is what the eclipse-javac package does: it includes the 
>ant link:
[...]
>Eclipse-javac should additionally at least suggest ant, I think.

I'm not sure about this. I put the jars into that dir as it provides
'JavaCompilerAdapter', which can be used with the build.compiler
property. The main functionality is actually in /usr/bin/jdtc.

>Does everybody agree? Should this be made part of the Java policy? Here 
>is my proposal:
> "If a package provides ant tasks, it should include a symlink from 
>/usr/share/ant/lib/<package-name><suffix>.jar to the jar file including 
>the task. It should also at least suggest the package ant."

This is already done: ant dows provide all tasks in optional.jar and
IMO, it shouldn't Suggests: ant :)

IMO the proper sollution for this is to split the optional.jar into
bits and include one task per jar (or groups them). This packages
would then Depends: on each underlying programm/library/whatever. This
will at least happen with each additional task. Unfortunatelly this
will not be possible, because one task is probably 'encoded' in one
class file and James will not let us have that small packages :)

Please note, that the gentoo guys (gentoo-java ML) currently discuss
the same problem: They have the problem that ant requires all
underlying programm/library/whatever be available at buildtime.

Jan
-- 
Jan Schulz                     jasc@gmx.net
     "Wer nicht fragt, bleibt dumm."



Reply to: