java/jdk14, BUILD_DEPENDS, and portmanager -u

Ian D. Leroux ian_leroux at fastmail.fm
Sun Nov 6 14:10:56 PST 2005


I have a native build of jdk14 (jdk-1.4.2p7_2) installed on my system,
and so far whenever that port has needed upgrading it's been able to use
the existing jdk to build the new one (I deinstalled linux-sun-jdk some
time ago).  While running portmanager -u today I noticed it trying to
upgrade the jdk on the grounds that it has an out-of-date dependency on
linux-sun-jdk (which is "missing").  Sure enough:

> cd /usr/ports/java/jdk14 && make -V BUILD_DEPENDS
[snip]
/usr/local/jdk1.4.2/bin/javac:/usr/ports/java/linux-sun-jdk14
[snip]

This is presumably because of the line:

BUILD_DEPENDS+= ${JDK14DIR}/bin/javac:${PORTSDIR}/java/linux-sun-jdk14

I can see why this is so: if there is no jdk14 installed the correct
thing to do is bootstrap from the linux version.  On the other hand,
/usr/local/jdk1.4.2/bin/javac was installed by the native, not the linux
build, the linux build is not needed to (re)build jdk14, and the linux
build is irrelevant to determining whether or not jdk14 is up-to-date
(unlike, say, a build dependency on a library).  The net result is that
portmanager will refuse to update anything that depends on java until
linux-sun-jdk gets installed.  I find it odd that this has never bitten
me before, btw.  Have there been any recent relevant changes?

I'm not sure whether this is problem with the makefile, with
portmanager, or with my understanding, so I'm asking here before filing
a PR (please redirect me to the appropriate forum if this is OT).

Ian Leroux


More information about the freebsd-ports mailing list