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.