From b995e2f679784967ce0fa9e75e2abb15f573a9f4 Mon Sep 17 00:00:00 2001 From: Klaus Kaempf Date: Mon, 27 Feb 2006 18:30:56 +0000 Subject: [PATCH] check buildtime before allowing a downgrade (#152760) --- zypp/solver/detail/ResolverUpgrade.cc | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/zypp/solver/detail/ResolverUpgrade.cc b/zypp/solver/detail/ResolverUpgrade.cc index 0505d49..7c59d75 100644 --- a/zypp/solver/detail/ResolverUpgrade.cc +++ b/zypp/solver/detail/ResolverUpgrade.cc @@ -101,9 +101,10 @@ downgrade_allowed (PoolItem_Ref installed, PoolItem_Ref candidate) && va->isKnown( cpkg->vendor() ) ) { #warning Had Y2PM::runningFromSystem - //return( ipkg->buildtime() >= cpkg->buildtime() ); - MIL << "allowed downgrade " << installed << " to " << candidate << endl; - return true; // see bug #152760 + if ( ipkg->buildtime() < cpkg->buildtime() ) { // installed has older buildtime + MIL << "allowed downgrade " << installed << " to " << candidate << endl; + return true; // see bug #152760 + } } return false; } @@ -435,11 +436,11 @@ MIL << "split matched !" << endl; if ( ! candidate.status().isToBeInstalled() ) { - if ( installed->edition().compare (candidate->edition()) < 0 ) { // new version + if ( installed->edition().compare (candidate->edition()) < 0 ) { // new edition candidate.status().setToBeInstalled(ResStatus::APPL_HIGH); MIL << " ==> INSTALL (new version): " << candidate << endl; ++opt_stats_r.chk_to_update; - } else { + } else { // older or equal edition // check whether to downgrade: if (!downgrade_allowed (installed, candidate)) { -- 2.7.4