Request for Comments: updating RPMs using binary deltas

Lamar Owen lowen at pari.edu
Fri Jan 9 04:55:02 UTC 2004


On Thursday 08 January 2004 11:04 pm, seth vidal wrote:
> > You still do not seem to understand that you would only have to have a
> > single patch at any given instant.  You would have the same number of
> > files.  They would be smaller.

> You do not seem to understand that it WOULDN'T WORK that way. People
> wouldn't have the next to last thing. And you'd have to keep N copies
> around.

They would have to have whatever is considered the baseline, which, IMO, would 
be the last ISO respin package.  Every patch would be relative to this 
baseline, not relative to the previous patch.  If the patch gets too big, 
maybe you need to plop a full update and make it the new baseline.

> I've read this entire thread and I've not yet seen a convincing answer
> to: user X has a version they pulled from test3 not the final fc release
> but they've applied most of the other patches up to the final fc. How do
> they get there.

A _user_ is not going to run test3.  At least, hopefully they won't.  But, I 
need to answer your question.  If a user doesn't have as their local baseline 
package the same package as the one that is the current Official baseline, 
then that user will download the current Official baseline and the patch.  
Then keep the Official baseline somewhere locally, much like apt keeps 
everything you've ever downloaded in /var/cache/apt/archive (unless you clean 
it out).  Download baseline RPMs as needed if the user can't provide a 
matching local baseline (and you check using MD5 or SHA sums).  This 
situation would hopefully be pretty rare.

For the testing phase full-up updates are probably better; but upgrades aren't 
really supported from test releases anyway, right?  (I still remember the wet 
noodle.)

> So you have to keep patches available or just end up
> back at square one. So not only am I keeping the original I'm ALSO
> keeping some patches on my mirror.

You keep the baseline (which you are already mirroring as part of the OS 
distribution) and one patch for each erratum (if there are more than one 
errata for a package, like the kernel sometimes has, you keep a patch per 
errata).  The baseline would be the last respin; if the package the user has 
as his local baseline doesn't match the crypto sum of the current official 
baseline, they have to download the current baseline.  I should consistently 
use the word baseline instead of originals, yes?

> You're right, in the best of possible worlds it would work but I'm
> arguing for the bad cases b/c I'm not pangloss and you're not candide.

I too am arguing for the bad cases, but, in my case, I'm arguing for the 
'bandwidth-impaired.'  Google for this topic; it gets thousands of hits of 
forum messages asking 'why can't Red Hat do this.'

This issue is solvable. And your replies are exactly why I requested comments, 
because thinking about how to answer your valid queries has helped me 
solidify my position.
-- 
Lamar Owen
Director of Information Technology
Pisgah Astronomical Research Institute
1 PARI Drive
Rosman, NC  28772
(828)862-5554
www.pari.edu





More information about the devel mailing list