Hello community, here is the log from the commit of package libsolv for openSUSE:Factory checked in at 2016-06-13 21:51:00 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libsolv (Old) and /work/SRC/openSUSE:Factory/.libsolv.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libsolv" Changes: -------- --- /work/SRC/openSUSE:Factory/libsolv/libsolv.changes 2016-06-05 14:17:22.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.libsolv.new/libsolv.changes 2016-06-13 21:51:01.000000000 +0200 @@ -1,0 +2,5 @@ +Tue Jun 7 11:24:47 CEST 2016 - m...@suse.de + +- fix bug in ignoreinst logic [bnc#983141] + +------------------------------------------------------------------- Old: ---- libsolv-0.6.21.tar.bz2 New: ---- libsolv-0.6.22.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libsolv.spec ++++++ --- /var/tmp/diff_new_pack.zZ0mWl/_old 2016-06-13 21:51:02.000000000 +0200 +++ /var/tmp/diff_new_pack.zZ0mWl/_new 2016-06-13 21:51:02.000000000 +0200 @@ -17,7 +17,7 @@ Name: libsolv -Version: 0.6.21 +Version: 0.6.22 Release: 0 Url: https://github.com/openSUSE/libsolv Source: libsolv-%{version}.tar.bz2 ++++++ libsolv-0.6.21.tar.bz2 -> libsolv-0.6.22.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsolv-0.6.21/NEWS new/libsolv-0.6.22/NEWS --- old/libsolv-0.6.21/NEWS 2016-02-11 17:01:33.000000000 +0100 +++ new/libsolv-0.6.22/NEWS 2016-06-08 13:26:04.000000000 +0200 @@ -2,6 +2,26 @@ 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 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsolv-0.6.21/VERSION.cmake new/libsolv-0.6.22/VERSION.cmake --- old/libsolv-0.6.21/VERSION.cmake 2016-05-18 15:16:10.000000000 +0200 +++ new/libsolv-0.6.22/VERSION.cmake 2016-06-08 13:26:04.000000000 +0200 @@ -49,5 +49,5 @@ SET(LIBSOLV_MAJOR "0") SET(LIBSOLV_MINOR "6") -SET(LIBSOLV_PATCH "21") +SET(LIBSOLV_PATCH "22") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsolv-0.6.21/ext/repo_rpmdb.c new/libsolv-0.6.22/ext/repo_rpmdb.c --- old/libsolv-0.6.21/ext/repo_rpmdb.c 2016-05-06 14:16:01.000000000 +0200 +++ new/libsolv-0.6.22/ext/repo_rpmdb.c 2016-06-07 11:06:06.000000000 +0200 @@ -55,7 +55,8 @@ /* 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 @@ -588,18 +589,23 @@ 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); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsolv-0.6.21/package/libsolv.changes new/libsolv-0.6.22/package/libsolv.changes --- old/libsolv-0.6.21/package/libsolv.changes 2016-05-20 15:26:11.000000000 +0200 +++ new/libsolv-0.6.22/package/libsolv.changes 2016-06-08 13:31:12.000000000 +0200 @@ -1,4 +1,9 @@ ------------------------------------------------------------------- +Tue Jun 7 11:24:47 CEST 2016 - m...@suse.de + +- fix bug in ignoreinst logic [bnc#983141] + +------------------------------------------------------------------- Wed May 18 15:09:56 CEST 2016 - m...@suse.de - add pool->setdisttype to the bindings diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsolv-0.6.21/src/policy.c new/libsolv-0.6.22/src/policy.c --- old/libsolv-0.6.21/src/policy.c 2016-05-18 14:51:00.000000000 +0200 +++ new/libsolv-0.6.22/src/policy.c 2016-06-07 11:06:06.000000000 +0200 @@ -1231,8 +1231,15 @@ 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; + } } } } @@ -1257,8 +1264,15 @@ 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; + } } } } @@ -1284,8 +1298,15 @@ { 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; } }