Bug 512515 - RFE. Consider courgette algorithm
Summary: RFE. Consider courgette algorithm
Alias: None
Product: Fedora
Classification: Fedora
Component: deltarpm
Version: rawhide
Hardware: All
OS: Linux
Target Milestone: ---
Assignee: Jonathan Dieter
QA Contact: Fedora Extras Quality Assurance
Depends On:
TreeView+ depends on / blocked
Reported: 2009-07-18 12:11 UTC by Rahul Sundaram
Modified: 2013-03-13 05:45 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Last Closed: 2010-06-30 20:07:55 UTC
Type: ---

Attachments (Terms of Use)

Description Rahul Sundaram 2009-07-18 12:11:40 UTC
Description of problem:

More details at


I guess you can pass it on upstream

Comment 1 Jonathan Dieter 2009-07-18 12:26:10 UTC
I've taken a look at it.  If there's some code that I can use to actually generate a courgette diff that I could compare with a diff generated using deltarpm, it would help a lot.

Comment 2 Levente Farkas 2009-11-14 12:48:56 UTC
is there any progress with it?

Comment 3 Jonathan Dieter 2009-11-14 17:01:52 UTC
No one has pointed me to any actual code to generate courgette diffs.  Setting needinfo as there's not much I can do with this until I actually see some code.

Comment 5 Levente Farkas 2009-11-15 13:23:32 UTC
now i do a little bit more investigation:
- even though there is a bsdiff package in fedora it's different ie. the chromium rewrite it and a small diff is not enough.
- the courgette is coupled with chromium so it seems not to be easy to create a separate lib or executable:-( but i'll try to look into it..

Comment 6 Levente Farkas 2009-11-15 17:31:48 UTC
but if we add spot's chromium http://spot.fedorapeople.org/chromium/ to fedora then everything can be easier:-)

Comment 7 Jonathan Dieter 2009-11-15 17:45:03 UTC
Thanks for finding the link for me.  I've taken a quick look at the code and it looks interesting.  A couple of comments:

1) As you've pointed out, the code is closely linked to chromium, so I'm not sure how easy it's going to be to split it out, even for testing.  And using spot's chromium won't necessarily help, as it doesn't look like the code is split into a separate library.
2) Looking at the changelog entry at http://src.chromium.org/viewvc/chrome/trunk/src/courgette/third_party/bsdiff_create.cc?revision=21042&view=markup, it looks like courgette only works with Windows binaries at the moment.

Having said all that, there are a number of ideas that we may be able to implement (I'm particularly interested in their method of splitting the instruction block into separate streams for higher compression ratios).

And, assuming courgette soon gets the ability to work with Linux binaries and assuming that we can decouple it from Chromium, it will be very interesting to work with it.

Comment 8 Levente Farkas 2009-11-15 18:42:19 UTC
i send many hours to be able to create a separate lib and binary from the source but seem to too difficult. now i try the other way ie. try to push chromium into fedora and the create a courgette subpackage of it. which can be used by deltarpm (ie deltarpm depend on courgette). in this case the only remaining issues:
- integrate it into daltarpm and you can already start to work on it:-)
- wait (i already ask how much) for the available linux port
- wait for the chromium package in fedora. i hope these won't take too long.

Note You need to log in before you can comment on or make changes to this bug.