From: Ján Kupec Date: Mon, 11 Oct 2010 12:20:22 +0000 (+0200) Subject: consider ZConfig::solver_allowVendorChange() X-Git-Tag: 1.5.0~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=3e30ff5758c36b9f1636baa12012ccf736e706c3;p=platform%2Fupstream%2Fzypper.git consider ZConfig::solver_allowVendorChange() --- diff --git a/src/SolverRequester.cc b/src/SolverRequester.cc index dda49d8..43526b3 100644 --- a/src/SolverRequester.cc +++ b/src/SolverRequester.cc @@ -173,7 +173,7 @@ void SolverRequester::install(const PackageSpec & pkg) updateTo(pkg, *sit); else if ((best = s->updateCandidateObj())) updateTo(pkg, best); - else if (changes_vendor) + else if (changes_vendor && !_opts.allow_vendor_change) updateTo(pkg, instobj); else updateTo(pkg, *sit); @@ -538,7 +538,8 @@ void SolverRequester::updateTo( } // update candidate has different vendor - if (!VendorAttr::instance().equivalent(highest->vendor(), installed->vendor())) + if (!VendorAttr::instance().equivalent(highest->vendor(), installed->vendor()) && + !_opts.allow_vendor_change) { addFeedback(Feedback::UPD_CANDIDATE_CHANGES_VENDOR, pkg, selected, installed); DBG << "Newer object with different vendor exists: " << highest diff --git a/src/SolverRequester.h b/src/SolverRequester.h index 22a698d..c269ca7 100644 --- a/src/SolverRequester.h +++ b/src/SolverRequester.h @@ -15,6 +15,7 @@ #include +#include "zypp/ZConfig.h" #include "zypp/PoolItem.h" #include "Command.h" @@ -39,6 +40,7 @@ public: , force_by_name(false) , best_effort(false) , skip_interactive(false) + , allow_vendor_change(zypp::ZConfig::instance().solver_allowVendorChange()) {} void setForceByName(bool value = true); @@ -76,6 +78,9 @@ public: */ bool skip_interactive; + /** Whether to ignore vendor when selecting packages */ + bool allow_vendor_change; + /** Aliases of the repos from which the packages should be installed */ std::list from_repos; };