From owner-freebsd-ports Thu Feb 8 14:29:37 2001 Delivered-To: freebsd-ports@freebsd.org Received: from sj-msg-core-1.cisco.com (sj-msg-core-1.cisco.com [171.71.163.11]) by hub.freebsd.org (Postfix) with ESMTP id E150237B94C for ; Thu, 8 Feb 2001 14:29:16 -0800 (PST) Received: from bmah-freebsd-0.cisco.com (bmah-freebsd-0.cisco.com [171.70.84.42]) by sj-msg-core-1.cisco.com (8.9.3/8.9.1) with ESMTP id OAA03885; Thu, 8 Feb 2001 14:29:29 -0800 (PST) Received: (from bmah@localhost) by bmah-freebsd-0.cisco.com (8.11.1/8.11.1) id f18MTC806430; Thu, 8 Feb 2001 14:29:12 -0800 (PST) (envelope-from bmah) Message-Id: <200102082229.f18MTC806430@bmah-freebsd-0.cisco.com> X-Mailer: exmh version 2.3.1 01/19/2001 with nmh-1.0.4 To: Jordan Hubbard Cc: Brian Kraemer , freebsd-ports@FreeBSD.ORG Subject: Re: Ports updating... Good ways? In-Reply-To: <17287.981654580@winston.osd.bsdi.com> References: <17287.981654580@winston.osd.bsdi.com> Comments: In-reply-to Jordan Hubbard message dated "Thu, 08 Feb 2001 09:49:40 -0800." From: "Bruce A. Mah" Reply-To: bmah@FreeBSD.ORG X-Face: g~c`.{#4q0"(V*b#g[i~rXgm*w;:nMfz%_RZLma)UgGN&=j`5vXoU^@n5v4:OO)c["!w)nD/!!~e4Sj7LiT'6*wZ83454H""lb{CC%T37O!!'S$S&D}sem7I[A 2V%N&+ X-Image-Url: http://www.employees.org/~bmah/Images/bmah-cisco-small.gif X-Url: http://www.employees.org/~bmah/ Mime-Version: 1.0 Content-Type: multipart/signed; boundary="==_Exmh_-1619484544P"; micalg=pgp-sha1; protocol="application/pgp-signature" Content-Transfer-Encoding: 7bit Date: Thu, 08 Feb 2001 14:29:12 -0800 Sender: owner-freebsd-ports@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org --==_Exmh_-1619484544P Content-Type: text/plain; charset=us-ascii (Disclaimer: I've been hacking Makefiles all day so my brain is a little fried.) If memory serves me right, Jordan Hubbard wrote: > > What about extending "make" so that it is possible to do the following: > > > > $ cd /usr/ports/foo/bar > > $ make update > > > > "make" would then automatically deal with updating dependencies for that > > specific port, remove the old version and build the new one. > > Well, this is a cool concept on the face of it but it needs more > infrastructure work to actually function. I think we have some of that infrastructure with the ORIGIN information that sobomax added to the pkg_* utilities and bsd.port.mk. > Let's say I install the "gtkwooba" port which depends on gtk, > libtools, glib and libwooba. Then I come back over a year later and > do a "make update" in gtkwooba. It's pretty much a surety that just > about everything it depends on has been updated, so I have to upgrade > gtk, libtools, glib and libwooba too. I'm not sure about that. You should only have to upgrade the dependencies listed in the Makefile for gtkwooba that aren't still satisfied. For example, even if libtool has been upgraded, the executable /path/to/libtool still exists, and so "make install" for gtkwooba isn't going to try to update that. I presume that's still the correct behavior. > Because of the other things > which depend on them and the manner in which they're constructed, > however, these four items fall into different categories: > > gtk: older version cannot be removed, new version must go alongside Right. The Makefile will depend on a newer gtk (one that presumably has a different library version, or something like that). The old gtk will have one less dependency (and thus it may be a useless component in the system), but that's fine. (IMHO) > libtools, glib: older versions can be replaced by new version with full > backwards compatibility Yep. They don't *have* to be though. > libwooba: no other dependencies, can be replaced by new version with > no other concerns Yep. > Now there may also be a safe way to achieve the upgrades in all cases, > depending on the skill and dedication of the people maintaining the > ports, but the ports collection doesn't currently have enough > descriptive metadata to be *sure* of that or to know when it can > safely pkg_delete an older version. I'd choose not to pkg_delete the old version. This means we might have a bunch of cruft lying around. But at least everything still works. > Anyway, "make update" is basically a feature which is awaiting a Ports > Hero to come along and add the necessary intelligence to actually > automate it properly. :) OK. With a little trepidation (sp?), I'm going to post shortly (like within an hour or so), what my solution for "make update" is. I can't believe I've blown away an entire day working on this. :-( Bruce. --==_Exmh_-1619484544P Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.4 (FreeBSD) Comment: Exmh version 2.2 06/23/2000 iD8DBQE6gx242MoxcVugUsMRAmuVAJ44dNNu9l5gABiX9vMZyVB0sXacNACfch5U ajJOnj4OrSPQWA6/FyW/Q6Q= =0S6R -----END PGP SIGNATURE----- --==_Exmh_-1619484544P-- To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-ports" in the body of the message