From f0c9d907d4688edc7faea8c65c2a1537d3623e6d Mon Sep 17 00:00:00 2001 From: J. Ali Harlow Date: Mon, 28 Sep 2009 18:29:05 +0100 Subject: [PATCH] Fix bug causing updates to fail on systems with multiple versions of a package installed --- librazor/transaction.c | 11 +++++++---- test/update.sh | 12 ++++++++++++ 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/librazor/transaction.c b/librazor/transaction.c index 50d13d6..23c4a2e 100644 --- a/librazor/transaction.c +++ b/librazor/transaction.c @@ -692,15 +692,18 @@ flush_scheduled_system_updates(struct razor_transaction *trans) if (!prop_iter_seek_to(&ppi, RAZOR_PROPERTY_PROVIDES, name)) continue; + if (any_provider_satisfies_requirement(&ppi, + RAZOR_PROPERTY_GREATER, + version)) { + razor_transaction_remove_package(trans, p); + continue; + } + pkg = pick_matching_provider(trans->upstream.set, &ppi, RAZOR_PROPERTY_GREATER, version); if (pkg == NULL) continue; - fprintf(stderr, "updating %s-%s to %s-%s\n", - name, version, - &ppi.pool[pkg->name], &ppi.pool[pkg->version]); - razor_transaction_remove_package(trans, p); razor_transaction_install_package(trans, pkg); } diff --git a/test/update.sh b/test/update.sh index 80725db..3a2a421 100755 --- a/test/update.sh +++ b/test/update.sh @@ -86,4 +86,16 @@ fs_check_file_contents /opt/bin/zip zip-2-1 fs_check_file /opt/var/lib/zip/data.zap ../src/razor remove zip || exit 1 fs_check_no_file /opt/var/lib/zip/data.zap +set_repository base +../src/razor import-yum || exit 1 +../src/razor install --relocate /usr=/opt zip || exit 1 +../src/razor install --relocate /usr=/opt zip || exit 1 +set_repository updates +../src/razor import-yum || exit 1 +../src/razor update --relocate /usr=/opt || exit 1 +check_file /opt/bin/zip +fs_check_file_contents /opt/bin/zip zip-2-1 +fs_check_file /opt/var/lib/zip/data.zap +../src/razor remove zip || exit 1 +fs_check_no_file /opt/var/lib/zip/data.zap rm -rf "$RAZOR_ROOT" -- 1.7.1