Mailinglist Archive: zypp-commit (118 mails)

< Previous Next >
[zypp-commit] r11948 - /branches/SuSE-Linux-11_0-Branch/sat-solver/src/pool.c
  • From: mlschroe@xxxxxxxxxxxxxxxx
  • Date: Thu, 18 Dec 2008 11:19:51 -0000
  • Message-id: <E1LDGv1-0007mo-HD@xxxxxxxxxxxxxxxx>
Author: mlschroe
Date: Thu Dec 18 12:19:51 2008
New Revision: 11948

URL: http://svn.opensuse.org/viewcvs/zypp?rev=11948&view=rev
Log:
- handle patch conflicts different also in trivial_installable
(bnc#447986)

Modified:
branches/SuSE-Linux-11_0-Branch/sat-solver/src/pool.c

Modified: branches/SuSE-Linux-11_0-Branch/sat-solver/src/pool.c
URL:
http://svn.opensuse.org/viewcvs/zypp/branches/SuSE-Linux-11_0-Branch/sat-solver/src/pool.c?rev=11948&r1=11947&r2=11948&view=diff
==============================================================================
--- branches/SuSE-Linux-11_0-Branch/sat-solver/src/pool.c (original)
+++ branches/SuSE-Linux-11_0-Branch/sat-solver/src/pool.c Thu Dec 18 12:19:51
2008
@@ -1338,7 +1338,7 @@
return dep;
}

-static inline int providedbyinstalled(Pool *pool, unsigned char *map, Id dep)
+static inline int providedbyinstalled(Pool *pool, unsigned char *map, Id dep,
int ispatch)
{
Id p, *pp;
int r = 0;
@@ -1346,6 +1346,8 @@
{
if (p == SYSTEMSOLVABLE)
return 1; /* always boring, as never constraining */
+ if (ispatch && !pool_match_nevr(pool, pool->solvables + p, dep))
+ continue;
if ((map[p] & 9) == 9)
return 9;
r |= map[p] & 17;
@@ -1413,7 +1415,7 @@
{
if (req == SOLVABLE_PREREQMARKER)
continue;
- r = providedbyinstalled(pool, map, req);
+ r = providedbyinstalled(pool, map, req, 0);
if (!r)
{
/* decided and miss */
@@ -1429,10 +1431,14 @@
}
if (s->conflicts)
{
+ int ispatch = 0;
+
+ if (!strncmp("patch:", id2str(pool, s->name), 6))
+ ispatch = 1;
conp = s->repo->idarraydata + s->conflicts;
while ((con = *conp++) != 0)
{
- if ((providedbyinstalled(pool, map, con) & 1) != 0)
+ if ((providedbyinstalled(pool, map, con, ispatch) & 1) != 0)
{
map[p] = 2;
break;
@@ -1440,7 +1446,7 @@
if ((m == 1 || m == 17) && ISRELDEP(con))
{
con = dep2name(pool, con);
- if ((providedbyinstalled(pool, map, con) & 1) != 0)
+ if ((providedbyinstalled(pool, map, con, ispatch) & 1) != 0)
m = 9;
}
}
@@ -1457,7 +1463,7 @@
obsp = s->repo->idarraydata + s->obsoletes;
while ((obs = *obsp++) != 0)
{
- if ((providedbyinstalled(pool, map, obs) & 1) != 0)
+ if ((providedbyinstalled(pool, map, obs, 0) & 1) != 0)
{
map[p] = 2;
break;

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

< Previous Next >
This Thread
  • No further messages