parent
179b453ab7
commit
2655d27ea1
15
src/solver.c
15
src/solver.c
|
@ -482,7 +482,7 @@ static void calculate_pkg_preference(struct apk_package *pkg)
|
||||||
struct apk_name *name = pkg->name;
|
struct apk_name *name = pkg->name;
|
||||||
struct apk_package_state *ps = pkg_to_ps(pkg);
|
struct apk_package_state *ps = pkg_to_ps(pkg);
|
||||||
struct apk_provider p = APK_PROVIDER_FROM_PACKAGE(pkg);
|
struct apk_provider p = APK_PROVIDER_FROM_PACKAGE(pkg);
|
||||||
int i;
|
int i, j;
|
||||||
|
|
||||||
for (i = 0; i < name->providers->num; i++) {
|
for (i = 0; i < name->providers->num; i++) {
|
||||||
struct apk_provider *p0 = &name->providers->item[i];
|
struct apk_provider *p0 = &name->providers->item[i];
|
||||||
|
@ -491,7 +491,18 @@ static void calculate_pkg_preference(struct apk_package *pkg)
|
||||||
if (compare_absolute_package_preference(&p, p0) < 0)
|
if (compare_absolute_package_preference(&p, p0) < 0)
|
||||||
ps->preference++;
|
ps->preference++;
|
||||||
}
|
}
|
||||||
/* FIXME: consider all provided names too */
|
for (i = 0; i < pkg->provides->num; i++) {
|
||||||
|
struct apk_dependency *d0 = &pkg->provides->item[i];
|
||||||
|
if (d0->version == &apk_null_blob)
|
||||||
|
continue;
|
||||||
|
for (j = 0; j < d0->name->providers->num; j++) {
|
||||||
|
struct apk_provider *p0 = &d0->name->providers->item[j];
|
||||||
|
if (pkg == p0->pkg)
|
||||||
|
continue;
|
||||||
|
if (compare_absolute_package_preference(&p, p0) < 0)
|
||||||
|
ps->preference++;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void count_name(struct apk_solver_state *ss, struct apk_name *name)
|
static void count_name(struct apk_solver_state *ss, struct apk_name *name)
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
@ARGS
|
||||||
|
--test-repo provides.repo
|
||||||
|
add server-a server-b
|
||||||
|
@EXPECT
|
||||||
|
ERROR: 1 unsatisfiable dependencies:
|
||||||
|
world: server-a
|
Loading…
Reference in New Issue