From owner-freebsd-ports@FreeBSD.ORG Thu Aug 9 21:56:11 2007 Return-Path: Delivered-To: freebsd-ports@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2EF0216A41B for ; Thu, 9 Aug 2007 21:56:11 +0000 (UTC) (envelope-from rnoland@2hip.net) Received: from gizmo.2hip.net (gizmo.2hip.net [64.74.207.195]) by mx1.freebsd.org (Postfix) with ESMTP id E972A13C48E for ; Thu, 9 Aug 2007 21:56:10 +0000 (UTC) (envelope-from rnoland@2hip.net) Received: from [63.251.67.21] (rnoland-ibm.acs.internap.com [63.251.67.21]) (authenticated bits=0) by gizmo.2hip.net (8.13.8/8.13.8) with ESMTP id l79Lu8OW005253 (version=TLSv1/SSLv3 cipher=RC4-MD5 bits=128 verify=NO); Thu, 9 Aug 2007 17:56:08 -0400 (EDT) (envelope-from rnoland@2hip.net) From: Robert Noland To: RW 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.> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-PZLlTDKE2fGLV+qlu7bp" Date: Thu, 09 Aug 2007 17:56:02 -0400 Message-Id: <1186696562.76028.41.camel@rnoland-ibm.acs.internap.com> Mime-Version: 1.0 X-Mailer: Evolution 2.10.3 FreeBSD GNOME Team Port X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.1.8 X-Spam-Checker-Version: SpamAssassin 3.1.8 (2007-02-13) on gizmo.2hip.net Cc: freebsd-ports@freebsd.org Subject: Re: Portmaster and Portmanager problem with jdk15 X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Aug 2007 21:56:11 -0000 --=-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 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--