Opened 20 years ago

Closed 20 years ago

Last modified 20 years ago

#2279 closed defect (fixed)

UPDATE: apache-ant 1.6.2

Reported by: james@… Owned by: sean@…
Priority: Normal Milestone:
Component: ports Version: 1.0
Keywords: Cc: sean@…
Port:

Description

apache-ant 1.6.2

Portfile diffs are attached.

Apache Ant as built from source by the current Portfile has a big problem: support for all of the Ant tasks is missing. The lib directory contains .jar files for each of these, but they are all blank, containing only a MANEFEST. This is due to the problem of bootstrapping and circular dependencies. Ant is required to build most Java projects, and so can't have dependencies back to them. Yet the Ant built without these dependencies is not fully functionally, and will fail to build some common projects.

The Ant build file looks for dependencies and disables parts of itself during build. Since these dependencies are very likely missing during a built of ant (due to the bootstrapping issues mentioned above), Ant ends up being built with a good part of its functionality turned off. This is the case with the ant tasks in the lib directory.

(If you don't believe me, compare results of "/opt/local/bin/ant +diagnostics", with "/usr/bin/ant +diagnostics", particularly the output about ant tasks).

I propose to fix this problem by building Ant from the binary (jar) distribution by default. The attached Portfile makes this change, leaving the source build as an optional variant. Please note that this is not as bad as it sounds: since ant is just java with a startup script, there is no native code to be compiled anyway.

An alternative would be to build ant from source, and then additionally steal and install large parts of it (all the jars in the lib directory except "ant.jar") from the binary distribution. But that seems rather pointless, doesn't it, as most of the small benefit to be gained by building from source has then been tossed out the window. I say if we're going to use huge chunks of the binary distribution anyway, let's use the whole thing. If a user is so intent on making build-time configuration changes that they need the source distribution, they'll have to work through the issues of doing a multi-stage bootstrap using the source variant.

Attachments (1)

Portfile.diff (2.9 KB) - added by james@… 20 years ago.
Patch to Portfile

Download all attachments as: .zip

Change History (4)

Changed 20 years ago by james@…

Attachment: Portfile.diff added

Patch to Portfile

comment:1 Changed 20 years ago by james@…

blocked: 2280

comment:2 Changed 20 years ago by mww@…

Owner: changed from darwinports-bugs@… to sean@…

assign to maintainer;

comment:3 Changed 20 years ago by mww@…

Resolution: fixed
Status: newclosed

commited - (w/o ok from sean@… due to timeout);

Note: See TracTickets for help on using tickets.