Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 08 Feb 2001 14:29:12 -0800
From:      "Bruce A. Mah" <bmah@FreeBSD.ORG>
To:        Jordan Hubbard <jkh@winston.osd.bsdi.com>
Cc:        Brian Kraemer <kraemer@u.washington.edu>, freebsd-ports@FreeBSD.ORG
Subject:   Re: Ports updating... Good ways? 
Message-ID:  <200102082229.f18MTC806430@bmah-freebsd-0.cisco.com>
In-Reply-To: <17287.981654580@winston.osd.bsdi.com> 
References:  <17287.981654580@winston.osd.bsdi.com>

next in thread | previous in thread | raw e-mail | index | archive | help
--==_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




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