eapache at gmail.com
Sat Jan 12 20:41:53 UTC 2008
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)
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)
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:
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)
An example would work like this:
1. A new package called abc is added to the repos at version 1.
2. Bob installs abc from synaptic.
3. The creator of abc writes a patch, and packages abc version 1.1 the
way they do now.
4. When uploaded, the server that handles uploads compares version
1.1with version 1 and outputs an update file (some sort of xml
5. Bob checks for updates, finds that abc has a new version, and
downloads the update, which is only the xml update file
6. The installer passes the new binary-update program the xml file it
downloaded, and the abc binary is updated with the patch.
- No extra work for package maintainers.
- Extremely tiny updates.
- The method I described can't handle updates to non-binary files
(help files, icons, etc.) This would have to be integrated somehow.
- The framework would take considerable effort by the devs to set up.
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.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Ubuntu-devel-discuss