NEW behaviour of the solver:
authorStefan Schubert <schubi@suse.de>
Wed, 15 Nov 2006 14:37:36 +0000 (14:37 +0000)
committerStefan Schubert <schubi@suse.de>
Wed, 15 Nov 2006 14:37:36 +0000 (14:37 +0000)
Obsolete virtual provides. E.G.:

Installed:
-----------
Name:           test-1.0-0

Name:           moretest-1.0-0
Provides:       test

To be installed
------------------
Name:           nomoretest-1.0-0
Obsoletes:      test

Result
--------
test-1.0-0 AND  moretest-1.0-0 will be deleted. In former versions only
test-1.0-0 had been deleted.

12 files changed:
testsuite/solver/data.deptestomatic/bugzilla-tests/bug191983-test.solution
testsuite/solver/data.deptestomatic/distupgrade-tests/rename-multiple-test.solution
testsuite/solver/data.deptestomatic/lock-tests/exercise-obscureobsoletes-03-test.solution
testsuite/solver/data.deptestomatic/lock-tests/exercise-obscureobsoletes-03-test.xml
testsuite/solver/data.deptestomatic/patch-tests/kernel-single-update-test.solution
testsuite/solver/data.deptestomatic/solution-tests/pattern_obsolete-test.solution
testsuite/solver/data.deptestomatic/solution-tests/pattern_obsolete-test.xml
testsuite/solver/data.deptestomatic/yast-tests/Bug156408-test.solution
testsuite/solver/data.deptestomatic/yast-tests/Bug158446-2-test.solution
testsuite/solver/data.deptestomatic/yast-tests/Bug158446-test.solution
testsuite/solver/data.deptestomatic/yast-tests/exercise-04obsoletes-09-test.solution
zypp/solver/detail/QueueItemConflict.cc

index 1888c25..b2215df 100644 (file)
@@ -6,6 +6,7 @@
 >!> install apache2-prefork-2.2.0-21.2.i586[sles10]
 >!> install libapr-util1-1.2.7-3.i586[stable]
 >!> install libapr1-1.2.7-3.i586[stable]
+>!> |unflag apache2-2.2.2-5.i586[stable]
 >!> installs=5, upgrades=0, uninstalls=0
 >!> Solution #2:
 >!> install apache2-2.2.0-21.2.i586[sles10]
@@ -13,6 +14,7 @@
 >!> install apache2-prefork-2.2.0-21.2.i586[sles10]
 >!> install libapr-util1-1.2.2-13.2.i586[sles10]
 >!> install libapr1-1.2.7-3.i586[stable]
+>!> |unflag apache2-2.2.2-5.i586[stable]
 >!> installs=5, upgrades=0, uninstalls=0
 >!> Solution #3:
 >!> install apache2-2.2.0-21.2.i586[sles10]
@@ -20,4 +22,5 @@
 >!> install apache2-prefork-2.2.0-21.2.i586[sles10]
 >!> install libapr-util1-1.2.2-13.2.i586[sles10]
 >!> install libapr1-1.2.2-13.2.i586[sles10]
+>!> |unflag apache2-2.2.2-5.i586[stable]
 >!> installs=5, upgrades=0, uninstalls=0
index 74781be..22c6318 100644 (file)
@@ -5,9 +5,5 @@
 >!> Solution #1:
 >!> install A2-2.0-1.noarch[upgrade]
 >!> remove  A-1.0-1.noarch
+>!> |unflag A_new-2.0-1.noarch[upgrade]
 >!> installs=1, upgrades=0, uninstalls=1
->!> Solution #2:
->!> install A2-2.0-1.noarch[upgrade]
->!> install A_new-2.0-1.noarch[upgrade]
->!> remove  A-1.0-1.noarch
->!> installs=2, upgrades=0, uninstalls=1
index 3de975d..ee6f751 100644 (file)
@@ -1,6 +1,6 @@
->!> Locking foo from channel @system
->!> Locking foo-devel from channel @system
 >!> Installing foo2old from channel test
 >!> Solution #1:
 >!> install foo2old-2.0-1.noarch[test]
->!> installs=1, upgrades=0, uninstalls=0
+>!> remove  foo-1.0-1.noarch
+>!> remove  foo-devel-1.1-1.noarch
+>!> installs=1, upgrades=0, uninstalls=2
index c86b089..75513f1 100644 (file)
@@ -6,11 +6,9 @@
 </setup>
 
 <!-- 
-# obsolete an virtual provides --> no attempt deleting foo and foo-devel  
+# obsolete an virtual provides --> foo and foo-devel will be deleted
  -->
 <trial>
-  <lock package="foo" channel="@system"/>
-  <lock package="foo-devel" channel="@system"/>
   <install channel="test" package="foo2old"/>
 </trial>
 
index 18410d3..782f0af 100644 (file)
@@ -48,6 +48,9 @@
 >!> |satisfied atom:omnibook-kmp-xen-20060126_2.6.16.21_0.6-3.1.i586[multi_source]
 >!> |satisfied atom:wlan-kmp-default-1_2.6.16.21_0.6-12.6.i586[multi_source]
 >!> |satisfied atom:wlan-kmp-xen-1_2.6.16.21_0.6-12.6.i586[multi_source]
