Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 19 Nov 2001 14:17:27 +0100
From:      Ernst de Haan <znerd@freebsd.org>
To:        John Merryweather Cooper <john_m_cooper@yahoo.com>
Cc:        freebsd-java@freebsd.org, freebsd-ports@freebsd.org
Subject:   Re: A Modest Proposal for Java(tm) dependency selection among ports
Message-ID:  <200111191317.fAJDHRi12634@zaphod.euronet.nl>
In-Reply-To: <20011116084005.A40560@johncoop.MSHOME>
References:  <20011115130202.E33074@johncoop.MSHOME> <200111161042.fAGAg8V55897@zaphod.euronet.nl> <20011116084005.A40560@johncoop.MSHOME>

next in thread | previous in thread | raw e-mail | index | archive | help
John and all,


I'm setting up a web page which contains the complete proposal (work in 
progress!) see:

* http://www.metaverse.nl/~ernst/freebsd-java-proposal-20011116.html

> My thought here is that a "black box" application, where the user could
> care less if it's Java(tm) under the hood, is a very good candidate for
> a JRE, but the nature of development tools is that they need a JDK
> (debugging sucks without a debugger, etc.)

Agreed, development tools need the JDK, but we are not going to set up a 
system for just Java-based development tools, but a generic system for all 
Java applications, *including* development tools. The focus should be on a 
clean generic system for Java-based programs.

Suggestion: First phase will just be applications, and it should cover the 
most common needs. It should separate all current Java-based applications 
from the actual JDK used. Second (or later) phase will then look at 
requirements for libraries and at more specific needs, like a Linux JDK 
instead of a FreeBSD JDK. IMHO support for this feature should be delayed so 
we can discuss it a bit more first, and it's not necessary to cover 90% of 
the applications.

> In my experience (yours may be different), the dividing line for most
> apps is whether they work better (or at all) with a Java or Java2
> JRE/JDK.  I've yet to find an app/tool that whines too much about the
> many variations of Java2 (1.2.x and up), but many are unhappy with
> first generation Java (1.1.8 and before)--and vice versa.  Hence,
> following IBM's breakdown--call one set JAVA11 and the other set
> JAVA2.  Getting more fine-grained than necessary leads back to the
> current situation--where I effectively have ALL the JDK's installed.
> In reality, two should cover most of the known world.  People who
> simply must have every JDK can still install them.  :)

Well, this is just a matter of time. I already know tools that are explicitly 
demanding Java 1.3, at least on FreeBSD. An example is BugSeeker from 
Karmira(java/bugseeker and java/bugseeker-demo). Again, I would like to set 
this system up to be generic, I don't want to introduce quirks. *If* we are 
going to want to distinguish between 1.2, 1.3, 1.4, 1.5, 2.0 etc in the 
future, then we should set the system up so that it will be able to deal with 
it when this is reality.

> My thought here is that a single JDK versus JRE switch can be used to
> influence the version selection mechanism--and avoid proliferating
> switches unnecessarily.

Yeah, sounds good to me. I modified my proposal for this.

> > > WANT_LINUX_JAVA=[yes|no]
> > > 			same as above except Linux version Java's
> > > 			are used and USE_JAVA11 will abort build.
> >
> > I suggest not introducing this flag in the first phase. We can discuss
> > it's
> > usefullness later.
>
> I can definitely understand why!  But, practically, a user who wants
> Java(tm) only/mostly for her favorite Linux application--Star Office is
> an example--wants a JRE/JDK that works (I can almost get Star Office to
> do Java with a Linux JDK--no dice (probably because there's no emulator
> support) for a native JDK).  Of course, the solution is native versions
> of BOTH the JDK/JRE and the application.  At the glacial rate this is
> happening with Sun, some of us may need to chain themselves to the
> front doors of their main office and chant "Free BSD" until the
> powers-that-be allow native binaries . . . (rant off--sorry)

Are there any examples of programs in the tree that explicitly demand a Linux 
JDK because they cannot work with a FreeBSD JDK? I don't think so, and I hope 
not, either. I still doubt the importance of this feature for now.

> > > JAVA_VER		reports Java(tm) detected or built by
> > > 			USE_JAVA*
> >
> > Hmm, what *exactly* would you like this variable to return as its
> > value?
>
> CLASSPATH and/or environment variable construction for an install-user
> script on the Makefiles.  For example, a whole host of environment
> variables need to be correctly set for my NetRexx port to function.  If
> they're not set correctly, the port acts like it is broken.  But unless
> I get really tyrannical (YOU user SHALL have the following ports
> installed and NO OTHERS . . .) it's not practical to construct such a
> script.  NetRexx will run with ANY of the JDK's.  But which one to
> setup?  That is the problem.  If I know:  1) whether or not it is linux
> based on the WANT_LINUX_JAVA flag; and 2) what JAVA_VER it is (1.1.8,
> 1.2.2, etc.), I can construct the necessary environment variables.  In
> fact, for Java2 (if I know Java2 is the target), I can install my JAR
> file in the EXT portion of the JDK tree and eliminate setting/changing
> the CLASSPATH (same also with JGNAT).  But I don't know, so I can't.

Yeah, I was keeping this in mind. See my proposal.

--
Ernst
zNerd@freebsd.org

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-ports" in the body of the message




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