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

Daniel Burrows dburrows at costa.debian.org
Sun Sep 4 18:56:15 UTC 2005


Author: dburrows
Date: Sun Sep  4 18:56:11 2005
New Revision: 4046

Modified:
   branches/aptitude-0.3/aptitude/ChangeLog
   branches/aptitude-0.3/aptitude/src/generic/problemresolver/problemresolver.h
Log:
Fix the behavior of contains_rejected.

Modified: branches/aptitude-0.3/aptitude/ChangeLog
==============================================================================
--- branches/aptitude-0.3/aptitude/ChangeLog	(original)
+++ branches/aptitude-0.3/aptitude/ChangeLog	Sun Sep  4 18:56:11 2005
@@ -1,5 +1,16 @@
 2005-09-04  Daniel Burrows  <dburrows at debian.org>
 
+	* src/generic/problemresolver/problemresolver.h:
+
+	  Fix a bug in contains_rejected: instead of returning true on
+	  solutions that installed a rejected version, it was returning
+	  true on solutions that installed a package with a rejected
+	  version.
+
+	* src/generic/problemresolver/problemresolver.h:
+
+	  Add more debugging output for figuring out why deferrals occur.
+
 	* src/cmdline/cmdline_do_action.cc, src/cmdline/cmdline_upgrade.cc, src/download.cc, src/download.h, src/ui.cc:
 
 	  Split the download-and-install routines the same way that update

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	Sun Sep  4 18:56:11 2005
@@ -1180,8 +1180,15 @@
       {
 	typename imm::map<package, action>::node found = s.get_actions().lookup(uri->get_package());
 
-	if(found.isValid())
-	  return true;
+	if(found.isValid() && found.getVal().second.ver == *uri)
+	  {
+	    if(debug)
+	      std::cout << "Rejected version " << found.getVal().first.get_name()
+			<< " " << found.getVal().second.ver.get_name()
+			<< " detected." << std::endl;
+
+	    return true;
+	  }
       }
 
     return false;
@@ -1202,7 +1209,13 @@
 	  su_iter != s.get_unresolved_soft_deps().end())
       {
 	if(*uh_iter == *su_iter)
-	  return true;
+	  {
+	    if(debug)
+	      std::cout << "Broken hardened dependency " << *uh_iter
+			<< " detected." << std::endl;
+
+	    return true;
+	  }
 	else if(*uh_iter < *su_iter)
 	  ++uh_iter;
 	else



More information about the Aptitude-svn-commit mailing list