summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorXavier Chantry <shiningxc@gmail.com>2009-05-22 00:24:26 +0200
committerDan McGee <dan@archlinux.org>2009-06-06 11:16:45 -0500
commit13b281d74380d9622574bd546e7f9084054ae289 (patch)
tree1c424f074e39be3a5e159d102ed8080dfa9e89e8 /lib
parent9af9c0f328094228fa363d842ddc9b2a605f0d22 (diff)
xdelta : only handle gz compression specifically
There is apparently no need to handle the re-compression manually when applying a xdelta patch in case of bzip2 or xz. Only gzip needs to be handled specifically for disabling timestamp with the -n option. After this patch, if xdelta is enhanced with xz support (1-line patch), it will be transparent from pacman side. Signed-off-by: Xavier Chantry <shiningxc@gmail.com> Signed-off-by: Dan McGee <dan@archlinux.org>
Diffstat (limited to 'lib')
-rw-r--r--lib/libalpm/sync.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/lib/libalpm/sync.c b/lib/libalpm/sync.c
index abda1472..35e6fca4 100644
--- a/lib/libalpm/sync.c
+++ b/lib/libalpm/sync.c
@@ -622,15 +622,12 @@ static int apply_deltas(pmtrans_t *trans)
snprintf(to, len, "%s/%s", cachedir, d->to);
/* build the patch command */
- /* compression command */
- char *compress = "cat";
if(endswith(to, ".gz")) {
- compress = "gzip -n";
- } else if(endswith(to, ".bz2")) {
- compress = "bzip";
+ /* special handling for gzip : we disable timestamp with -n option */
+ snprintf(command, PATH_MAX, "xdelta3 -d -q -R -c -s %s %s | gzip -n > %s", from, delta, to);
+ } else {
+ snprintf(command, PATH_MAX, "xdelta3 -d -q -s %s %s %s", from, delta, to);
}
- /* -R for disabling external recompression, -c for sending to stdout */
- snprintf(command, PATH_MAX, "xdelta3 -d -q -R -c -s %s %s | %s > %s", from, delta, compress, to);
_alpm_log(PM_LOG_DEBUG, "command: %s\n", command);