[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

deb diff format (debiff) proposal


While I was doing a 75 MB apt-get update last weekend I came up with the
idea of a deb-diff format that only saves the actual changes between two
versions. If you use woody/unstable and update at least every few weeks
most of your updates actually contain very small changes, even if the
deb files are large.

So I have created a small file format called debiff (DEBian dIFF) that
contains only the changes between two deb package versions. The file format
is, like deb's format, based on ar and uses the xdelta(1) tool to create
binary diffs between the control.tar and data.tar files contained in the \
original debs.
The exact format description can be found at

To make it possible to modify the tars in a deb archive  I patched dpkg-deb
and added two new commands: --control-tarfile prints the control.tar (works
like  --fsys-tarfile) and --tar-build builds a new deb from two tars.

I have written two quick&dirty perl scripts called debiff.pl and undebiff.pl
that can create debiffs from two debs and create a new deb from an old
original deb and the debiff file.

You can find the scripts as well as the dpkg-deb patch here:

Size of the last debs that I have downloaded and their debiffs:

741886 apache-common_1.3.12-2.1_i386.deb
810952 apache-common_1.3.12-2.2_i386.deb
187492 apache-common_1.3.12-2.1_1.3.12-2.2_i386.debiff
(23% of deb size)

558036 apache-dev_1.3.12-2.1_i386.deb
559036 apache-dev_1.3.12-2.2_i386.deb
142348 apache-dev_1.3.12-2.1_1.3.12-2.2_i386.debiff
(25% of deb size)

576772 apache-doc_1.3.12-2.1_all.deb
577120 apache-doc_1.3.12-2.2_all.deb
 23626 apache-doc_1.3.12-2.1_1.3.12-2.2_all.debiff
(4% of deb size)

577120 apache-doc_1.3.12-2.2_all.deb
618706 apache-doc_1.3.14-1_all.deb
216430 apache-doc_1.3.12-2.2_1.3.14-1_all.debiff
(35% of deb size)

1018628 mutt_1.2.5-4_i386.deb
1012936 mutt_1.2.5-5_i386.deb
 276190 mutt_1.2.5-4_1.2.5-5_i386.debiff
(27% of deb size)

I'd like to know whether there is a chance that debiff or
similar format will be added to the dpkg/apt system.


Attachment: pgpFr6hnfLEv8.pgp
Description: PGP signature

Reply to: