Currently, when a minor patch is uploaded to the update mirrors, Ubuntu users must download the entire deb package again. When it is a big package (say OpenOffice.org) and it is a small patch of just a few lines of code, this can get somewhat ridiculous.
(Update size generally < 50MB)<br><br>When Windows/OSX users recieve a patch, they get it in the form of an execuable (.msi IIRC) which modifies the executable directly. While this method saves considerable space over our current method, it would impose a major strain on the package maintainers to create an updater for every version. (Update size generally < 5MB)
<br><br>Any change in this area is far too complex for a LTS, however for 8.10 we have the opportunity to be innovative and create a new patching system better than that being used by the competition:<br><br>Write a new program that is generically designed to modify any binary according to parameters it is passed. Write a second program that compares two .deb packages and outputs the parameters the first program would need to get from version 1 to version 2. (Update size generally < 1MB)
<br><br>An example would work like this:
<br><ol><li>A new package called abc is added to the repos at version 1.</li><li>Bob installs abc from synaptic.</li><li>The creator of abc writes a patch, and packages abc version 1.1 the way they do now.</li><li>When uploaded, the server that handles uploads compares version
1.1 with version 1 and outputs an update file (some sort of xml format?)</li><li>Bob checks for updates, finds that abc has a new version, and downloads the update, which is only the xml update file</li><li>The installer passes the new binary-update program the xml file it downloaded, and the abc binary is updated with the patch.
</li></ol>Pros:<br><ul><li>No extra work for package maintainers.</li><li>Extremely tiny updates.</li></ul>Cons:<br><ul><li>The method I described can't handle updates to non-binary files (help files, icons, etc.) This would have to be integrated somehow.
</li><li>The framework would take considerable effort by the devs to set up.</li></ul>Overall, I think this new method is definitely a huge step forward. We are currently behind MS and Apple in this regard, and we have the opportunity not just to catch up, but to pass them. It would take a lot of work to get right, but it would be worth it.
<br><br>Evan<br>