Courgette vs. deltarpm comparison
I keep on getting questions about deltarpm using the courgette algorithm, so I thought I would temporarily put them to rest:
firefox-3.5.4-1.fc12.i686.rpm – 15M firefox-3.5.6-1.fc12.i686.rpm – 15M firefox-3.5.4-1.fc12_3.5.6-1.fc12.i686.drpm (rpm-only deltaprm) – 434K firefox-3.5.4-1.fc12_3.5.6-1.fc12.i686.courgette.bz2 (delta of rpm cpios) – 426K
Please note that this is not a reflection of how courgette would work if it could use its disassembly algorithm on Linux binaries. The problem is that the disassembly algorithm only works with Windows binaries right now. Until courgette is able to do its disassembly-foo on Linux binaries, there will be no real benefit to using courgette in deltarpm.
Method
For deltarpm:
$ makedeltarpm -r firefox-3.5.4-1.fc12.i686.rpm \
firefox-3.5.6-1.fc12.i686.rpm \
firefox-3.5.4-1.fc12_3.5.6-1.fc12.i686.drpm
For courgette:
$ rpm2cpio firefox-3.5.4-1.fc12.i686.rpm > \
firefox-3.5.4-1.fc12.i686.cpio
$ rpm2cpio firefox-3.5.6-1.fc12.i686.rpm > \
firefox-3.5.6-1.fc12.i686.cpio
$ courgette -gen firefox-3.5.4-1.fc12.i686.cpio \
firefox-3.5.6-1.fc12.i686.cpio \
firefox-3.5.4-1.fc12_3.5.6-1.fc12.i686.courgette
$ bzip2 firefox-3.5.4-1.fc12_3.5.6-1.fc12.i686.courgette
Note: I believe the 8K difference in file size is because the courgette delta doesn’t contain any of the rpm metadata.