[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