Hello community,

here is the log from the commit of package libsolv for openSUSE:Factory checked 
in at 2018-03-14 19:21:36
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libsolv (Old)
 and      /work/SRC/openSUSE:Factory/.libsolv.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libsolv"

Wed Mar 14 19:21:36 2018 rev:63 rq:584005 version:0.6.33

Changes:
--------
--- /work/SRC/openSUSE:Factory/libsolv/libsolv.changes  2018-02-18 
11:38:19.238310203 +0100
+++ /work/SRC/openSUSE:Factory/.libsolv.new/libsolv.changes     2018-03-14 
19:21:37.154316148 +0100
@@ -1,0 +2,13 @@
+Thu Mar  1 10:52:23 CET 2018 - [email protected]
+
+- also use suggests for ordering packages [bnc#1077635]
+
+-------------------------------------------------------------------
+Wed Feb 28 16:29:55 CET 2018 - [email protected]
+
+- fix bad assignment in solution refinement that led
+  to a memory leak [bnc#1075978]
+- use license tag instead of doc in the spec file [bnc#1082318]
+- bump version to 0.6.33
+
+-------------------------------------------------------------------

Old:
----
  libsolv-0.6.32.tar.bz2

New:
----
  libsolv-0.6.33.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ libsolv.spec ++++++
--- /var/tmp/diff_new_pack.oeKtO1/_old  2018-03-14 19:21:38.442270422 +0100
+++ /var/tmp/diff_new_pack.oeKtO1/_new  2018-03-14 19:21:38.442270422 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           libsolv
-Version:        0.6.32
+Version:        0.6.33
 Release:        0
 Url:            https://github.com/openSUSE/libsolv
 Source:         libsolv-%{version}.tar.bz2
@@ -263,7 +263,7 @@
 
 %files -n libsolv0
 %defattr(-,root,root)
-%doc LICENSE*
+%license LICENSE*
 %{_libdir}/libsolv.so.*
 %{_libdir}/libsolvext.so.*
 %endif

++++++ libsolv-0.6.32.tar.bz2 -> libsolv-0.6.33.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libsolv-0.6.32/NEWS new/libsolv-0.6.33/NEWS
--- old/libsolv-0.6.32/NEWS     2018-02-13 11:54:09.000000000 +0100
+++ new/libsolv-0.6.33/NEWS     2018-02-28 16:32:40.000000000 +0100
@@ -2,6 +2,11 @@
 This file contains the major changes between
 libsolv versions:
 
+Version 0.6.33
+- new features:
+  * new Selection.clone() method in the bindings
+  * new pool.parserpmrichdep() method in the bindings
+
 Version 0.6.32
 - fixed bug that could make fileconflict detection very slow
   in some cases
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libsolv-0.6.32/VERSION.cmake 
new/libsolv-0.6.33/VERSION.cmake
--- old/libsolv-0.6.32/VERSION.cmake    2018-02-13 11:54:09.000000000 +0100
+++ new/libsolv-0.6.33/VERSION.cmake    2018-02-28 16:32:40.000000000 +0100
@@ -49,5 +49,5 @@
 
 SET(LIBSOLV_MAJOR "0")
 SET(LIBSOLV_MINOR "6")
-SET(LIBSOLV_PATCH "32")
+SET(LIBSOLV_PATCH "33")
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libsolv-0.6.32/bindings/solv.i 
new/libsolv-0.6.33/bindings/solv.i
--- old/libsolv-0.6.32/bindings/solv.i  2018-01-18 13:29:06.000000000 +0100
+++ new/libsolv-0.6.33/bindings/solv.i  2018-02-28 16:27:43.000000000 +0100
@@ -665,6 +665,9 @@
 #ifdef SUSE
 #include "repo_autopattern.h"
 #endif
+#if defined(ENABLE_COMPLEX_DEPS) && (defined(ENABLE_SUSEREPO) || 
defined(ENABLE_RPMMD) || defined(ENABLE_RPMDB) || defined(ENABLE_RPMPKG))
+#include "pool_parserpmrichdep.h"
+#endif
 #include "solv_xfopen.h"
 #include "testcase.h"
 
@@ -1295,12 +1298,10 @@
     return $self->q.count == 0;
   }
   %newobject clone;
-  Selection *clone(Selection *from, int flags = 0) { 
-    Selection *s;
-    s = solv_calloc(1, sizeof(*s));
-    s->pool = from->pool;
-    s->flags = from->flags;
-    queue_init_clone(&s->q, &from->q);
+  Selection *clone(int flags = 0) {
+    Selection *s = new_Selection($self->pool);
+    queue_init_clone(&s->q, &$self->q);
+    s->flags = $self->flags;
     return s;
   }
   void filter(Selection *lsel) {
@@ -1729,6 +1730,13 @@
     Id id = pool_str2id($self, str, create);
     return new_Dep($self, id);
   }
+#if defined(ENABLE_COMPLEX_DEPS) && (defined(ENABLE_SUSEREPO) || 
defined(ENABLE_RPMMD) || defined(ENABLE_RPMDB) || defined(ENABLE_RPMPKG))
+  %newobject Dep;
+  Dep *parserpmrichdep(const char *str) {
+    Id id = pool_parserpmrichdep($self, str);
+    return new_Dep($self, id);
+  }
+#endif
   const char *id2str(Id id) {
     return pool_id2str($self, id);
   }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libsolv-0.6.32/doc/gen/libsolv-bindings.3 
new/libsolv-0.6.33/doc/gen/libsolv-bindings.3
--- old/libsolv-0.6.32/doc/gen/libsolv-bindings.3       2018-01-18 
13:29:06.000000000 +0100
+++ new/libsolv-0.6.33/doc/gen/libsolv-bindings.3       2018-02-28 
16:27:43.000000000 +0100
@@ -2,12 +2,12 @@
 .\"     Title: Libsolv-Bindings
 .\"    Author: [see the "Author" section]
 .\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
-.\"      Date: 01/18/2018
+.\"      Date: 02/28/2018
 .\"    Manual: LIBSOLV
 .\"    Source: libsolv
 .\"  Language: English
 .\"
-.TH "LIBSOLV\-BINDINGS" "3" "01/18/2018" "libsolv" "LIBSOLV"
+.TH "LIBSOLV\-BINDINGS" "3" "02/28/2018" "libsolv" "LIBSOLV"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
@@ -3167,7 +3167,7 @@
 .RS 4
 .\}
 .nf
