This file contains the major changes between
libsolv versions:
+Version 0.6.21
+- new features:
+ * SOLVER_FAVOR and SOLVER_DISFAVOR job types
+- new functions:
+ * selection_make_matchdepid
+ * pool_whatcontainsdep
+ * pool_parserpmrichdep
+
+Version 0.6.20
+- new features:
+ * filter Requires(pre,post) for installed packages
+
+Version 0.6.13:
+- new features:
+ * SOLVER_ALLOWUNINSTALL job type
+ * ordercycle introspection
+- new functions:
+ * transaction_order_get_cycle
+ * transaction_order_get_cycleids
+
Version 0.6.12:
- new features:
* tcl bindings
SET(LIBSOLV_MAJOR "0")
SET(LIBSOLV_MINOR "6")
-SET(LIBSOLV_PATCH "21")
+SET(LIBSOLV_PATCH "22")
acnt = solver_alternatives_count(solv);
if (acnt)
{
- printf("Have %d alternatives\n\n", acnt);
+ if (acnt == 1)
+ printf("Have one alternative:\n");
+ else
+ printf("Have %d alternatives:\n", acnt);
+ for (i = 1; i <= acnt; i++)
+ {
+ Id id, from;
+ int atype = solver_get_alternative(solv, i, &id, &from, 0, 0, 0);
+ printf(" - %s\n", solver_alternative2str(solv, atype, id, from));
+ }
+ printf("\n");
answer = yesno("OK to continue (y/n/a)? ", 'a');
}
else
/* 4: fixed triggers */
/* 5: fixed checksum copying */
/* 6: add SOLVABLE_PREREQ_IGNOREINST support */
-#define RPMDB_COOKIE_VERSION 6
+/* 7: fix bug in ignoreinst logic */
+#define RPMDB_COOKIE_VERSION 7
#define TAG_NAME 1000
#define TAG_VERSION 1001
solv_free(n);
solv_free(v);
solv_free(f);
- if (has_ign && ignq->count > 2)
+ if (ignq && ignq->count)
{
- Id id, lastid = 0;
- int j;
-
- solv_sort(ignq->elements, ignq->count / 2, sizeof(Id) * 2, ignq_sortcmp, 0);
- for (i = j = 0; i < ignq->count; i += 2)
+ int j = 0;
+ if (has_ign && ignq->count == 2)
+ j = 1;
+ else if (has_ign)
{
- id = ignq->elements[i];
- if (id != lastid && ignq->elements[i + 1] > 0)
- ignq->elements[j++] = id;
- lastid = id;
+ Id id, lastid = 0;
+
+ solv_sort(ignq->elements, ignq->count / 2, sizeof(Id) * 2, ignq_sortcmp, 0);
+ for (i = j = 0; i < ignq->count; i += 2)
+ {
+ id = ignq->elements[i];
+ if (id != lastid && ignq->elements[i + 1] > 0)
+ ignq->elements[j++] = id;
+ lastid = id;
+ }
}
queue_truncate(ignq, j);
}
-------------------------------------------------------------------
+Tue Jun 7 11:24:47 CEST 2016 - mls@suse.de
+
+- fix bug in bug in ignoreinst logic [bnc#983141]
+
+-------------------------------------------------------------------
Wed May 18 15:09:56 CEST 2016 - mls@suse.de
- add pool->setdisttype to the bindings
- add SOLVER_FAVOR and SOLVER_DISFAVOR job types
- allow unknown archs in pool_setarch
- add the SOLVER_FLAG_URPM_REORDER solver flag
-- fix segfault in cshash dedup code
+- fix segfault in cshash dedup code [bnc#980901]
- fix supplements handling when implicitobsoleteusescolors is set
- bump version to 0.6.21
if (knid)
{
FOR_PROVIDES(p, pp, knid)
- if (solv->decisionmap[p] > 0 || (pool->installed && pool->solvables[p].repo == pool->installed))
- score = 3;
+ {
+ if (solv->decisionmap[p] > 0)
+ {
+ score = 4;
+ break;
+ }
+ else if (pool->installed && pool->solvables[p].repo == pool->installed)
+ score = 3;
+ }
}
}
}
if (knid)
{
FOR_PROVIDES(p, pp, knid)
- if (solv->decisionmap[p] > 0 || (pool->installed && pool->solvables[p].repo == pool->installed))
- score = 3;
+ {
+ if (solv->decisionmap[p] > 0)
+ {
+ score = 4;
+ break;
+ }
+ if (pool->installed && pool->solvables[p].repo == pool->installed)
+ score = 3;
+ }
}
}
}
{
score = 0;
FOR_PROVIDES(p, pp, id)
- if (solv->decisionmap[p] > 0 || (pool->installed && pool->solvables[p].repo == pool->installed))
- score = 3;
+ {
+ if (solv->decisionmap[p] > 0)
+ {
+ score = 4;
+ break;
+ }
+ if (pool->installed && pool->solvables[p].repo == pool->installed)
+ score = 3;
+ }
break;
}
}