java/jdk14, BUILD_DEPENDS, and portmanager -u

Michael C. Shultz ringworm01 at gmail.com
Sun Nov 6 16:10:59 PST 2005


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.

in java/linux-sun-jdk14's pkg-plist is:

@unexec %%LOCALBASE%%/bin/unregistervm "%D/%%T%%/bin/java"

which I interpret as  /usr/local/linux-sun-jdk1.4.2/bin/javac is not going to 
be removed after deinstall.  Still need to test this.  I guess the rules 
about ports cleaning up after themselves in the case of java may not apply,
if that turns out to be the case I'll put some sort of work around in 
portmanager.

-Mike


More information about the freebsd-ports mailing list