-\fBint flags()\fR;
+\fBint flags()\fR
 my \fI$flags\fR \fB=\fR \fI$sel\fR\fB\->flags()\fR;
 \fIflags\fR \fB=\fR \fIsel\fR\fB\&.flags()\fR
 \fIflags\fR \fB=\fR \fIsel\fR\fB\&.flags()\fR
@@ -3182,7 +3182,7 @@
 .RS 4
 .\}
 .nf
-\fBbool isempty()\fR;
+\fBbool isempty()\fR
 \fI$sel\fR\fB\->isempty()\fR
 \fIsel\fR\fB\&.isempty()\fR
 \fIsel\fR\fB\&.isempty?\fR
@@ -3195,6 +3195,21 @@
 .sp
 .if n \{\
 .RS 4
+.\}
+.nf
+\fBSelection clone(int\fR \fIflags\fR \fB= 0)\fR
+my \fI$cloned\fR \fB=\fR \fI$sel\fR\fB\->clone()\fR;
+\fIcloned\fR \fB=\fR \fIsel\fR\fB\&.clone()\fR
+\fIcloned\fR \fB=\fR \fIsel\fR\fB\&.clone()\fR
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+Return a copy of a selection\&.
+.sp
+.if n \{\
+.RS 4
 .\}
 .nf
 \fBvoid filter(Selection *\fR\fIother\fR\fB)\fR
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libsolv-0.6.32/doc/libsolv-bindings.txt 
new/libsolv-0.6.33/doc/libsolv-bindings.txt
--- old/libsolv-0.6.32/doc/libsolv-bindings.txt 2018-01-18 13:29:06.000000000 
+0100
+++ new/libsolv-0.6.33/doc/libsolv-bindings.txt 2018-02-28 16:27:43.000000000 
+0100
@@ -1782,7 +1782,7 @@
 
 === METHODS ===
 