+>!> |unflag kernel-default-2.6.16.21-0.6.i586[multi_source]
+>!> |unflag kernel-xen-2.6.16.21-0.6.i586[multi_source]
+>!> |unflag kernel-xenpae-2.6.16.21-0.6.i586[multi_source]
 >!> installs=4, upgrades=12, uninstalls=0, satisfied=9
 >!> Solution #2:
 >!> This solution is a duplicate.
index 7dc7e25..fb2061e 100644 (file)
@@ -3,5 +3,6 @@
 >!> Solution #1:
 >!> install pattern:foo4-2.0-1.noarch
 >!> install pattern:foo5-2.0-1.noarch
+>!> remove  pattern:foo2-1.0-1.noarch
 >!> remove  pattern:foo3-1.0-1.noarch
->!> installs=2, upgrades=0, uninstalls=1
+>!> installs=2, upgrades=0, uninstalls=2
index 0c3eb12..0750791 100644 (file)
@@ -1,7 +1,7 @@
 <!--
    foo4 obsoletes foo3 ... delete foo3
    foo5 obsoletes foo2old, foo2 provides foo2old... do
-      not delete foo2 cause it is a virtual provides only
+   delete foo2 cause it is a virtual provides only
 -->
 <test>
 <setup>
index f93ccc5..2b9d360 100644 (file)
 >!> |unflag [1]sendmail-8.13.5-8.i586[sles_packages]
 >!> |unflag [1]suse-release-10.0.42-18.i586[sl10_packages]
 >!> |unflag [2]kdebase3-NLD-10.1-18.i586[sles_packages]
+>!> |unflag [3]java-1_4_2-ibm-plugin-1.4.2.s4-6.i586[sles_packages]
 >!> |unflag [3]lprng-3.8.28-14.i586[sl10_packages]
 >!> |unflag [3]myspell-german-old-20030428-114.noarch[sl10_packages]
 >!> |unflag [4]lpdfilter-0.45-259.i586[sles_packages]
 >!> |unflag [1]zmd-librc-backend-7.1.1-16.i586[sl10_packages]
 >!> |unflag [1]zmd-librc-backend-7.1.1-16.i586[sles_packages]
 >!> |unflag [2]kdebase3-NLD-10.1-18.i586[sles_packages]
+>!> |unflag [3]java-1_4_2-ibm-plugin-1.4.2.s4-6.i586[sles_packages]
 >!> |unflag [3]lprng-3.8.28-14.i586[sl10_packages]
 >!> |unflag [3]myspell-german-old-20030428-114.noarch[sl10_packages]
 >!> |unflag [4]lpdfilter-0.45-259.i586[sles_packages]
index 1ca2a09..03562a2 100644 (file)
@@ -6,4 +6,5 @@
 >!> install language:de-.noarch
 >!> install language:de_DE-.noarch
 >!> upgrade kernel-default-2.6.16_rc5_git14-2.i586 => kernel-default-2.6.16_rc5_git14-3.i586[update]
+>!> |unflag kernel-default-2.6.16_rc6_git1-4.i586[packages]
 >!> installs=2, upgrades=1, uninstalls=0
index 4785394..54559ca 100644 (file)
@@ -7,4 +7,5 @@
 >!> install language:de_DE-.noarch
 >!> upgrade kernel-default-2.6.16_rc5_git14-2.i586 => kernel-default-2.6.16_rc6_git1-4.i586[packages]
 >!> upgrade novfs-kmp-default-1.2.0_2.6.16_rc5_git14_2-7.i586 => novfs-kmp-default-1.2.0_2.6.16_rc6_git1_4-8.i586[packages]
+>!> |unflag kernel-default-2.6.16_rc5_git14-3.i586[update]
 >!> installs=2, upgrades=2, uninstalls=0
index 72aef5a..e693d43 100644 (file)
@@ -1,5 +1,6 @@
 >!> Installing G from channel test
 >!> Solution #1:
 >!> install G-1.0-1.noarch[test]
+>!> remove  libD-1.0-1.noarch
 >!> |unflag D-1.0-1.noarch[test]
->!> installs=1, upgrades=0, uninstalls=0
+>!> installs=1, upgrades=0, uninstalls=1
index 2f12607..6a057f0 100644 (file)
@@ -181,6 +181,9 @@ struct ConflictProcess
            return true;
        }
 
+#if 0 // Bug   220999; RPM does obsolete virtual provides too
+
+       
        /* FIXME: This should probably be a GVersion capability. */
        /* Obsoletes don't apply to virtual provides, only the items
         * themselves.  A provide is "virtual" if it's not the same spec
@@ -195,6 +198,8 @@ struct ConflictProcess
            _XDEBUG("obsolete to virtual provide - ignoring");
            return true;
        }
+       
+#endif // Bug  220999; RPM does obsolete virtual provides too  
 
        status = context->getStatus(provider);