On Wed, May 13, 2009 at 12:43 PM, Pierre Schmitz <pierre@archlinux.de> wrote:
Am Mittwoch, 13. Mai 2009 10:00:55 schrieb Xavier:
To sum up the problems I expect : * xdelta will be inefficient with xz packages since it does not recognize it * when it recognizes it, the sync.c code will need to be updated.
I did not have a closer look at pacman's code but can't we just uncompress the packages ourself and let xdelta handle plain tar files?
This was one of the available option. Maybe we didn't go for it because it requires slightly more work. But it may be the best option after all. I first thought we would just have to change xdelta generation in create-xdelta and xdelta patching in libalpm/sync.c , but I just remembered I used the xdelta meta-info in repo-add : http://projects.archlinux.org/?p=pacman.git;a=blob;f=scripts/repo-add.sh.in;... So I use xdelta to get the original package file and destination package file from a .delta file, to add this information to pacman database. However, if we do delta between .tar files, the origin and destination will also be plain tar. But the packages in the file cache are not plain tar but compressed tar. So this requires more thinking and attention.