Skip to content

Commit a371cee

Browse files
do not clear providers of a name having a different name
it would prevent those solvables for being excluded by strict channel priority
1 parent 91be77e commit a371cee

1 file changed

Lines changed: 6 additions & 9 deletions

File tree

src/rules.c

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4165,24 +4165,21 @@ void solver_addstrictrepopriorules(struct s_Solver *solv, Map *addedmap)
41654165
{
41664166
Solvable *s2 = pool->solvables + p2;
41674167
if (s->name != s2->name)
4168-
{
4169-
MAPCLR(&priomap, p2);
41704168
continue;
4171-
}
41724169
if (s2->repo->priority > max_prio)
41734170
max_prio = s2->repo->priority;
41744171
}
41754172

4176-
FOR_PROVIDES(p2, pp2, s->name)
4173+
FOR_PROVIDES(p2, pp2, s->name)
41774174
{
41784175
Solvable *s2 = pool->solvables + p2;
4179-
if (!MAPTST(&priomap, p2))
4180-
continue;
4181-
MAPCLR(&priomap, p2);
4176+
if (s->name != s2->name || !MAPTST(&priomap, p2))
4177+
continue;
4178+
MAPCLR(&priomap, p2);
41824179
if (pool->installed && s2->repo == pool->installed)
41834180
continue;
4184-
if (s2->repo->priority < max_prio)
4185-
solver_addrule(solv, -p2, 0, 0);
4181+
if (s2->repo->priority < max_prio)
4182+
solver_addrule(solv, -p2, 0, 0);
41864183
}
41874184
}
41884185
solv->strictrepopriorules_end = solv->nrules;

0 commit comments

Comments
 (0)