From: J. Ali Harlow Date: Mon, 28 Sep 2009 17:29:05 +0000 (+0100) Subject: Fix bug causing updates to fail on systems with multiple versions of a package installed X-Git-Tag: 0.3~4 X-Git-Url: http://project.juiblex.co.uk/git/?a=commitdiff_plain;h=f0c9d907d4688edc7faea8c65c2a1537d3623e6d;p=razor2.git%2F.git Fix bug causing updates to fail on systems with multiple versions of a package installed --- 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"