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
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 > |