Author: mlschroe Date: Mon Aug 25 18:05:37 2008 New Revision: 10899 URL: http://svn.opensuse.org/viewcvs/zypp?rev=10899&view=rev Log: - make SOLVER_ERASE_SOLVABLE work Modified: trunk/sat-solver/src/solver.c trunk/sat-solver/testsuite/data.libzypp/basic-exercises/exercise-44-delete-glibc-test.solution trunk/sat-solver/testsuite/data.libzypp/sat-tests/test-crappy-coolo-4-test.solution trunk/sat-solver/testsuite/data.libzypp/sat-tests/test-crappy-coolo-6-test.solution trunk/sat-solver/testsuite/data.libzypp/sat-tests/test-crappy-coolo-7-test.solution trunk/sat-solver/testsuite/data.libzypp/sat-tests/test-crappy-coolo-8-test.solution trunk/sat-solver/testsuite/data.libzypp/simple-tests/remove-still-needed-test.solution trunk/sat-solver/testsuite/data.libzypp/solution-tests/uninstall-test.solution trunk/sat-solver/testsuite/data.libzypp/yast-tests/Bug157877-test.solution trunk/sat-solver/testsuite/data.libzypp/yast-tests/bug155368-test.solution trunk/sat-solver/testsuite/deptestomatic.c Modified: trunk/sat-solver/src/solver.c URL: http://svn.opensuse.org/viewcvs/zypp/trunk/sat-solver/src/solver.c?rev=10899&r1=10898&r2=10899&view=diff ============================================================================== --- trunk/sat-solver/src/solver.c (original) +++ trunk/sat-solver/src/solver.c Mon Aug 25 18:05:37 2008 @@ -3803,7 +3803,8 @@ int i; int oldnrules; Map addedmap; /* '1' == have rpm-rules for solvable */ - Id how, what, weak, p, *pp, d; + Map installcandidatemap; + Id how, what, name, weak, p, *pp, d; Queue q, redoq; Solvable *s; int goterase; @@ -3853,6 +3854,7 @@ } map_init(&addedmap, pool->nsolvables); + map_init(&installcandidatemap, pool->nsolvables); queue_init(&q); /* @@ -3897,6 +3899,7 @@ switch(how) { case SOLVER_INSTALL_SOLVABLE: + MAPSET(&installcandidatemap, what); addrpmrulesforsolvable(solv, pool->solvables + what, &addedmap); break; case SOLVER_INSTALL_SOLVABLE_NAME: @@ -3906,6 +3909,7 @@ /* if by name, ensure that the name matches */ if (how == SOLVER_INSTALL_SOLVABLE_NAME && !pool_match_nevr(pool, pool->solvables + p, what)) continue; + MAPSET(&installcandidatemap, p); addrpmrulesforsolvable(solv, pool->solvables + p, &addedmap); } break; @@ -4084,10 +4088,36 @@ case SOLVER_ERASE_SOLVABLE: s = pool->solvables + what; POOL_DEBUG(SAT_DEBUG_JOB, "job: %serase solvable %s\n", weak ? "weak " : "", solvable2str(pool, s)); - addrule(solv, -what, 0); /* remove by Id */ - queue_push(&solv->ruletojob, i); - if (weak) - queue_push(&solv->weakruleq, solv->nrules - 1); + name = s->name; + if (solv->installed && s->repo == solv->installed) + { + FOR_PROVIDES(p, pp, s->name) + { + s = pool->solvables + p; + if (s->name != name) + continue; + if (p != what) + { + /* keep other versions installed */ + if (s->repo == solv->installed) + continue; + /* keep installcandidates of other jobs */ + if (MAPTST(&installcandidatemap, p)) + continue; + } + addrule(solv, -p, 0); /* remove by Id */ + queue_push(&solv->ruletojob, i); + if (weak) + queue_push(&solv->weakruleq, solv->nrules - 1); + } + } + else + { + addrule(solv, -what, 0); /* remove by Id */ + queue_push(&solv->ruletojob, i); + if (weak) + queue_push(&solv->weakruleq, solv->nrules - 1); + } break; case SOLVER_INSTALL_SOLVABLE_NAME: /* install by capability */ case SOLVER_INSTALL_SOLVABLE_PROVIDES: @@ -4195,6 +4225,7 @@ /* free unneeded memory */ map_free(&addedmap); + map_free(&installcandidatemap); queue_free(&q); /* create weak map */ Modified: trunk/sat-solver/testsuite/data.libzypp/basic-exercises/exercise-44-delete-glibc-test.solution URL: http://svn.opensuse.org/viewcvs/zypp/trunk/sat-solver/testsuite/data.libzypp/basic-exercises/exercise-44-delete-glibc-test.solution?rev=10899&r1=10898&r2=10899&view=diff ============================================================================== --- trunk/sat-solver/testsuite/data.libzypp/basic-exercises/exercise-44-delete-glibc-test.solution (original) +++ trunk/sat-solver/testsuite/data.libzypp/basic-exercises/exercise-44-delete-glibc-test.solution Mon Aug 25 18:05:37 2008 @@ -709,5 +709,5 @@ - allow deinstallation of control-center-devel-1:1.5.12-ximian.2.noarch - allow deinstallation of kernel-utils-1:2.4-5.noarch -- do not deinstall glibc +- do not deinstall glibc-2.2.4-19.3.noarch Modified: trunk/sat-solver/testsuite/data.libzypp/sat-tests/test-crappy-coolo-4-test.solution URL: http://svn.opensuse.org/viewcvs/zypp/trunk/sat-solver/testsuite/data.libzypp/sat-tests/test-crappy-coolo-4-test.solution?rev=10899&r1=10898&r2=10899&view=diff ============================================================================== --- trunk/sat-solver/testsuite/data.libzypp/sat-tests/test-crappy-coolo-4-test.solution (original) +++ trunk/sat-solver/testsuite/data.libzypp/sat-tests/test-crappy-coolo-4-test.solution Mon Aug 25 18:05:37 2008 @@ -6,10 +6,10 @@ - allow architecture change of kaffeine-0.8.4-0.pm.3.i686 to kaffeine-0.8.5-31.i586 -- do not deinstall libxine1 +- do not deinstall libxine1-1.1.6-0.pm.0.i686 - do not install DirectFB-1.0.0-63.i586 -- do not install libjasper-1.900.1-42.i586 - do not install kernel-default-2.6.22.5-26.i586 +- do not install libjasper-1.900.1-42.i586 - do not install sysfsutils-2.1.0-60.i586 - do not install libMagick++10-6.3.5.3-26.i586 - do not install clanlib-0.6.5-468.i586 @@ -20,6 +20,7 @@ - do not install cpufrequtils-002-92.i586 - do not install novfs-kmp-default-2.0.0_2.6.22.5_26-22.i586 - do not install microcode_ctl-1.17-31.i586 +- do not install konversation-1.0.1-109.i586 - do not install kio_slp-0.4.1-121.i586 - do not install kio_ipodslave-0.8.pre1-110.i586 - do not install kio_beagle-0.3.1-115.i586 @@ -31,6 +32,7 @@ - do not install kdegames3-3.5.7-50.i586 - do not install amarok-1.4.7-33.i586 - do not install kdepim3-devel-3.5.7.enterprise.0.20070904.708012-6.i586 +- do not install amarok-xine-1.4.7-33.i586 Problem 2: ==================================== @@ -42,7 +44,7 @@ - allow deinstallation of lyx-1.3.6-20.i586 - allow deinstallation of docbook-toys-1.51.0-279.noarch -- do not deinstall tetex +- do not deinstall tetex-3.0-37.i586 - do not forbid installation of texlive-2007-66.noarch Modified: trunk/sat-solver/testsuite/data.libzypp/sat-tests/test-crappy-coolo-6-test.solution URL: http://svn.opensuse.org/viewcvs/zypp/trunk/sat-solver/testsuite/data.libzypp/sat-tests/test-crappy-coolo-6-test.solution?rev=10899&r1=10898&r2=10899&view=diff ============================================================================== --- trunk/sat-solver/testsuite/data.libzypp/sat-tests/test-crappy-coolo-6-test.solution (original) +++ trunk/sat-solver/testsuite/data.libzypp/sat-tests/test-crappy-coolo-6-test.solution Mon Aug 25 18:05:37 2008 @@ -6,10 +6,10 @@ - allow architecture change of kaffeine-0.8.4-0.pm.3.i686 to kaffeine-0.8.5-31.i586 -- do not deinstall libxine1 +- do not deinstall libxine1-1.1.6-0.pm.0.i686 - do not install DirectFB-1.0.0-63.i586 -- do not install libjasper-1.900.1-42.i586 - do not install kernel-default-2.6.22.5-26.i586 +- do not install libjasper-1.900.1-42.i586 - do not install sysfsutils-2.1.0-60.i586 - do not install libMagick++10-6.3.5.3-26.i586 - do not install clanlib-0.6.5-468.i586 @@ -20,6 +20,7 @@ - do not install cpufrequtils-002-92.i586 - do not install novfs-kmp-default-2.0.0_2.6.22.5_26-22.i586 - do not install microcode_ctl-1.17-31.i586 +- do not install konversation-1.0.1-109.i586 - do not install kio_slp-0.4.1-121.i586 - do not install kio_ipodslave-0.8.pre1-110.i586 - do not install kio_beagle-0.3.1-115.i586 @@ -31,6 +32,7 @@ - do not install kdegames3-3.5.7-50.i586 - do not install amarok-1.4.7-33.i586 - do not install kdepim3-devel-3.5.7.enterprise.0.20070904.708012-6.i586 +- do not install amarok-xine-1.4.7-33.i586 Problem 2: ==================================== @@ -42,7 +44,7 @@ - allow deinstallation of lyx-1.3.6-20.i586 - allow deinstallation of docbook-toys-1.51.0-279.noarch -- do not deinstall tetex +- do not deinstall tetex-3.0-37.i586 - do not forbid installation of texlive-2007-66.noarch Modified: trunk/sat-solver/testsuite/data.libzypp/sat-tests/test-crappy-coolo-7-test.solution URL: http://svn.opensuse.org/viewcvs/zypp/trunk/sat-solver/testsuite/data.libzypp/sat-tests/test-crappy-coolo-7-test.solution?rev=10899&r1=10898&r2=10899&view=diff ============================================================================== --- trunk/sat-solver/testsuite/data.libzypp/sat-tests/test-crappy-coolo-7-test.solution (original) +++ trunk/sat-solver/testsuite/data.libzypp/sat-tests/test-crappy-coolo-7-test.solution Mon Aug 25 18:05:37 2008 @@ -6,12 +6,10 @@ - allow architecture change of kaffeine-0.8.4-0.pm.3.i686 to kaffeine-0.8.5-31.i586 -- do not deinstall libxine1 -- do not deinstall lame -- do not install ImageMagick-6.3.5.3-26.i586 +- do not deinstall libxine1-1.1.6-0.pm.0.i686 - do not install DirectFB-1.0.0-63.i586 -- do not install libjasper-1.900.1-42.i586 - do not install kernel-default-2.6.22.5-26.i586 +- do not install libjasper-1.900.1-42.i586 - do not install sysfsutils-2.1.0-60.i586 - do not install libMagick++10-6.3.5.3-26.i586 - do not install clanlib-0.6.5-468.i586 @@ -22,6 +20,7 @@ - do not install cpufrequtils-002-92.i586 - do not install novfs-kmp-default-2.0.0_2.6.22.5_26-22.i586 - do not install microcode_ctl-1.17-31.i586 +- do not install konversation-1.0.1-109.i586 - do not install kio_slp-0.4.1-121.i586 - do not install kio_ipodslave-0.8.pre1-110.i586 - do not install kio_beagle-0.3.1-115.i586 @@ -32,15 +31,16 @@ - do not install kdegraphics3-3.5.7-55.i586 - do not install kdegames3-3.5.7-50.i586 - do not install amarok-1.4.7-33.i586 +- do not install kdepim3-devel-3.5.7.enterprise.0.20070904.708012-6.i586 +- do not install amarok-xine-1.4.7-33.i586 Problem 2: ==================================== -package lyx-1.5.1-22.i586 requires texlive-latex, but none of the providers can be installed +package lyx-1.3.6-20.i586 requires te_latex, but none of the providers can be installed - allow deinstallation of lyx-1.3.6-20.i586 -- do not deinstall te_latex -- do not deinstall tetex +- do not deinstall te_latex-3.0-37.i586 - do not forbid installation of texlive-2007-66.noarch @@ -52,5 +52,5 @@ - allow deinstallation of docbook-toys-1.51.0-279.noarch -- do not deinstall jadetex +- do not deinstall jadetex-3.13-235.i586 Modified: trunk/sat-solver/testsuite/data.libzypp/sat-tests/test-crappy-coolo-8-test.solution URL: http://svn.opensuse.org/viewcvs/zypp/trunk/sat-solver/testsuite/data.libzypp/sat-tests/test-crappy-coolo-8-test.solution?rev=10899&r1=10898&r2=10899&view=diff ============================================================================== --- trunk/sat-solver/testsuite/data.libzypp/sat-tests/test-crappy-coolo-8-test.solution (original) +++ trunk/sat-solver/testsuite/data.libzypp/sat-tests/test-crappy-coolo-8-test.solution Mon Aug 25 18:05:37 2008 @@ -6,7 +6,7 @@ - allow architecture change of kaffeine-0.8.4-0.pm.3.i686 to kaffeine-0.8.5-31.i586 -- do not deinstall libxine1 +- do not deinstall libxine1-1.1.6-0.pm.0.i686 - do not install DirectFB-1.0.0-63.i586 - do not install kernel-default-2.6.22.5-26.i586 - do not install libjasper-1.900.1-42.i586 Modified: trunk/sat-solver/testsuite/data.libzypp/simple-tests/remove-still-needed-test.solution URL: http://svn.opensuse.org/viewcvs/zypp/trunk/sat-solver/testsuite/data.libzypp/simple-tests/remove-still-needed-test.solution?rev=10899&r1=10898&r2=10899&view=diff ============================================================================== --- trunk/sat-solver/testsuite/data.libzypp/simple-tests/remove-still-needed-test.solution (original) +++ trunk/sat-solver/testsuite/data.libzypp/simple-tests/remove-still-needed-test.solution Mon Aug 25 18:05:37 2008 @@ -6,5 +6,5 @@ - allow deinstallation of B-1.0-1.noarch -- do not deinstall A +- do not deinstall A-1.0-1.noarch Modified: trunk/sat-solver/testsuite/data.libzypp/solution-tests/uninstall-test.solution URL: http://svn.opensuse.org/viewcvs/zypp/trunk/sat-solver/testsuite/data.libzypp/solution-tests/uninstall-test.solution?rev=10899&r1=10898&r2=10899&view=diff ============================================================================== --- trunk/sat-solver/testsuite/data.libzypp/solution-tests/uninstall-test.solution (original) +++ trunk/sat-solver/testsuite/data.libzypp/solution-tests/uninstall-test.solution Mon Aug 25 18:05:37 2008 @@ -6,5 +6,5 @@ - allow deinstallation of foo2-1.0-1.noarch -- do not deinstall foo +- do not deinstall foo-1.0-1.noarch Modified: trunk/sat-solver/testsuite/data.libzypp/yast-tests/Bug157877-test.solution URL: http://svn.opensuse.org/viewcvs/zypp/trunk/sat-solver/testsuite/data.libzypp/yast-tests/Bug157877-test.solution?rev=10899&r1=10898&r2=10899&view=diff ============================================================================== --- trunk/sat-solver/testsuite/data.libzypp/yast-tests/Bug157877-test.solution (original) +++ trunk/sat-solver/testsuite/data.libzypp/yast-tests/Bug157877-test.solution Mon Aug 25 18:05:37 2008 @@ -6,5 +6,5 @@ - allow deinstallation of xgnokii-0.6.10-6.i586 -- do not deinstall gnokii +- do not deinstall gnokii-0.6.10-6.i586 Modified: trunk/sat-solver/testsuite/data.libzypp/yast-tests/bug155368-test.solution URL: http://svn.opensuse.org/viewcvs/zypp/trunk/sat-solver/testsuite/data.libzypp/yast-tests/bug155368-test.solution?rev=10899&r1=10898&r2=10899&view=diff ============================================================================== --- trunk/sat-solver/testsuite/data.libzypp/yast-tests/bug155368-test.solution (original) +++ trunk/sat-solver/testsuite/data.libzypp/yast-tests/bug155368-test.solution Mon Aug 25 18:05:37 2008 @@ -25,5 +25,5 @@ - allow deinstallation of yast2-samba-server-2.13.6-2.noarch - allow deinstallation of yast2-nis-server-2.13.1-5.noarch -- do not deinstall yast2-transfer +- do not deinstall yast2-transfer-2.13.3-2.x86_64 Modified: trunk/sat-solver/testsuite/deptestomatic.c URL: http://svn.opensuse.org/viewcvs/zypp/trunk/sat-solver/testsuite/deptestomatic.c?rev=10899&r1=10898&r2=10899&view=diff ============================================================================== --- trunk/sat-solver/testsuite/deptestomatic.c (original) +++ trunk/sat-solver/testsuite/deptestomatic.c Mon Aug 25 18:05:37 2008 @@ -1248,8 +1248,7 @@ err( "Remove: Package '%s' is not installed", package ); exit(1); } - id = str2id( pool, package, 0 ); - queue_push( &(pd->trials), SOLVER_ERASE_SOLVABLE_NAME ); + queue_push( &(pd->trials), SOLVER_ERASE_SOLVABLE); queue_push( &(pd->trials), id); } break; -- To unsubscribe, e-mail: zypp-commit+unsubscribe@opensuse.org For additional commands, e-mail: zypp-commit+help@opensuse.org