diff options
author | Allan McRae <allan@archlinux.org> | 2015-06-17 14:27:50 +0200 |
---|---|---|
committer | Allan McRae <allan@archlinux.org> | 2015-07-15 02:57:30 +0200 |
commit | b0dac754d27b45e4346b010e674f7faa466e0025 (patch) | |
tree | d38b623c7c74d9474626ba17ae4a58c8e4b8745e /src | |
parent | 289fdf0d1d9c88f0c8a6502cc311599c63a04723 (diff) | |
download | pacman-b0dac754d27b45e4346b010e674f7faa466e0025.tar.gz pacman-b0dac754d27b45e4346b010e674f7faa466e0025.tar.xz |
Add pacman support for .files databases
Signed-off-by: Allan McRae <allan@archlinux.org>
Diffstat (limited to 'src')
-rw-r--r-- | src/pacman/callback.c | 2 | ||||
-rw-r--r-- | src/pacman/sync.c | 8 |
2 files changed, 7 insertions, 3 deletions
diff --git a/src/pacman/callback.c b/src/pacman/callback.c index 1f086755..9260ece9 100644 --- a/src/pacman/callback.c +++ b/src/pacman/callback.c @@ -750,7 +750,7 @@ void cb_dl_progress(const char *filename, off_t file_xfered, off_t file_total) fname = malloc(len + 1); memcpy(fname, filename, len); /* strip package or DB extension for cleaner look */ - if((p = strstr(fname, ".pkg")) || (p = strstr(fname, ".db"))) { + if((p = strstr(fname, ".pkg")) || (p = strstr(fname, ".db")) || (p = strstr(fname, ".files"))) { /* tack on a .sig suffix for signatures */ if(memcmp(&filename[len - 4], ".sig", 4) == 0) { memcpy(p, ".sig", 4); diff --git a/src/pacman/sync.c b/src/pacman/sync.c index 9dbaac80..f28ffbd9 100644 --- a/src/pacman/sync.c +++ b/src/pacman/sync.c @@ -102,6 +102,10 @@ static int sync_cleandb(const char *dbpath) dbname = strndup(dname, len - 3); } else if(len > 7 && strcmp(dname + len - 7, ".db.sig") == 0) { dbname = strndup(dname, len - 7); + } else if(len > 6 && strcmp(dname + len - 6, ".files") == 0) { + dbname = strndup(dname, len - 6); + } else if(len > 6 && strcmp(dname + len - 6, ".files.sig") == 0) { + dbname = strndup(dname, len - 10); } else { ret += unlink_verbose(path, 0); continue; @@ -215,8 +219,8 @@ static int sync_cleancache(int level) static const char *const glob_skips[] = { /* skip signature files - they are removed with their package file */ "*.sig", - /* skip package database within the cache directory */ - "*.db*", + /* skip package databases within the cache directory */ + "*.db*", "*.files*", /* skip source packages within the cache directory */ "*.src.tar.*", /* skip package deltas, we aren't smart enough to clean these yet */ |