[Aptitude-svn-commit] r4228 - in branches/aptitude-0.3/aptitude: . src/generic/problemresolver

Daniel Burrows dburrows at costa.debian.org
Sat Sep 24 05:34:41 UTC 2005


Author: dburrows
Date: Sat Sep 24 05:34:30 2005
New Revision: 4228

Modified:
   branches/aptitude-0.3/aptitude/ChangeLog
   branches/aptitude-0.3/aptitude/src/generic/problemresolver/problemresolver.h
Log:
Fix the current semantics of force-breaking.

Modified: branches/aptitude-0.3/aptitude/ChangeLog
==============================================================================
--- branches/aptitude-0.3/aptitude/ChangeLog	(original)
+++ branches/aptitude-0.3/aptitude/ChangeLog	Sat Sep 24 05:34:30 2005
@@ -1,5 +1,13 @@
 2005-09-23  Daniel Burrows  <dburrows at debian.org>
 
+	* src/generic/problemresolver/problemresolver.h:
+
+	  When force-breaking a soft dependency, make sure to reject its
+	  source as well.  NOTE: the semantics of force-breaking may be a
+	  bit off; maybe they should be reviewed to better match approval?
+	  (i.e., only reject solutions due to force-breaking if something
+	  force-broken is listed as a justification)
+
 	* src/ui.cc:
 
 	  Connect state_changed to vscreen_update, so an update is always

Modified: branches/aptitude-0.3/aptitude/src/generic/problemresolver/problemresolver.h
==============================================================================
--- branches/aptitude-0.3/aptitude/src/generic/problemresolver/problemresolver.h	(original)
+++ branches/aptitude-0.3/aptitude/src/generic/problemresolver/problemresolver.h	Sat Sep 24 05:34:30 2005
@@ -2183,6 +2183,12 @@
       if(!is_rejected(*si))
 	return false;
 
+    version source = d.get_source();
+    for(typename package::version_iterator
+	  vi = source.get_package().versions_begin(); !vi.end(); ++vi)
+      if(*vi != source && !is_rejected(*vi))
+	return false;
+
     return true;
   }
 
@@ -2198,6 +2204,13 @@
 	!si.end(); ++si)
       reject_version(*si, undo);
 
+    version source = d.get_source();
+
+    for(typename package::version_iterator
+	  vi = source.get_package().versions_begin(); !vi.end(); ++vi)
+      if(*vi != source)
+	reject_version(*vi, undo);
+
     unharden(d, undo);
   }
 
@@ -2211,6 +2224,13 @@
     for(typename dep::solver_iterator si = d.solvers_begin();
 	!si.end(); ++si)
       unreject_version(*si, undo);
+
+    version source = d.get_source();
+
+    for(typename package::version_iterator
+	  vi = source.get_package().versions_begin(); !vi.end(); ++vi)
+      if(*vi != source)
+	unreject_version(*vi, undo);
   }
 
   /** Cancel any find_next_solution call that is executing in the



More information about the Aptitude-svn-commit mailing list