Subject: Re: HEADS UP: Package removal candidates
To: Jim Wise <jwise@draga.com>
From: Thomas Klausner <wiz@NetBSD.org>
List: tech-pkg
Date: 12/06/2005 20:38:42
On Tue, Dec 06, 2005 at 02:21:07PM -0500, Jim Wise wrote:
> This would be a perfectly reasonable contract change, were it what were 
> implemented -- heck, it's the contract which _is_ documented in the 
> sample mk.conf we provide (and have provided for years):
> 
>   #JAVA_HOME=
>   # Location of jvm to be used by pkgsrc.  Java-based packages will be installed
>   # in ${LOCALBASE}/lib/java, so that they are available to all jvms.
>   # 
>   # Possible: any directory
>   # Default: home of JVM chosen by ${PKG_JVM}

I'll remove this shortly -- it hasn't been true for years now (java-vm.mk
was committed before 2003). Setting the JAVA_HOME variable is not enough
for pkgsrc to do proper dependency handling.

> With the advent of java-vm.mk, however, the documented contract has been 
> broken:  JAVA_HOME is _not_ being defaulted, as advertised, to the `home 
> of JVM chosen by ${PKG_JVM}'.  It is being left unset, and package 
> authors who depend on the advertised contract are being told to hack 
> around this breakage in each and every package Makefile which depends on 
> pkgsrc's java support working as advertised.

Actually, it is set: I cited the part from java-vm.mk in my previous mail,
here it is again:
ALL_ENV+=               JAVA_HOME=${PKG_JAVA_HOME}

Where else would you want it set?
Setting it as a Makefile variable won't help, since the Makefile
variables are not passed down to the builds en-bloc.

> Why this would be considered as breakage of the _packages_ involved, 
> especially since the breakage does not occur for people with a java 
> development environment correctly configured for use of java outside of 
> pkgsrc, is beyond me.

If you take offense with the word 'broken', I apologize.
However, I still think that the packages need changing to follow pkgsrc
conventions.
 Thomas