Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 9 Apr 2004 08:37:46 +0200
From:      Herve Quiroz <herve.quiroz@esil.univ-mrs.fr>
To:        freebsd-java@freebsd.org
Subject:   Re: Why are we building 100% java projects...
Message-ID:  <20040409063746.GA43513@arabica.esil.univ-mrs.fr>
In-Reply-To: <1081472169.332.8.camel@fast.mmercer.com>
References:  <1081471971.332.5.camel@fast.mmercer.com> <1081472169.332.8.camel@fast.mmercer.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Michael,

That's a interesting issue, that has already been discussed on this list
many times. The last time I was the originator of such a question:

http://lists.freebsd.org/pipermail/freebsd-java/2003-November/001098.html

Actually I agree with you in the sense of Java is build once, run
anywhere. So why not installing/using provided JARs ? But then binary
ports exists: they are called packages... ;)

Anyway, I recently tried to port/fix some stuff that poses a lot of
problems when built from source, such as Jakarta Commons Logging.
Indeed, if you build commons-logging with JDK1.4, it will build (and
pack in the JAR) JDK 1.4 Logging API support, and the same goes for
LOG4J and Avalon LogKit. But then if you build it with JDK 1.3, then
install JDK 1.4, your users would expect to have JDK 1.4 support
(reading from the Jakarta website, they would consider support for 1.4
is there as they are actually using JDK 1.4), which is not the case.

For this particular port, I sent a PR some time ago, using the OPTIONS
(WITH_*/WITHOUT_* knobs) macros to enforce dependencies installlation as
well. I also suggested using some kind of PKGNAME_SUFFIX to let users
know about which support is installed. But that's quite a pain to
port/fix/manage/use so I don't know if it's worth it actually.

Anyway, my position here is quite questionable, as I initally advocated
for source port but mostly maintain binary ones (trove4j,
commons-primitives, jakarta-log4j...).

Regardless, what I really don't like with binary ports is that they are
usually packed with all JARs (even Ant and JUnit sometimes) which means
the distfiles get bigger while we have the JAR dependencies available
and installed via the ports system anyway. But that's also a much
debated issue on this list: should each Java library or application be
installed as a self-contained package (that is with all needed JARs) or
use the ports system to get required JARs installed ?

On this particular issue, someone recently posted a message on this list
about a project to unify Java library release/packaging methods. I'm am
too lazy at the moment to provide the link but I am sure you will find
it the archives easily.

Back to the source/binary issue: people have different opinions on the
subject but most of us think that the most important point  would be to
have a common way of dealing with Java ports. Furthermore, as we are
planning to update (actually fill as it's empty ATM) the Java section of
the porter's handbook, maybe it's time to discuss this (again) and
decide something.

Herve

On Thu, Apr 08, 2004 at 08:56:09PM -0400, Michael E. Mercer wrote:
> After reading my own post, let me further explain...
> 
> There are a number of projects at Jakarta.apache.org that are part of
> freebsd ports. They are 100% Java.
> Why build them from scratch when all you need to do is install the
> binary.
> 
> Build once, run anywhere... ring a bell?
> 
> later
> Michael



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040409063746.GA43513>