How did upgrading applications happen before portupgrade etc?

Kris Kennaway kris at obsecurity.org
Sat Aug 11 10:09:02 PDT 2007


On Sat, Aug 11, 2007 at 09:01:27PM +0400, Rakhesh Sasidharan wrote:
> 
> Kris Kennaway wrote:
> 
> >On Sat, Aug 11, 2007 at 11:37:22AM +0200, Tobias Roth wrote:
> >>Kris Kennaway wrote:
> >>>On Sat, Aug 11, 2007 at 12:03:33PM +0400, Rakhesh Sasidharan wrote:
> >>>>Hi,
> >>>>
> >>>>Just a question that struck me today. Before there were the portupgrade
> >>>>and other tools for upgrading installed applications to their newer
> >>>>versions, how did things work out?
> >>>>
> >>>>Did one upgrade applications through a series of "make deinstall
> >>>>reinstall" commands (I wonder if these commands take care of 
> >>>>dependencies
> >>>>too) or was there any other way?
> >>>
> >>>Basically that, plus a lot of other manual steps that were always
> >>>somewhat hard to get exactly right but which more or less worked back
> >>>in the days when Gnomes lived in your garden and Java was a place on
> >>>the map.  It was a simpler, more innocent age.
> >>
> >>There was pkg_version -c that printed a sequence of
> >>
> >>cd /usr/ports/foo/bar
> >>make
> >>make deinstall
> >>make install
> >>make clean
> >>
> >>or something like that. Whatever broke was fixed manually afterwards :-)
> >>Oh, and there was no UPDATING in /usr/ports/ as well I think.
> >
> >Old-timers will tell you that pkg_version is a new-fangled invention,
> >and back in the day they had to slave for hours over a hot keyboard to
> >run all those make commands by hand :)
> 
> I see. That bad eh ... no pkg_version even! I guess then the only way was 
> to track cvs updates to see if anything of interest has been updated 
> recently and then upgrade it manually. :-/

Pretty much.  It more or less worked when the ports collection was
small, applications were mostly self-contained (few dependencies), and
updates were infrequent.  Obviously that approach did not scale.

> I'm curious now -- how does portupgrade (that's the tool I know/ use so 
> I'll use that as an example) do its upgrading? I have seen that in case of 
> an upgrade in builds the newer version, uninstalls the previous one (even 
> though it might be required by other apps), and then installs the newer 
> version. How does it do that -- by some magic of its own or does it use 
> the usual ports commands etc?

At the core it uses the usual port commands, but there is a lot of
higher level logic around that to do things like planning and ordering
of upgrades and error recovery.

> Any place where I can get more info on these 3rd party tools? Not too 
> techie, but a bird's eye view of things ...

Apart from the code itself I am not sure about this.

Kris
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-ports/attachments/20070811/97c14534/attachment.pgp


More information about the freebsd-ports mailing list