java/jdk14, BUILD_DEPENDS, and portmanager -u

Michael C. Shultz ringworm01 at
Sun Nov 6 15:05:29 PST 2005

On Sunday 06 November 2005 14:10, Ian D. Leroux wrote:
> 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

portmanager just went through a major change with version 0.3.2,

If I understand your post correctly there might be a bug in portmanager,
here is how it "should work":

if a port has an out of date RUN_DEPENDS LIB_DEPENDS or DEPENDS
then it gets picked for rebuilding, but is'nt actually built until
FETCH_DEPENDS and all of the run depends are up to date.

Please try 

cd /usr/ports/java/jdk14 && make -V RUN_DEPENDS -V LIB_DEPENDS -V DEPENDS

If any of those are out of date then that is probably the real reason why 
jdk14 is being updated and this is just a reporting problem.

For the bad news though, if linux-sun-jdk is a BUILD_DEPENDS then portmanager 
is going to expect it to be installed before building java/jdk14.  If there 
is another way to build that port the proper place to fix this problem is in
that port's Makefile. Maybe by making the BUILD_DEPEND contitional
on the existanace of its own existing JDK?


> [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
> _______________________________________________
> freebsd-ports at mailing list
> To unsubscribe, send any mail to "freebsd-ports-unsubscribe at"

More information about the freebsd-ports mailing list