-       int flags();
+       int flags()
        my $flags = $sel->flags();
        flags = sel.flags()
        flags = sel.flags()
@@ -1795,13 +1795,20 @@
 if there was a package that matched the name or not. If there was
 no match at all, the flags will be zero.
 
-       bool isempty();
+       bool isempty()
        $sel->isempty()
        sel.isempty()
        sel.isempty?
 
 Return true if the selection is empty, i.e. no package could be matched.
 
+       Selection clone(int flags = 0)
+       my $cloned = $sel->clone();
+       cloned = sel.clone()
+       cloned = sel.clone()
+
+Return a copy of a selection.
+
        void filter(Selection *other)
        $sel->filter($other);
        sel.filter(other)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libsolv-0.6.32/ext/repo_rpmdb.c 
new/libsolv-0.6.33/ext/repo_rpmdb.c
--- old/libsolv-0.6.32/ext/repo_rpmdb.c 2018-01-31 11:19:06.000000000 +0100
+++ new/libsolv-0.6.33/ext/repo_rpmdb.c 2018-02-19 11:59:17.000000000 +0100
@@ -446,7 +446,12 @@
 static unsigned char *
 headbinary(RpmHead *h, int tag, unsigned int *sizep)
 {
-  return headget(h, tag, (int *)sizep, 0);
+  unsigned char *b = headget(h, tag, (int *)sizep, 0);
+  if (b && sizep && (tag == TAG_SIGMD5 || tag == SIGTAG_MD5) && *sizep > 16) {
+    /* due to a bug in rpm the count may be bigger if HEADERIMPORT_FAST is 
used */
+    *sizep = 16;
+  }
+  return b;
 }
 
 static int
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libsolv-0.6.32/package/libsolv.changes 
new/libsolv-0.6.33/package/libsolv.changes
--- old/libsolv-0.6.32/package/libsolv.changes  2018-02-16 14:04:15.000000000 
+0100
+++ new/libsolv-0.6.33/package/libsolv.changes  2018-03-01 11:06:18.000000000 
+0100
@@ -1,4 +1,17 @@
 -------------------------------------------------------------------
