java/jdk14, BUILD_DEPENDS, and portmanager -u

Michael C. Shultz ringworm01 at gmail.com
Sun Nov 6 16:49:08 PST 2005


On Sunday 06 November 2005 16:19, Sam Lawrance wrote:
> On 07/11/2005, at 11:02 AM, Michael C. Shultz wrote:
> > On Sunday 06 November 2005 15:49, Sam Lawrance wrote:
> >> On 07/11/2005, at 9:56 AM, Michael C. Shultz wrote:
> >>> 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
> >>> all of the port's BUILD_DEPENDS EXTRACT_DEPENDS PATCH_DEPENDS
> >>> 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?
> >>
> >> You cannot have circular dependencies in the ports tree.
> >>
> >> I think the real problem is that portmanager is looking specifically
> >> for the existence of the linux-sun-jdk port, which is not what the
> >> jdk14 port does ordinarily.
> >>
> >> Cheers
> >> Sam
> >
> > Here is what I get:
> >
> > java/jdk14:
> >
> > make -V BUILD_DEPENDS brings up:
> >
> >  /usr/local/linux-sun-jdk1.4.2/bin/javac:/usr/ports/java/linux-sun-
> > jdk14
> >
> > which is telling me if  /usr/local/linux-sun-jdk1.4.2/bin/java is
> > there
> >
> > it isn't going to worry about java/linux-sun-jdk14.
>
> jdk14 can bootstrap from any of the NATIVE_BOOTSTRAP_JDKS or
> LINUX_BOOTSTRAP_JDKS listed in the makefile, including itself.  If
> one of these is available, the "javac" binary that jdk14 tests for is
> not necessarily the one from linux-sun-jdk14.

OK, good info!  See if I understand correctly:

in java/jdk14 I get:

make -V NATIVE_BOOTSTRAP_JDKS

/usr/local/jdk1.4.2  /usr/local/jdk1.4.1

make -V LINUX_BOOTSTRAP_JDK

none

Which means if either /usr/local/jdk1.4.2
or /usr/local/jdk1.4.1 exist, then no build targets needed,
correct? 

On my system there is no /usr/local/jdk1.4.2
or  /usr/local/jdk1.4.1 so make -V NATIVE_BOOTSTRAP_JDKS
seems to be saying what is needed, not what I have,...

-Mike




More information about the freebsd-ports mailing list