From bbd1957b3c7bc888f007cd27c5d00d1aa4791b49 Mon Sep 17 00:00:00 2001 From: Klaus Kaempf Date: Tue, 15 Aug 2006 09:45:44 +0000 Subject: [PATCH] clean up 'incomplete' handling in QueueItemEstablish --- package/libzypp.changes | 6 ++++++ zypp/solver/detail/QueueItemEstablish.cc | 22 +++------------------- 2 files changed, 9 insertions(+), 19 deletions(-) diff --git a/package/libzypp.changes b/package/libzypp.changes index ace0e0f..bd9d390 100644 --- a/package/libzypp.changes +++ b/package/libzypp.changes @@ -1,4 +1,10 @@ ------------------------------------------------------------------- +Tue Aug 15 11:41:41 CEST 2006 - kkaempf@suse.de + +- clean up 'incomplete' handling in QueueItemEstablish. +- rev 3973. + +------------------------------------------------------------------- Tue Aug 15 11:30:50 CEST 2006 - kkaempf@suse.de - Don't set 'incomplete' for uninstalled patterns or products. diff --git a/zypp/solver/detail/QueueItemEstablish.cc b/zypp/solver/detail/QueueItemEstablish.cc index 5241aad..41e4b74 100644 --- a/zypp/solver/detail/QueueItemEstablish.cc +++ b/zypp/solver/detail/QueueItemEstablish.cc @@ -233,30 +233,14 @@ QueueItemEstablish::process (ResolverContext_Ptr context, QueueItemList & qil) } else { // some requirements are unfulfilled // If the item stays installed, blame the user - if (_item->kind() == ResTraits::kind // bug 198379, set incomplete for all patches, installed or uninstalled + if ((_item->kind() == ResTraits::kind // bug 198379, set incomplete for all patches, installed or uninstalled + || _item->kind() == ResTraits::kind) // Bug 190272, - same for atoms || status.staysInstalled() || context->establishing()) { - _XDEBUG("Patch/Installed/Establishing " << _item << " has unfulfilled requirement " << *iter << " -> incomplete"); + _XDEBUG("Atom/Patch/Installed/Establishing " << _item << " has unfulfilled requirement " << *iter << " -> incomplete"); context->incomplete( _item, _other_penalty ); } - else if (status.staysUninstalled()) // not installed -> schedule for installation - { - if (_item->kind() == ResTraits::kind) { // Bug 190272 - _XDEBUG("Atom " << _item << " has unfulfilled requirement " << *iter << " -> incomplete"); - context->incomplete( _item, _other_penalty ); - } - else if( Helper::isBestUninstalledItem( pool(), _item ) ) { // bug #184714, #191483 - // This is probably plain wrong. - // It installs a resolvable if its freshens/supplements triggers and - // some of its requirements are unfulfilled. - // What if a resolvable of the same name is already installed ? - - _DEBUG("Uninstalled " << _item << " has unfulfilled requirement " << *iter << " -> install"); - QueueItemInstall_Ptr install_item = new QueueItemInstall( pool(), _item ); - qil.push_front( install_item ); - } - } else { _XDEBUG("Transacted " << _item << " has unfulfilled requirement " << *iter << " -> leave"); // do nothing, because its either toBeInstalled or toBeUninstalled -- 2.7.4