+Thu Mar  1 10:52:23 CET 2018 - [email protected]
+
+- also use suggests for ordering packages [bnc#1077635]
+
+-------------------------------------------------------------------
+Wed Feb 28 16:29:55 CET 2018 - [email protected]
+
+- fix bad assignment in solution refinement that led
+  to a memory leak [bnc#1075978]
+- use license tag instead of doc in the spec file [bnc#1082318]
+- bump version to 0.6.33
+
+-------------------------------------------------------------------
 Tue Feb 13 11:51:11 CET 2018 - [email protected]
 
 - fixed bug that could make fileconflict detection very slow
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libsolv-0.6.32/package/libsolv.spec.in 
new/libsolv-0.6.33/package/libsolv.spec.in
--- old/libsolv-0.6.32/package/libsolv.spec.in  2017-10-24 14:44:06.000000000 
+0200
+++ new/libsolv-0.6.33/package/libsolv.spec.in  2018-02-28 16:27:43.000000000 
+0100
@@ -260,7 +260,7 @@
 
 %files -n libsolv@LIBSOLV_SOVERSION@
 %defattr(-,root,root)
-%doc LICENSE*
+%license LICENSE*
 %{_libdir}/libsolv.so.*
 %{_libdir}/libsolvext.so.*
 %endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libsolv-0.6.32/src/order.c 
new/libsolv-0.6.33/src/order.c
--- old/libsolv-0.6.32/src/order.c      2017-10-16 14:04:08.000000000 +0200
+++ new/libsolv-0.6.33/src/order.c      2018-03-01 11:06:18.000000000 +0100
@@ -43,10 +43,11 @@
 #define TYPE_REQ_P     (1<<2)
 #define TYPE_PREREQ_P  (1<<3)
 
-#define TYPE_REC       (1<<4)
+#define TYPE_SUG       (1<<4)
+#define TYPE_REC       (1<<5)
 
-#define TYPE_REQ       (1<<5)
-#define TYPE_PREREQ    (1<<6)
+#define TYPE_REQ       (1<<6)
+#define TYPE_PREREQ    (1<<7)
 
 #define TYPE_CYCLETAIL  (1<<16)
 #define TYPE_CYCLEHEAD  (1<<17)
@@ -247,7 +248,6 @@
 {
   Transaction *trans = od->trans;
   Pool *pool = trans->pool;
-  Id req, *reqp, con, *conp, rec, *recp;
   Id p, p2, pp2;
   int i, j, pre, numins;
   Repo *installed = pool->installed;
@@ -262,6 +262,7 @@
   queue_init(&depq);
   if (s->requires)
     {
+      Id req, *reqp;
       reqp = s->repo->idarraydata + s->requires;
       pre = TYPE_REQ;
       while ((req = *reqp++) != 0)
@@ -385,6 +386,7 @@
     }
   if (s->conflicts)
     {
+      Id con, *conp;
       conp = s->repo->idarraydata + s->conflicts;
       while ((con = *conp++) != 0)
        {
@@ -423,6 +425,7 @@
     }
   if (s->recommends && s->repo != installed)
     {
+      Id rec, *recp;
       recp = s->repo->idarraydata + s->recommends;
       while ((rec = *recp++) != 0)
        {
@@ -454,6 +457,41 @@
                }
            }
        }
+    }
+  if (s->suggests && s->repo != installed)
+    {
+      Id sug, *sugp;
+      sugp = s->repo->idarraydata + s->suggests;
+      while ((sug = *sugp++) != 0)
+       {
+         queue_empty(&depq);
+         FOR_PROVIDES(p2, pp2, sug)
+           {
+             s2 = pool->solvables + p2;
+             if (p2 == p)
+               {
+                 depq.count = 0;       /* self provides */
+                 break;
+               }
+             if (s2->repo == installed && !MAPTST(&trans->transactsmap, p2))
+               continue;
+             if (s2->repo != installed && !MAPTST(&trans->transactsmap, p2))
+               continue;               /* package stays uninstalled */
+             if (s2->repo != installed)
+               queue_pushunique(&depq, p2);
+           }
+          for (i = 0; i < depq.count; i++)
+           {
+             p2 = depq.elements[i];
+             if (pool->solvables[p2].repo != installed)
+               {
+#if 0
+                 printf("add suggests inst->inst edge (%s -> %s -> %s)\n", 
pool_solvid2str(pool, p), pool_dep2str(pool, sug), pool_solvid2str(pool, p2));
+#endif
+                 addedge(od, p, p2, TYPE_SUG);
+               }
+           }
+       }
     }
   if (s->repo == installed && solvable_lookup_idarray(s, SOLVABLE_TRIGGERS, 
&depq) && depq.count)
     {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libsolv-0.6.32/src/problems.c 
new/libsolv-0.6.33/src/problems.c
--- old/libsolv-0.6.32/src/problems.c   2017-11-07 16:18:37.000000000 +0100
+++ new/libsolv-0.6.33/src/problems.c   2018-02-27 15:03:20.000000000 +0100
@@ -773,7 +773,7 @@
   memset(&solv->problems, 0, sizeof(solv->problems));
 
   /* save branches queue */
-  branches_save = solv->problems;
+  branches_save = solv->branches;
   memset(&solv->branches, 0, sizeof(solv->branches));
 
   /* save decisionq_reason */


Reply via email to