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 */
