if (!s->evr)
s->evr = ID_EMPTY;
sid = pool_rel2id(pool, s->name, s->evr, REL_EQ, 1);
- s->provides = repo_addid_dep(s->repo, s->provides, sid, 0);
+ s->provides = repo_addid_dep(s->repo, s->provides, sid, 0);
if (!job || !pool->installed || s->repo != pool->installed)
return;
if (keep == KEEP_VERSION)
int
repo_add_cudf(Repo *repo, Repo *installedrepo, FILE *fp, Queue *job, int flags)
{
- Pool *pool = repo->pool;
+ Pool *pool;
char *buf, *p;
int bufa, bufl, c;
Solvable *s;
xrepo = repo ? repo : installedrepo;
if (!xrepo)
return -1;
+ pool = xrepo->pool;
buf = solv_malloc(4096);
bufa = 4096;
bufl = 0;
s = 0;
-
+
while (fgets(buf + bufl, bufa - bufl, fp) > 0)
{
bufl += strlen(buf + bufl);
Id id, *idp;
Offset off = makedeps(xrepo, p, 0, 0);
for (idp = xrepo->idarraydata + off; (id = *idp) != 0; idp++)
- queue_push2(job, SOLVER_UPDATE|SOLVER_SOLVABLE_PROVIDES, id);
+ queue_push2(job, SOLVER_INSTALL|SOLVER_ORUPDATE|SOLVER_SOLVABLE_PROVIDES, id);
}
continue;
}
s->name = pool_str2id(pool, p, 1);
continue;
}
+ if (!strcmp(buf, "provides"))
+ {
+ s->provides = makedeps(s->repo, p, s->provides, 0);
+ continue;
+ }
break;
case 'r':
if (!strcmp(buf, "depends"))