dynamic deltup server version 0.6.2

current version of getdelta.sh: 0.6.9


Most recent news:

2005/03/05 Good news! Due to the efforts of Stefan Schweizer aka genstef deltup is back to the official portage tree as well as getdelta is now available as official ebuild. Thank you, Stefan.

2005/02/20 Re-enabled the external ftp-cache - so we've got cache in full size back now.

2005/02/07 Due to temporary technical problems the external ftp-cache has been disabled. We've got a much smaller cache now, but that's much better than waiting forever or getting non working download-URLs for the dtu-files. Sorry about the unconvenience. We hope to find a solution soon.

2004/10/22 getdelta-0.6.7 released.

2004/10/22 getdelta-0.6.3 released.
...and a few hours later...
getdelta-0.6.4 released (funny, same stupid bug done twice).

2004/10/22 getdelta-0.6.2 released.

2004/10/18 getdelta-0.6.1 released.

2004/10/13 I've dropped the (broken) mirror-detection on client-side. That leads to a change in query-format and again the update is forced.

2004/10/12 There is an getdelta-0.6.ebuild for getdelta available now. Those who use gensync (from pkg app-portage/gentoolkit-dev) can use this deltup.syncsource to be informed about and merge updates now.

2004/10/11 A security flaw has been fixed - getdelta-0.5.4 forced.

2004/09/20 The new way to find the thirdpartymirror gave wrong paths when a third party mirror was used. Sorry about that. Fixed in getdelta.sh 0.5.3.4

2004/09/16 I have put a new version of getdelta.sh (0.5.3.3) on the server. With this new version you do not need to set GENTOO_MIRRORS to an empty string anymore, since I have changed the way to detect the correct mirror-group to a more failsafe way. So update your getdelta.sh and set your GENTOO_MIRRORS to whatever you like.


What is the dynamic deltup server?

The dynamic deltup server provides delta-updates (*.dtu) on demand. A delta-update can be used in combination with an older version of the same source-archive to create the new version of the software, saving a lot of download-traffic and -time, since the delta-update contains the differences to the older version only.


How much traffic can be saved using the dynamic deltup server?

This depends on how much a source-archive changed between versions – some updates save a lot (for example updating firefox from version 0.9.1 to version 0.9.3 saves 98.77% of traffic - that means you would have to download 408 kB instead of >32MB) others are less efficient (for example updating wxGTK from version 2.4.2 to version 2.5.1 saves 57% only – but that still means you save more than 3MB of download, downloading 2.6 MB instead of 6MB) – Typically we save about 70-80% of traffic. Have a look at our cache-status-page which shows the current cache-content and some stats about filesizes and efficiency:

http://linux01.gwdg.de/~nlissne/deltup-status.atime.html (warning: this page is large)


Is it safe to use delta-updates?

Yes, the resulting source-archives are bit-identical and pass an md5sum-check. This is most important to be able to use it transparent to portage by using a special download-wrapper via the FETCHCOMMAND option in /etc/make.conf

If the server cannot provide a delta-update file for any reason, getdelta.sh falls back to normal download of the original archive.


Which source-archives can be updated with the server?

One of the best things about the dynamic deltup server is: It can provide updates to virtually any package. If the same update has been requested before, it provides the dtu-file from a cache, if you are the first user requesting an update, the server creates the file on demand (therefore it's called dynamic). Even version jumps from older versions than the previous are supported. The only limitation is, the server must be able to get both versions (your old version and the new version) from somewhere.


This sounds great, how can I use it?

  1. Download deltup-0.4.2.ebuild and copy it to your OVERLAY-portage-tree. (well, deltup once has been in portage tree and has been removed – a sad story &ndash however, I don't want to discuss it here. It is not in the official portage-tree anymore, so you have to use your overlay-tree) Install deltup.

  2. Download getdelta.sh and copy it to /usr/local/bin (or wherever you like) and change permissions to executable.

  3. Put the following line into your /etc/make.conf to make it work:

    FETCHCOMMAND="/usr/local/bin/getdelta.sh \${URI}"

  4. Once the script is run the first time, it creates a config-file (default location is /etc/deltup/getdelta.rc) Have a look at this file and change the variables to your needs to control the behaviour of getdelta.sh

In case your are not familiar with using the overlay tree, have a look at deelkar's fast step by step instructions on http://forums.gentoo.org/viewtopic.php?t=215262 (there is a german howto at http://forums.gentoo.org/viewtopic.php?t=215401)


Who wrote the dynamic deltup server?

The server-scripts and the client-script getdelta.sh were written by Nicolai Lissner <nlissne@linux01.gwdg.de> aka as blackpenguin on IRC-Network freenode (there is a channel #dynamic-deltup-server -- I am quite often available there to answer your questions and listen to your enhancement proposals) Feel free to give feedback or ask questions via mail, IRC or gentoo forums. You are welcome!

But all this would not have been happened without the work of John Whitney, who originally brought us deltup

-> see http://deltup.sourceforge.net.

Thank you, John.

Deltup uses Joshua P. MacDonald's xdelta to create the delta-files

-> see http://www.xdelta.org

Thank you, Joshua.