# HG changeset patch # User J. Ali Harlow # Date 1254155832 -3600 # Node ID 3d3fab314c4e6a9aa88e6a112dd4f53e999702b3 # Parent 3cde352d32706ed97288f6909ae12d13b8a5e914 Fix bug causing updates to fail on systems with multiple versions of a package installed diff -r 3cde352d3270 -r 3d3fab314c4e librazor/transaction.c --- a/librazor/transaction.c Mon Sep 28 17:36:02 2009 +0100 +++ b/librazor/transaction.c Mon Sep 28 17:37:12 2009 +0100 @@ -692,15 +692,18 @@ 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 -r 3cde352d3270 -r 3d3fab314c4e test/update.sh --- a/test/update.sh Mon Sep 28 17:36:02 2009 +0100 +++ b/test/update.sh Mon Sep 28 17:37:12 2009 +0100 @@ -86,4 +86,16 @@ 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"