Mailinglist Archive: zypp-commit (500 mails)

< Previous Next >
[zypp-commit] r6290 - /trunk/libzypp/zypp/solver/detail/Resolver.cc
  • From: schubi2@xxxxxxxxxxxxxxxx
  • Date: Mon, 30 Jul 2007 13:06:34 -0000
  • Message-id: <20070730130634.48A2923B15@xxxxxxxxxxxxxxxx>
Author: schubi2
Date: Mon Jul 30 15:06:33 2007
New Revision: 6290

URL: http://svn.opensuse.org/viewcvs/zypp?rev=6290&view=rev
Log:
back to revision 6233; dependency settings via pool is still needed

Modified:
    trunk/libzypp/zypp/solver/detail/Resolver.cc

Modified: trunk/libzypp/zypp/solver/detail/Resolver.cc
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp/solver/detail/Resolver.cc?rev=6290&r1=6289&r2=6290&view=diff
==============================================================================
--- trunk/libzypp/zypp/solver/detail/Resolver.cc (original)
+++ trunk/libzypp/zypp/solver/detail/Resolver.cc Mon Jul 30 15:06:33 2007
@@ -882,9 +882,20 @@
 
     ResolverQueue_Ptr initial_queue = new ResolverQueue(_pool, _architecture, context);
 
+    // adding "external" provides, the the requirements will be ignored
+    IgnoreMap ignoreRequires = _ignoreRequires;
+    ResPool::AdditionalCapSet additionalCapSet = pool().additionaProvide();
+    for (ResPool::AdditionalCapSet::const_iterator it = additionalCapSet.begin();
+        it != additionalCapSet.end(); it++) {
+       CapSet cset = it->second;
+       for (CapSet::const_iterator cit = cset.begin(); cit != cset.end(); ++cit) {
+           ignoreRequires.insert(make_pair(PoolItem_Ref(), *cit));
+       }
+    }
+    
     // Initialize all ignoring dependencies
     initial_queue->context()->setIgnoreCababilities (_ignoreConflicts,
-                                                    _ignoreRequires,
+                                                    ignoreRequires,
                                                     _ignoreObsoletes,
                                                     _ignoreInstalledItem,
                                                     _ignoreArchitectureItem);
@@ -944,10 +955,30 @@
        initial_queue->addExtraCapability (*iter);
     }
     
+    // adding "external" requires
+    additionalCapSet = pool().additionalRequire();
+    for (ResPool::AdditionalCapSet::const_iterator it = additionalCapSet.begin();
+        it != additionalCapSet.end(); it++) {
+       CapSet cset = it->second;
+       for (CapSet::const_iterator cit = cset.begin(); cit != cset.end(); ++cit) {
+           initial_queue->addExtraCapability (*cit);            
+       }
+    }
+
     for (CapSet::const_iterator iter = _extra_conflicts.begin(); iter != _extra_conflicts.end(); iter++) {
        initial_queue->addExtraConflict (*iter);
     }
 
+    // adding "external" conflicts
+    additionalCapSet = pool().additionaConflict();
+    for (ResPool::AdditionalCapSet::const_iterator it = additionalCapSet.begin();
+        it != additionalCapSet.end(); it++) {
+       CapSet cset = it->second;
+       for (CapSet::const_iterator cit = cset.begin(); cit != cset.end(); ++cit) {
+           initial_queue->addExtraConflict (*cit);      
+       }
+    }
+
     // Adding System resolvable
     assertSystemResObjectInPool();
 
@@ -1192,6 +1223,7 @@
 
     // cleanup before next run
     reset( false, keepExtras );
+
     bool saveTryAllPossibilities = _tryAllPossibilities;
 
     if (tryAllPossibilities) {

--
To unsubscribe, e-mail: zypp-commit+unsubscribe@xxxxxxxxxxxx
For additional commands, e-mail: zypp-commit+help@xxxxxxxxxxxx

< Previous Next >
This Thread
  • No further messages