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 - [email protected]
+
+- 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 - [email protected]
+
+- 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 - [email protected]
 
 - 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)
     {


Reply via email to