deal with a single package being the target of both a FORCED_UPDATE and an INSTALL
authorDan Winship <danw@gnome.org>
Tue, 11 Mar 2008 22:08:12 +0000 (18:08 -0400)
committerDan Winship <danw@gnome.org>
Tue, 11 Mar 2008 22:08:12 +0000 (18:08 -0400)
razor.c

diff --git a/razor.c b/razor.c
index f33eab9..435a38b 100644 (file)
--- a/razor.c
+++ b/razor.c
@@ -2292,7 +2292,12 @@ add_transaction_package(struct razor_transaction_resolver *trans,
                        if (already->new_package == new_package) {
                                /* Already taken care of */
                                return;
+                       } else if (new_package_set == trans->upstream &&
+                                  already->state == RAZOR_PACKAGE_FORCED_UPDATE) {
+                               already->new_package = new_package;
+                               return;
                        }
+
                        /* Oops. We lose */
                        if (state != RAZOR_PACKAGE_CONTRADICTION)
                                contradiction = 1;
@@ -2304,7 +2309,11 @@ add_transaction_package(struct razor_transaction_resolver *trans,
                        if (already->old_package == old_package) {
                                /* Already taken care of */
                                return;
+                       } else if (old_package_set == trans->system) {
+                               already->old_package = old_package;
+                               return;
                        }
+
                        /* Oops. We lose */
                        if (state != RAZOR_PACKAGE_CONTRADICTION)
                                contradiction = 1;