Hello community, here is the log from the commit of package libsolv for openSUSE:Factory checked in at 2016-02-07 09:21:32 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 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-01-05 09:40:31.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.libsolv.new/libsolv.changes 2016-02-07 09:21:32.000000000 +0100 @@ -1,0 +2,7 @@ +Fri Jan 29 14:17:26 CET 2016 - mls@suse.de + +- fix rule generation for linked packages [bnc#961738] +- add hash method in bindings for some classes +- bump version to 0.6.18 + +------------------------------------------------------------------- Old: ---- libsolv-0.6.17.tar.bz2 New: ---- libsolv-0.6.18.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libsolv.spec ++++++ --- /var/tmp/diff_new_pack.AJLFCh/_old 2016-02-07 09:21:33.000000000 +0100 +++ /var/tmp/diff_new_pack.AJLFCh/_new 2016-02-07 09:21:33.000000000 +0100 @@ -1,7 +1,7 @@ # # spec file for package libsolv # -# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,7 +17,7 @@ Name: libsolv -Version: 0.6.17 +Version: 0.6.18 Release: 0 Url: https://github.com/openSUSE/libsolv Source: libsolv-%{version}.tar.bz2 ++++++ libsolv-0.6.17.tar.bz2 -> libsolv-0.6.18.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsolv-0.6.17/VERSION.cmake new/libsolv-0.6.18/VERSION.cmake --- old/libsolv-0.6.17/VERSION.cmake 2015-12-22 11:50:56.000000000 +0100 +++ new/libsolv-0.6.18/VERSION.cmake 2016-01-29 14:20:43.000000000 +0100 @@ -49,5 +49,5 @@ SET(LIBSOLV_MAJOR "0") SET(LIBSOLV_MINOR "6") -SET(LIBSOLV_PATCH "17") +SET(LIBSOLV_PATCH "18") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsolv-0.6.17/bindings/solv.i new/libsolv-0.6.18/bindings/solv.i --- old/libsolv-0.6.17/bindings/solv.i 2015-09-21 13:50:30.000000000 +0200 +++ new/libsolv-0.6.18/bindings/solv.i 2016-01-29 14:10:44.000000000 +0100 @@ -2189,6 +2189,11 @@ bool __ne__(Repo *repo) { return $self != repo; } +#if defined(SWIGPYTHON) + int __hash__() { + return $self->repoid; + } +#endif #if defined(SWIGPERL) || defined(SWIGTCL) %rename("str") __str__; #endif @@ -2708,6 +2713,11 @@ bool __ne__(Dep *s) { return !Dep___eq__($self, s); } +#if defined(SWIGPYTHON) + int __hash__() { + return $self->id; + } +#endif #if defined(SWIGPERL) || defined(SWIGTCL) %rename("str") __str__; #endif @@ -2955,6 +2965,11 @@ bool __ne__(XSolvable *s) { return !XSolvable___eq__($self, s); } +#if defined(SWIGPYTHON) + int __hash__() { + return $self->id; + } +#endif #if defined(SWIGPERL) || defined(SWIGTCL) %rename("str") __str__; #endif @@ -3629,6 +3644,11 @@ bool __ne__(XRule *xr) { return !XRule___eq__($self, xr); } +#if defined(SWIGPYTHON) + int __hash__() { + return $self->id; + } +#endif #if defined(SWIGPERL) || defined(SWIGTCL) %rename("repr") __repr__; #endif @@ -3754,6 +3774,11 @@ bool __ne__(XRepodata *xr) { return !XRepodata___eq__($self, xr); } +#if defined(SWIGPYTHON) + int __hash__() { + return $self->id; + } +#endif #if defined(SWIGPERL) || defined(SWIGTCL) %rename("repr") __repr__; #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsolv-0.6.17/package/libsolv.changes new/libsolv-0.6.18/package/libsolv.changes --- old/libsolv-0.6.17/package/libsolv.changes 2015-12-22 11:50:56.000000000 +0100 +++ new/libsolv-0.6.18/package/libsolv.changes 2016-01-29 14:20:43.000000000 +0100 @@ -1,4 +1,11 @@ ------------------------------------------------------------------- +Fri Jan 29 14:17:26 CET 2016 - mls@suse.de + +- fix rule generation for linked packages [bnc#961738] +- add hash method in bindings for some classes +- bump version to 0.6.18 + +------------------------------------------------------------------- Tue Dec 22 11:49:02 CET 2015 - mls@suse.de - fix update handling of multiversion packages [bnc#957606] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsolv-0.6.17/src/rules.c new/libsolv-0.6.18/src/rules.c --- old/libsolv-0.6.17/src/rules.c 2015-12-22 11:50:56.000000000 +0100 +++ new/libsolv-0.6.18/src/rules.c 2016-01-15 16:20:57.000000000 +0100 @@ -417,6 +417,19 @@ #ifdef ENABLE_LINKED_PKGS +static int +addlinks_cmp(const void *ap, const void *bp, void *dp) +{ + Pool *pool = dp; + Id a = *(Id *)ap; + Id b = *(Id *)bp; + Solvable *sa = pool->solvables + a; + Solvable *sb = pool->solvables + b; + if (sa->name != sb->name) + return sa->name - sb->name; + return sa - sb; +} + static void addlinks(Solver *solv, Solvable *s, Id req, Queue *qr, Id prv, Queue *qp, Map *m, Queue *workq) { @@ -424,6 +437,8 @@ int i; if (!qr->count) return; + if (qp->count > 1) + solv_sort(qp->elements, qp->count, sizeof(Id), addlinks_cmp, pool); #if 0 printf("ADDLINKS %s\n -> %s\n", pool_solvable2str(pool, s), pool_dep2str(pool, req)); for (i = 0; i < qr->count; i++) @@ -439,9 +454,17 @@ addpkgrule(solv, -(s - pool->solvables), 0, pool_queuetowhatprovides(pool, qr), SOLVER_RULE_PKG_REQUIRES, req); if (qp->count > 1) { - Id d = pool_queuetowhatprovides(pool, qp); - for (i = 0; i < qr->count; i++) - addpkgrule(solv, -qr->elements[i], 0, d, SOLVER_RULE_PKG_REQUIRES, prv); + int j; + for (i = j = 0; i < qp->count; i = j) + { + Id d = pool->solvables[qp->elements[i]].name; + for (j = i + 1; j < qp->count; j++) + if (d != pool->solvables[qp->elements[j]].name) + break; + d = pool_ids2whatprovides(pool, qp->elements + i, j - i); + for (i = 0; i < qr->count; i++) + addpkgrule(solv, -qr->elements[i], 0, d, SOLVER_RULE_PKG_REQUIRES, prv); + } } else if (qp->count) {