Downloading version patches instead of full releases

Mark Bainter <[email protected]> Mon, 30 Jun 2003 11:32:52 -0500
Newsgroups gmane.linux.zynot.general
Message-ID <[email protected]>
Just a curiosity.  Has anyone considered building in a minor level of
intelligence to the ebuilds/portage system that would allow the build developer
to provide a path to version patches and a method for handling their upgrade?

That's a really convoluted sentence.  Perhaps an example.

Lets say you have a system running app 1.0.  The developer releases a new
version, app 1.1.  This developer always provides patches against the last
major release too.  So he has an ftp site that looks like

app/1.0/full/app-1.0.tar.gz
app/1.0/full/app-1.1.tar.gz
app/1.0/patches/app-1.0-1.1.patch

So the build maintainer makes an ebuild as usual, but includes lines something
like:

VPATCH_URI="ftp://ftp.site.org/app/1.0/patches/app-${Major_Rev}-${Curr_Rev}.patch

% emerge -u app

Portage starts...
....
portage sees the VPATCH_URI
:: Portage checks to see if the major revision number is available in the distfiles directory.
   :: It is, Portage tries to get the patch file
      :: It succeeds, Portage patches the version update first, then runs any additional patches listed.
      ::  It Fails, Portage downloads the full source
   :: It isn't, Portage downloads the full source

In particular, I'm seeing the benefit of doing this with kernel updates.  That'd be
a serious reduction in traffic for upgrading kernel releases.  (Though for that it'd
have to be against the most recent release instead of last major revision.)

This would help mirrors, repositories and most of all our modem users.

Thoughts?