Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 09 Aug 2007 17:56:02 -0400
From:      Robert Noland <rnoland@2hip.net>
To:        RW <fbsd06@mlists.homeunix.com>
Cc:        freebsd-ports@freebsd.org
Subject:   Re: Portmaster and Portmanager problem with jdk15
Message-ID:  <1186696562.76028.41.camel@rnoland-ibm.acs.internap.com>
In-Reply-To: <20070809220718.5ddf3bb9@gumby.homeunix.com.>
References:  <20070807205138.6c5759d6@gumby.homeunix.com.> <46B8D605.2060008@FreeBSD.org> <1186520349.1257.58.camel@rnoland-ibm.acs.internap.com> <20070809154758.GA42925@misty.eyesbeyond.com> <1186677666.76028.28.camel@rnoland-ibm.acs.internap.com> <20070809220718.5ddf3bb9@gumby.homeunix.com.>

next in thread | previous in thread | raw e-mail | index | archive | help

--=-PZLlTDKE2fGLV+qlu7bp
Content-Type: text/plain
Content-Transfer-Encoding: quoted-printable

On Thu, 2007-08-09 at 22:07 +0100, RW wrote:
> On Thu, 09 Aug 2007 12:41:06 -0400
> Robert Noland <rnoland@2hip.net> wrote:
>=20
> > On Thu, 2007-08-09 at 09:47 -0600, Greg Lewis wrote: =20
> > > On Tue, Aug 07, 2007 at 04:59:09PM -0400, Robert Noland wrote: =20
> > > > On Tue, 2007-08-07 at 13:28 -0700, Doug Barton wrote: =20
> > > > > RW wrote: =20
> > > > > > Both Portmaster and Portmanager (I haven't tried Portupgrade)
> > > > > > install java/linux-sun-jdk15 on an upgrade of java/jdk15. If
> > > > > > I upgrade jdk15 manually it isn't built, so it must be done
> > > > > > by the tools.
> > > > > >=20
> > > > > > The way the jdk15 makefile works is that it looks for the
> > > > > > location of an existing jdk installation for bootstrapping
> > > > > > and sets BOOTSTRAPJDKDIR accordingly. We then have:
> > > > > >=20
> > > > > > # if no valid jdk found, set dependency
> > > > > > .if !defined(BOOTSTRAPJDKDIR)
> > > > > > BOOTSTRAPJDKDIR?=3D${LOCALBASE}/linux-sun-jdk${SUN_LINUX_JDK_VE=
RSION}=20
> > > > > > .endif
> > > > > > BUILD_DEPENDS+=3D${BOOTSTRAPJDKDIR}/bin/javac:${PORTSDIR}/java/=
linux-sun-jdk15
> > > > > >=20
> > > > > >=20
> > > > > > I don't know why this causes the build-tools to install
> > > > > > linux-sun-jdk15, but simply moving the BUILD_DEPENDS+=3D line
> > > > > > inside the if-endif block, seems to fix the problem. That
> > > > > > line is only needed if no jdk is present. =20
> > > > >=20
> > > > > Your analysis sounds right. =20
> > > >=20
> > > > Almost, doing this will remove the dependency on linux-sun-jdk15
> > > > if another bootstrap is installed, but it won't add one for the
> > > > installed bootstrap.  Currently, it will always have a dependency
> > > > on linux-sun-jdk15 even if another bootstrap jdk is installed.
> > > > jdk14 also has this issue. =20
> > >=20
> > > So, while the dependency being generated is bogus, I'm not quite
> > > sure why its having the effect that you mention.  The port is
> > > trying to figure out which bootstrap it should use out of a list of
> > > candidates and, when it has figured this out, create a "dependency"
> > > on it.  The dependency is (often) bogus, but that shouldn't
> > > actually have the effect your seeing as I understand it.  In the
> > > case where the bootstrap already exists, the dependency shouldn't
> > > be installed as I understand it since the check for that path will
> > > succeed, unless portmaster and portmanager decide to do their own
> > > proactive installation of dependencies based on the port?  In the
> > > case where the bootstrap doesn't exist then the dependency will be
> > > the correct default bootstrap and should be installed. =20
> >=20
> > As it stands, the jdk14 and jdk15 ports register a static dependency
> > on the default bootstrap unconditionally.  Portmanager ( I assume
> > portmaster behave similarly ) parses the Makefiles for all installed
> > ports so that it can take environment settings and options into
> > account and then handles the building of each port separately.  In
> > the case of the jdk ports, it always sees a dependency on the default
> > bootstrap. This means that the default bootstrap must be installed
> > and current before it will update the jdk ports, even if it is a
> > rebuild which may be bootstrapped by itself. =20
>=20
> It's a little irritating that Portmanager does that because I've
> seen it go back and rebuild  a port it's already built in order for it
> to pick-up a possible new run dependency. By comparison with that the
> indiscriminate  building of this bootstrap port is pretty crude.=20
>=20
> I don't think the handling of build-dependencies was left in a very
> good state when Michael Shultz departed, you only have to look at the
> way it handles bison conflicts.

If I ever get enough free time, I have a handful of things I would like
to address with portmanager, but for now I'm just trying to keep it
working.  My solution to the bison issue was to remove OpenOffice in
favor of gnome-office...
=20
> > The proposed patch above, does resolve this issue, however it doesn't
> > allow for an accurate dependency registration of the bootstrap that
> > was actually used to build the port.  =20
>=20
> Maybe something has changed, but I thought that only library and
> run dependencies were supposed to be registered.

Hrm, actually you are correct and the proposed patch will cause
portmanager to DTRT, so I don't have any objections to the fix.

robert.

> _______________________________________________
> freebsd-ports@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-ports
> To unsubscribe, send any mail to "freebsd-ports-unsubscribe@freebsd.org"

--=-PZLlTDKE2fGLV+qlu7bp
Content-Type: application/pgp-signature; name=signature.asc
Content-Description: This is a digitally signed message part

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (FreeBSD)

iD8DBQBGu41yM4TrQ4qfROMRAgT0AJ9djzpMgjAoMLC1m8b3s33lpQVrUwCfSHJ4
bLxlBQae15M3IBCQtZfQKDU=
=otZ1
-----END PGP SIGNATURE-----

--=-PZLlTDKE2fGLV+qlu7bp--




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1186696562.76028.41.camel>