Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 236532

Summary: games-strategy/wesnoth: use xdelta provided by upstream to save ~150MB on minor version upgrades
Product: Gentoo Linux Reporter: Zeev Tarantov <zeev.tarantov>
Component: New packagesAssignee: Gentoo Games <games>
Status: RESOLVED DUPLICATE    
Severity: enhancement    
Priority: High    
Version: unspecified   
Hardware: All   
OS: Linux   
URL: http://www.wesnoth.org/wiki/Download_Xdeltas#Source_code
Whiteboard:
Package list:
Runtime testing required: ---

Description Zeev Tarantov 2008-09-03 05:04:44 UTC
The Wesnoth developers provide xdelta files to upgrade between the minor versions of the tarballs. I have successfully used them every time.
I use xdelta-1.1.4 (http://code.google.com/p/xdelta/) to create the .tar file for the next version from the tar file of the current version. Then I bzip2 the tar file and the resulting .tar.bz2 file passes the checksumming/hash test portage performs, so I know it's the same as downloading the whole file.
A minor problem of xdelta-1.1.4 is that I need to feed it the uncompressed source tar (it can write to pipe for the compression of the target, but can't read the source from pipe) so the operation takes some disk space. Still faster than downloading!
I propose to make it possible for the ebuild to see that I have the previous version's tarball and automatically enable this functionality. Obviously this would depend on xdelta being installed. If I knew how, I would have written a patch, but I'm a newb. Can't be that hard though!

Reproducible: Always

Steps to Reproduce:
1. install wesnoth-1.4.4
2. upgrade to wesnoth-1.4.5


Actual Results:  
see it download 150MB.

Expected Results:  
portage notices I have old tarball, downloads 2MB, creates and tests new tarballs, proceeds to use it regularly.
Comment 1 Gilles Dartiguelongue (RETIRED) gentoo-dev 2008-09-03 06:46:38 UTC
this is probably some sort of portage feature request because I frankly don't see a simple way to do this at the ebuild level.

Maybe specifying the same base tarball in X ebuilds and then adding relevant deltas to each new revision, but how many deltas to keep ?
Comment 2 Zeev Tarantov 2008-09-03 13:52:35 UTC
I didn't even think about layering the deltas. Yes, if I have wesnoth-1.4.0 I can patch it to 1.4.5 by applying the deltas in order. I am not sure if it will save me time, but on dialup it surely will be faster than downloading the full 1.4.5. Also, some people pay for their bandwidth. They host deltas on sourceforge that can upgrade between major versions. What do you mean by "but how many deltas to keep"?

I think I know how to make an alternate ebuild for wesnoth-1.4.5 that depends on the tarball for 1.4.4 and the xdelta. But how can I teach portage about choosing intelligently between the two options? Is there really no way?
Comment 3 Jeremy Olexa (darkside) (RETIRED) archtester gentoo-dev Security 2008-09-03 14:39:24 UTC
I see your point but it is up to the maintainer at this point. Unless someone provides a patch'ed ebuild, etc.
Comment 4 Mr. Bones. (RETIRED) gentoo-dev 2008-09-03 14:46:43 UTC

*** This bug has been marked as a duplicate of bug 105379 ***
Comment 5 Azamat H. Hackimov 2008-09-03 20:08:38 UTC
Try to use deltup - it's better solution than xdelta