[Aptitude-svn-commit] r3915 - in branches/aptitude-0.3/aptitude: .
src/generic
Daniel Burrows
dburrows at costa.debian.org
Thu Aug 18 01:18:33 UTC 2005
Author: dburrows
Date: Thu Aug 18 01:18:30 2005
New Revision: 3915
Modified:
branches/aptitude-0.3/aptitude/ChangeLog
branches/aptitude-0.3/aptitude/src/generic/aptcache.cc
branches/aptitude-0.3/aptitude/src/generic/aptitude_resolver.cc
branches/aptitude-0.3/aptitude/src/generic/aptitude_resolver.h
Log:
Add support for penalizing solutions that break holds.
Modified: branches/aptitude-0.3/aptitude/ChangeLog
==============================================================================
--- branches/aptitude-0.3/aptitude/ChangeLog (original)
+++ branches/aptitude-0.3/aptitude/ChangeLog Thu Aug 18 01:18:30 2005
@@ -1,5 +1,10 @@
2005-08-17 Daniel Burrows <dburrows at debian.org>
+ * src/generic/aptcache.cc, src/generic/aptitude_resolver.cc, src/generic/aptitude_resolver.h:
+
+ Add support for adding an extra penalty to solutions that break
+ a user hold or install a forbidden package version.
+
* src/vscreen/vs_tree.cc:
Fix the bug that caused the screen to scroll pointlessly at the
Modified: branches/aptitude-0.3/aptitude/src/generic/aptcache.cc
==============================================================================
--- branches/aptitude-0.3/aptitude/src/generic/aptcache.cc (original)
+++ branches/aptitude-0.3/aptitude/src/generic/aptcache.cc Thu Aug 18 01:18:30 2005
@@ -1384,7 +1384,8 @@
aptcfg->FindI(PACKAGE "::ProblemResolver::InstallScore", -20),
aptcfg->FindI(PACKAGE "::ProblemResolver::UpgradeScore", 0),
aptcfg->FindI(PACKAGE "::ProblemResolver::NonDefaultScore", -40),
- aptcfg->FindI(PACKAGE "::ProblemResolver::EssentialRemoveScore", -100000));
+ aptcfg->FindI(PACKAGE "::ProblemResolver::EssentialRemoveScore", -100000),
+ aptcfg->FindI(PACKAGE "::ProblemResolver::BreakHoldScore", -300));
resolver->add_priority_scores(aptcfg->FindI(PACKAGE "::ProblemResolver::ImportantScore", 5),
aptcfg->FindI(PACKAGE "::ProblemResolver::RequiredScore", 4),
Modified: branches/aptitude-0.3/aptitude/src/generic/aptitude_resolver.cc
==============================================================================
--- branches/aptitude-0.3/aptitude/src/generic/aptitude_resolver.cc (original)
+++ branches/aptitude-0.3/aptitude/src/generic/aptitude_resolver.cc Thu Aug 18 01:18:30 2005
@@ -36,7 +36,8 @@
void aptitude_resolver::add_action_scores(int preserve_score, int auto_score,
int remove_score, int keep_score,
int install_score, int upgrade_score,
- int non_default_score, int essential_remove)
+ int non_default_score, int essential_remove,
+ int break_hold_score)
{
// Should I stick with APT iterators instead? This is a bit more
// convenient, though..
@@ -89,6 +90,11 @@
else
add_version_score(v, upgrade_score);
}
+
+ if(!p.get_pkg().CurrentVer().end() &&
+ (state.selection_state == pkgCache::State::Hold ||
+ state.forbidver == v.get_ver().VerStr()))
+ add_version_score(v, break_hold_score);
}
else
// We know that:
Modified: branches/aptitude-0.3/aptitude/src/generic/aptitude_resolver.h
==============================================================================
--- branches/aptitude-0.3/aptitude/src/generic/aptitude_resolver.h (original)
+++ branches/aptitude-0.3/aptitude/src/generic/aptitude_resolver.h Thu Aug 18 01:18:30 2005
@@ -81,11 +81,15 @@
* \param essential_remove an additional modification applied to the
* removal of an essential package (typically used to deep-six such
* solutions by, eg, setting it to -100000)
+ *
+ * \param break_hold_score an additional modification applied to
+ * solutions that break a hold or violate a forbidding.
*/
void add_action_scores(int preserve_score, int auto_score,
int remove_score, int keep_score,
int install_score, int upgrade_score,
- int non_default_score, int essential_remove);
+ int non_default_score, int essential_remove,
+ int break_hold_score);
/** Score packages/versions according to their priorities. Normally
* you want important>=required>=standard>=optional>=extra.
More information about the Aptitude-svn-commit
mailing list