diff options
author | Dan McGee <dan@archlinux.org> | 2011-04-05 00:48:36 -0500 |
---|---|---|
committer | Dan McGee <dan@archlinux.org> | 2011-04-05 00:49:30 -0500 |
commit | c5addd94e3a817504688e684bf62786df7faa3e7 (patch) | |
tree | 0f15c4c3ea66d617709e1f3408ea045a38463b1e /lib/libalpm/be_sync.c | |
parent | 2f71d1dc0084f7ee44afb9766e81847974820420 (diff) | |
parent | 272e9b355b17ab663ac4a0d9515d381dcf6f03ec (diff) | |
download | pacman-c5addd94e3a817504688e684bf62786df7faa3e7.tar.xz |
Merge branch 'maint'
Conflicts:
lib/libalpm/be_sync.c
lib/libalpm/db.c
src/pacman/util.c
Diffstat (limited to 'lib/libalpm/be_sync.c')
-rw-r--r-- | lib/libalpm/be_sync.c | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/lib/libalpm/be_sync.c b/lib/libalpm/be_sync.c index 756f784f..9183a074 100644 --- a/lib/libalpm/be_sync.c +++ b/lib/libalpm/be_sync.c @@ -236,9 +236,11 @@ static size_t estimate_package_count(struct stat *st, struct archive *archive) case ARCHIVE_COMPRESSION_XZ: per_package = 143; break; +#ifdef ARCHIVE_COMPRESSION_UU case ARCHIVE_COMPRESSION_UU: per_package = 3543; break; +#endif default: /* assume it is at least somewhat compressed */ per_package = 200; @@ -248,6 +250,7 @@ static size_t estimate_package_count(struct stat *st, struct archive *archive) static int sync_db_populate(pmdb_t *db) { + const char *dbpath; size_t est_count; int count = 0; struct stat buf; @@ -265,14 +268,22 @@ static int sync_db_populate(pmdb_t *db) archive_read_support_compression_all(archive); archive_read_support_format_all(archive); - if(archive_read_open_filename(archive, _alpm_db_path(db), + dbpath = _alpm_db_path(db); + if(!dbpath) { + /* pm_errno set in _alpm_db_path() */ + return 1; + } + + _alpm_log(PM_LOG_DEBUG, "opening database archive %s\n", dbpath); + + if(archive_read_open_filename(archive, dbpath, ARCHIVE_DEFAULT_BYTES_PER_BLOCK) != ARCHIVE_OK) { - _alpm_log(PM_LOG_ERROR, _("could not open file %s: %s\n"), _alpm_db_path(db), + _alpm_log(PM_LOG_ERROR, _("could not open file %s: %s\n"), dbpath, archive_error_string(archive)); archive_read_finish(archive); RET_ERR(PM_ERR_DB_OPEN, 1); } - if(stat(_alpm_db_path(db), &buf) != 0) { + if(stat(dbpath, &buf) != 0) { RET_ERR(PM_ERR_DB_OPEN, 1); } est_count = estimate_package_count(&buf, archive); |