--- /dev/null
+>!> Installing bar from channel test
+>!> Solution #1:
+>!> install bar-2.0-1[test]
+>!> remove foo-1.0-1
+>!> |unflag foo-2.0-1[test]
+>!> installs=1, upgrades=0, uninstalls=1
<setup>
<system file="exercise-02conflict-system.xml"/>
<channel name="test" file="exercise-02conflict-packages.xml"/>
+ <forceResolve/>
</setup>
--- /dev/null
+>!> Installing libc6 from channel test
+>!> Solution #1:
+>!> remove smail-1.0-1
+>!> upgrade libc6-2.0.7-2 => libc6-2.1.0-1[test]
+>!> installs=0, upgrades=1, uninstalls=1
<setup>
<system file="exercise-02conflict-system.xml"/>
<channel name="test" file="exercise-02conflict-packages.xml"/>
+ <forceResolve/>
</setup>
--- /dev/null
+>!> Installing test3 from channel test
+>!> Solution #1:
+>!> install test3-1.0-1[test]
+>!> remove test1-1.0-1
+>!> remove test2-1.0-1
+>!> |unflag test4-1.0-1[test]
+>!> installs=1, upgrades=0, uninstalls=2
<setup>
<system file="exercise-02conflict-system.xml"/>
<channel name="test" file="exercise-02conflict-packages.xml"/>
+ <forceResolve/>
</setup>
--- /dev/null
+>!> Installing test4 from channel test
+>!> Solution #1:
+>!> install test4-1.0-1[test]
+>!> remove test2-1.0-1
+>!> |unflag test3-1.0-1[test]
+>!> installs=1, upgrades=0, uninstalls=1
<setup>
<system file="exercise-02conflict-system.xml"/>
<channel name="test" file="exercise-02conflict-packages.xml"/>
+ <forceResolve/>
</setup>
--- /dev/null
+>!> Installing baz from channel test
+>!> Solution #1:
+>!> install baz-1.0-1[test]
+>!> upgrade foo-1.0-1 => foo-2.0-1[test]
+>!> |unflag bar-2.0-1[test]
+>!> installs=1, upgrades=1, uninstalls=0
+>!> Solution #2:
+>!> install baz-1.0-1[test]
+>!> remove foo-1.0-1
+>!> installs=1, upgrades=0, uninstalls=1
<setup>
<system file="exercise-02conflict-system.xml"/>
<channel name="test" file="exercise-02conflict-packages.xml"/>
+ <forceResolve/>
</setup>
--- /dev/null
+>!> Installing baz2 from channel test
+>!> No problems so far
+>!> Solution #1:
+>!> install baz2-1.0-1[test]
+>!> remove foo2-1.0-1
+>!> installs=1, upgrades=0, uninstalls=1
<setup>
<system file="exercise-02conflict-system.xml"/>
<channel name="test" file="exercise-02conflict-packages.xml"/>
+ <forceResolve/>
</setup>
--- /dev/null
+>!> Installing required3 from channel test
+>!> Solution #1:
+>!> remove requirerer3-2.0-1
+>!> upgrade required3-1.0-1 => required3-2.0-1[test]
+>!> installs=0, upgrades=1, uninstalls=1
<setup>
<system file="exercise-02conflict-system.xml"/>
<channel name="test" file="exercise-02conflict-packages.xml"/>
+ <forceResolve/>
</setup>
<!-- eek... this time a downgrade is available :-) -->
--- /dev/null
+>!> Installing libfoo2 from channel test
+>!> Solution #1:
+>!> install libfoo2-2.0-1[test]
+>!> remove libfoo-1.2-1
+>!> remove something-1.0-1
+>!> installs=1, upgrades=0, uninstalls=2
<setup>
<system file="exercise-04obsoletes-system.xml"/>
<channel name="test" file="exercise-04obsoletes-packages.xml"/>
+ <forceResolve/>
</setup>
<!--
--- /dev/null
+>!> Installing alt-conflict from channel test
+>!> Solution #1:
+>!> install WindowMaker-1.0-1[test]
+>!> install alt-conflict-1.0-1[test]
+>!> install sendmail-1.0-1[test]
+>!> remove foo-1.0-1
+>!> installs=3, upgrades=0, uninstalls=1
+>!> Solution #2:
+>!> install alt-conflict-1.0-1[test]
+>!> install icewm-1.0-1[test]
+>!> install sendmail-1.0-1[test]
+>!> remove foo-1.0-1
+>!> installs=3, upgrades=0, uninstalls=1
+>!> Solution #3:
+>!> install WindowMaker-1.0-1[test]
+>!> install alt-conflict-1.0-1[test]
+>!> install postfix-1.0-1[test]
+>!> remove foo-1.0-1
+>!> installs=3, upgrades=0, uninstalls=1
+>!> Solution #4:
+>!> install alt-conflict-1.0-1[test]
+>!> install icewm-1.0-1[test]
+>!> install postfix-1.0-1[test]
+>!> remove foo-1.0-1
+>!> installs=3, upgrades=0, uninstalls=1
<setup>
<system file="exercise-alternatives-system.xml"/>
<channel name="test" file="exercise-alternatives-packages.xml"/>
+ <forceResolve/>
</setup>
<!--
--- /dev/null
+>!> Solution #1:
+>!> remove at-1-1
+>!> remove shadow-1.0-1
+>!> installs=0, upgrades=0, uninstalls=2
<setup>
<system file="exercise-inconsistent2-system.xml"/>
<channel name="test" file="exercise-inconsistent2-packages.xml"/>
+ <forceResolve/>
</setup>
<!--
--- /dev/null
+>!> Solution #1:
+>!> remove at-1-1
+>!> remove shadow-1.0-1
+>!> installs=0, upgrades=0, uninstalls=2
<setup>
<system file="exercise-inconsistent4-system.xml"/>
<channel name="test" file="exercise-inconsistent4-packages.xml"/>
+ <forceResolve/>
</setup>
<!--
--- /dev/null
+>!> Solution #1:
+>!> remove kaffeine-2-1
+>!> installs=0, upgrades=0, uninstalls=1
<setup>
<system file="exercise-inconsistent6-system.xml"/>
<channel name="test" file="exercise-inconsistent6-packages.xml"/>
+ <forceResolve/>
</setup>
<!--
--- /dev/null
+>!> Installing kdelibs3-devel from channel test
+>!> Installing kdelibs3 from channel test
+>!> Solution #1:
+>!> install kdelibs3-EDITION-UNSPEC[test]
+>!> install kdelibs3-devel-EDITION-UNSPEC[test]
+>!> remove kdelibs-devel-2.0.1-4
+>!> remove kdesupport-2.0.1-5
+>!> remove kdesupport-devel-2.0.1-5
+>!> installs=2, upgrades=0, uninstalls=3
<setup>
<system file="exercise-kdelibsobs-system.xml"/>
<channel name="test" file="exercise-kdelibsobs-packages.xml"/>
+ <forceResolve/>
</setup>
<!--
--- /dev/null
+>!> Installing barold2 from channel test
+>!> Solution #1:
+>!> install barold2-4.0-1[test]
+>!> remove bar2-1.0-1
+>!> remove bar2-devel-1.1-1
+>!> installs=1, upgrades=0, uninstalls=2
<setup>
<system file="exercise-obscureobsoletes-system.xml"/>
<channel name="test" file="exercise-obscureobsoletes-packages.xml"/>
+ <forceResolve/>
</setup>
<!--
exercise-05reallive-4-test.xml
#solution ordering is not the same
exercise-alternatives-1-test.xml
-#no solution available
-exercise-02conflict-03-force-test.xml
-exercise-02conflict-08-force-test.xml
-exercise-alternatives-3-force-test.xml
-exercise-kdelibsobs-force-test.xml
-exercise-02conflict-05-force-test.xml
-exercise-02conflict-09-force-test.xml
-exercise-inconsistent2-force-test.xml
-exercise-obscureobsoletes-05-force-test.xml
-exercise-02conflict-06-force-test.xml
-exercise-02conflict-13-force-test.xml
-exercise-inconsistent4-force-test.xml
-exercise-02conflict-07-force-test.xml
-exercise-04obsoletes-04-force-test.xml
-exercise-inconsistent6-force-test.xml
exercise-04obsoletes-03-test.xml
+exercise-alternatives-3-force-test.xml
static ZYpp::Ptr God;
static SourceManager_Ptr manager;
+static bool forceResolve;
typedef list<unsigned int> ChecksumList;
node = node->next();
continue;
}
-
- if (node->equals ("system")) {
+ if (node->equals ("forceResolve")) {
+
+ forceResolve = true;
+ } else if (node->equals ("system")) {
string file = node->getProp ("file");
load_source ("@system", file, "helix", true);
solver::detail::Resolver_Ptr resolver = new solver::detail::Resolver (pool);
+ resolver->setForceResolve (forceResolve);
+
ResolverContext_Ptr established = NULL;
node = node->children();
cerr << "Usage: deptestomatic testfile.xml" << endl;
exit (0);
}
-
+ forceResolve = false;
manager = SourceManager::sourceManager();
ZYppFactory zf;
God = zf.getZYpp();