Hi, I have attached deltup-0.1.ebuild for consideration. Delta update is a much-needed source update system for Gentoo. By using patches to update source packages, you can dramatically reduce download times (and mirror loads). The package/patch ratio is typically 10:1, 20:1, and in some cases I've seen, higher than 80:1! This program and the possibility of an eventual merge with Portage could make Gentoo the distribution of choice for dial-up users. The most useful aspect of this program is that the resulting patched tar-balled sources have the same md5sum as the official sources. It currently works with .gz and .bz2 tarballs. This project is in Alpha stage. However, it works very well for me. You can find the source and example patches to try out on my new Sourceforge site: http://sourceforge.net/projects/deltup/ Make sure to read the README in the source tarball, as it contains get-started documentation as well as the outstanding issues with version 0.1. I suggest sys-apps/deltup for it's location in portage. Respectfully, ---John Whitney Reproducible: Always Steps to Reproduce:
Created attachment 9942 [details] deltup-0.2.ebuild (New Package)
Upgraded package to version 0.2 - important new features added!
I like the idea
Released version 0.2.2. Same ebuild will work. Here are the important changes: Changed patch format slightly to allow more flexibility and removed support for old patch type (Either do it now, or support it forever!) Added uncompressed package support Recognize more compressed formats, but refuse to make patches for them Fixed edelta bug: refused to accept absolute pathname to patch I know it's a bad idea to change formats, but no one is using this program yet, so I thought I'd go ahead and prevent any inconvenience later... Please contact me if you have any special features you would like added. I should be able to add .zip support by the next revision. Are there any other formats I should support? The GWN says Portage is moving to RPM - that would really be scary! It's got to be an April Fools joke! Thanks for your interest!
It's an april fools joke. How do you envision multi-step patches work? For example, the user has version 2.0.0 installed, skipped 2.0.1, and now wants to install 2.0.2. Going from the package he has to the one he wants to install likely takes downloading 2 patches, and applying them in sequence. This gives two issues: - We should calculate whether it's better to download X needed patches versus downloading the package itself. --> need to somehow know the patch sizes. - Assuming portage is responsible for downloading the patches, how to apply them all without creating all versions of the package in between.
Because of the great package:patch ratio it will practically always be more efficient net-wise to install the patches. Summing the patch sizes would probably be overkill (extra ftp commands and programming). A portage option disabling patching is also needed (for those who don't trust md5sums! :). Hmm... deltup could apply several patches much more efficiently if it didn't have to build the package every step along the way, and you wouldn't have to rm the in-between packages. I'll try to add that functionality in the next version. Here's a difficult (but attractive) feature: If portage managed deltas in the distfiles folder, including making patches to the previous version, you could save a lot of space and keep older versions of programs around for longer. Here's what your distfiles/abiword* files could look like: abiword-1.0.3-1.0.2.dtu abiword-1.0.4-1.0.3.dtu abiword-1.0.5-1.0.4.dtu abiword-1.0.5.tar.gz In the meantime, I might add this feature to edelta. I don't have a big-endian machine, never programmed for one, and can't test my code for compatibility. Anyone have a Mac?
I have bumped the version to 0.2.3, there are several important new features in this release: Fixed a flaw in the gzip handling code Added generic command line flags support and rfdv flags: -r is used for consecutive package updates -f to force overwrite of output file -d to define working package directory -v for verbose output Alain Penders said: >- Assuming portage is responsible for downloading the patches, how to apply > them all without creating all versions of the package in between. When used with -r, Ver 0.2.3 will apply the deltas successively (and much more efficiently), creating only the final package.
Created attachment 10575 [details] ebuild for deltup Man page is included with release 0.2.6, added "doman deltup.1" to ebuild script
also have a look at bug #11470
Please use the ebuild tar (currently ebuild-0.3.1.tar) from the sourceforge site (http://sourceforge.net/projects/deltup/) instead of the attached ebuild because it also contains an ebuild for bzip2-0.9.0c, which must be used to recompress some packages originally compressed with that version.
I have released V. 0.3.2. There is a rather important development in this release. I discussed this project on the gentoo-dev irc channel and the developers suggested that I write an external fetch program which can be invoked by portage through the FETCHCOMMAND enviornment variable, testing it by using a local distfiles repository to provide patches. Within a few hours I was able to implement a rough but working solution. This script will automatically download and apply any number of patches to update to the requested version, and falls back to a complete download if the patches are not available on the mirror. The script is called efetch (see the Readme). Give it a try and e-mail me if you've got any questions. ---JJW
I just tried this with zsh and kernel sources. I'm impressed so far.
Made improvements and fixed a few bugs in the efetch script with the 0.3.4 release.
added 0.3.4 to portage
*** Bug 11470 has been marked as a duplicate of this bug. ***
0.3.5 is out
ya I know -- and it's already in portage -- jjw just lets me know in the dev channel when he has a new version, so it usually gets added within about 4 minutes of its release. :)
closing this bug, since deltup is now in cvs