Author: schubi2 Date: Thu Nov 13 11:07:32 2008 New Revision: 11670 URL: http://svn.opensuse.org/viewcvs/zypp?rev=11670&view=rev Log: take care for ppc64 while distupgrade (bnc #443685) Modified: trunk/libzypp/zypp/solver/detail/SATResolver.cc Modified: trunk/libzypp/zypp/solver/detail/SATResolver.cc URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp/solver/detail/SATResolver.cc?rev=11670&r1=11669&r2=11670&view=diff ============================================================================== --- trunk/libzypp/zypp/solver/detail/SATResolver.cc (original) +++ trunk/libzypp/zypp/solver/detail/SATResolver.cc Thu Nov 13 11:07:32 2008 @@ -1334,19 +1334,35 @@ // try to prefer none architecture change if possible // So the architecture of the "rpm" package should be prefered + Capability cap("rpm"); sat::WhatProvides rpmProviders(cap); for_( iter2, rpmProviders.begin(), rpmProviders.end() ) { - PoolItem provider = ResPool::instance().find(*iter2); - if (provider.status().isInstalled()) { + if (iter2->isSystem()) { + sat::detail::IdType nid = iter2->ident().id(); + nid = rel2id(_SATPool, + nid, + iter2->arch().id(), REL_ARCH, true); + if (_distupgrade) + { + bool addRule = false; + Capability cap(nid); + sat::WhatProvides rpmProviders(cap); + for_( iter3, rpmProviders.begin(), rpmProviders.end() ) { + if ( !(iter3->isSystem())) { + addRule = true; + break; + } + } + if (!addRule) + break; + } + queue_push(&(_jobQueue), SOLVER_INSTALL|SOLVABLE_NAME|SOLVER_ESSENTIAL); - sat::detail::IdType nid = IdString( provider->name() ).id(); - queue_push(&(_jobQueue), rel2id(_SATPool, - nid, - provider->arch().id(), REL_ARCH, true)); + queue_push(&(_jobQueue), nid); + break; } } - } -- To unsubscribe, e-mail: zypp-commit+unsubscribe@opensuse.org For additional commands, e-mail: zypp-commit+help@opensuse.org