Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package libsolv for openSUSE:Factory checked in at 2026-09-23 14:32:17 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libsolv (Old) and /work/SRC/openSUSE:Factory/.libsolv.new.383539 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libsolv" Wed Sep 23 14:32:17 2026 rev:106 rq:1379502 version:0.7.40 Changes: -------- --- /work/SRC/openSUSE:Factory/libsolv/libsolv.changes 2026-05-31 18:28:30.248636298 +0200 +++ /work/SRC/openSUSE:Factory/.libsolv.new.383539/libsolv.changes 2026-09-23 14:32:22.794888977 +0200 @@ -1,0 +2,8 @@ +Mon Sep 21 17:07:29 CEST 2026 - Michael Schroeder <[email protected]> + +- improve SUSE product link dependency generation if there are + multiple release packages for the same product [bsc#1279541] +- fix possible segfault in the SUSE namespace dependency generation +- bump version to 0.7.39 + +------------------------------------------------------------------- Old: ---- libsolv-0.7.39.tar.bz2 New: ---- libsolv-0.7.40.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libsolv.spec ++++++ --- /var/tmp/diff_new_pack.AqUfXW/_old 2026-09-23 14:32:23.557920876 +0200 +++ /var/tmp/diff_new_pack.AqUfXW/_new 2026-09-23 14:32:23.558920917 +0200 @@ -72,7 +72,7 @@ %bcond_with zypp Name: libsolv -Version: 0.7.39 +Version: 0.7.40 Release: 0 Summary: Package dependency solver using a satisfiability algorithm License: BSD-3-Clause ++++++ libsolv-0.7.39.tar.bz2 -> libsolv-0.7.40.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsolv-0.7.39/NEWS new/libsolv-0.7.40/NEWS --- old/libsolv-0.7.39/NEWS 2026-05-28 11:40:09.000000000 +0200 +++ new/libsolv-0.7.40/NEWS 2026-09-21 17:10:04.000000000 +0200 @@ -1,6 +1,12 @@ This file contains the major changes between libsolv versions: +Version 0.7.40 +- selected bug fixes: + * improve SUSE product link dependency generation if there are + multiple release packages for the same product + * fix possible segfault in the SUSE namespace dependency generation + Version 0.7.39 - selected bug fixes: * fix solv_chksum_free segfault when called with a NULL pointer diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsolv-0.7.39/VERSION.cmake new/libsolv-0.7.40/VERSION.cmake --- old/libsolv-0.7.39/VERSION.cmake 2026-05-28 11:40:09.000000000 +0200 +++ new/libsolv-0.7.40/VERSION.cmake 2026-09-21 17:10:04.000000000 +0200 @@ -49,5 +49,5 @@ SET(LIBSOLV_MAJOR "0") SET(LIBSOLV_MINOR "7") -SET(LIBSOLV_PATCH "39") +SET(LIBSOLV_PATCH "40") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsolv-0.7.39/ext/solv_xmlparser.c new/libsolv-0.7.40/ext/solv_xmlparser.c --- old/libsolv-0.7.39/ext/solv_xmlparser.c 2026-05-06 16:10:06.000000000 +0200 +++ new/libsolv-0.7.40/ext/solv_xmlparser.c 2026-08-03 17:28:25.000000000 +0200 @@ -291,7 +291,7 @@ } if (xmlParseChunk(xmlp->parser, buf, l, l == 0 ? 1 : 0)) { - xmlErrorPtr err = xmlCtxtGetLastError(xmlp->parser); + const xmlError *err = xmlCtxtGetLastError(xmlp->parser); set_error(xmlp, err->message, err->line, err->int2); return 0; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsolv-0.7.39/package/libsolv.changes new/libsolv-0.7.40/package/libsolv.changes --- old/libsolv-0.7.39/package/libsolv.changes 2026-05-28 11:40:09.000000000 +0200 +++ new/libsolv-0.7.40/package/libsolv.changes 2026-09-21 17:10:04.000000000 +0200 @@ -1,4 +1,12 @@ ------------------------------------------------------------------- +Mon Sep 21 17:07:29 CEST 2026 - Michael Schroeder <[email protected]> + +- improve SUSE product link dependency generation if there are + multiple release packages for the same product [bsc#1279541] +- fix possible segfault in the SUSE namespace dependency generation +- bump version to 0.7.39 + +------------------------------------------------------------------- Thu May 28 11:28:50 CEST 2026 - Michael Schroeder <[email protected]> - fix solv_chksum_free segfault when called with a NULL pointer diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsolv-0.7.39/src/chksum.h new/libsolv-0.7.40/src/chksum.h --- old/libsolv-0.7.39/src/chksum.h 2026-04-28 14:40:08.000000000 +0200 +++ new/libsolv-0.7.40/src/chksum.h 2026-08-03 17:28:25.000000000 +0200 @@ -18,6 +18,7 @@ typedef struct s_Chksum Chksum; Chksum *solv_chksum_create_from_bin(Id type, const unsigned char *buf); +Chksum *solv_chksum_create_clone(Chksum *chk); Id solv_chksum_get_type(Chksum *chk); int solv_chksum_isfinished(Chksum *chk); const unsigned char *solv_chksum_get(Chksum *chk, int *lenp); @@ -26,11 +27,9 @@ Id solv_chksum_str2type(const char *str); int solv_chksum_len(Id type); int solv_chksum_cmp(Chksum *chk, Chksum *chk2); -Chksum *solv_chksum_create_finished_clone(Chksum *chk); /* implementation */ Chksum *solv_chksum_create(Id type); -Chksum *solv_chksum_create_clone(Chksum *chk); void solv_chksum_add(Chksum *chk, const void *data, int len); #define SOLV_CHKSUM_MAXLEN 64 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsolv-0.7.39/src/linkedpkg.c new/libsolv-0.7.40/src/linkedpkg.c --- old/libsolv-0.7.39/src/linkedpkg.c 2023-07-19 11:52:42.000000000 +0200 +++ new/libsolv-0.7.40/src/linkedpkg.c 2026-09-21 16:50:04.000000000 +0200 @@ -127,6 +127,7 @@ Id p, pp, namerelid; char *str; unsigned int sbt = 0; + Id autoprovid = 0; /* search for project requires */ namerelid = 0; @@ -166,7 +167,22 @@ } if (qr->count > 1) { - /* multiple providers. try buildtime filter */ + /* multiple providers. use autoproduct() provides as filter if available */ + autoprovid = find_autopackage_name(pool, s); + if (autoprovid) + { + int i, j; + for (i = j = 0; i < qr->count; i++) + { + if (pool->solvables[qr->elements[i]].name == autoprovid) + qr->elements[j++] = qr->elements[i]; + } + if (j) + qr->count = j; + else + autoprovid = 0; /* can't filter */ + } + /* also try buildtime filter */ sbt = solvable_lookup_num(s, SOLVABLE_BUILDTIME, 0); if (sbt) { @@ -221,6 +237,8 @@ Solvable *ps = pool->solvables + p; if (s->name != ps->name || ps->repo != s->repo || ps->arch != s->arch || s->evr != ps->evr) continue; + if (autoprovid && find_autopackage_name(pool, ps) != autoprovid) + continue; if (sbt && solvable_lookup_num(ps, SOLVABLE_BUILDTIME, 0) != sbt) continue; queue_push(qp, p); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsolv-0.7.39/src/suse.c new/libsolv-0.7.40/src/suse.c --- old/libsolv-0.7.39/src/suse.c 2026-04-29 12:30:07.000000000 +0200 +++ new/libsolv-0.7.40/src/suse.c 2026-08-03 17:28:25.000000000 +0200 @@ -94,9 +94,10 @@ rd = GETRELDEP(pool, id); if (rd->flags == REL_AND || rd->flags == REL_OR || rd->flags == REL_COND || rd->flags == REL_UNLESS || rd->flags == REL_ELSE) { - Id name = fix_namespace_dep(pool, rd->name); - Id evr = fix_namespace_dep(pool, rd->evr); - return name == rd->name && evr == rd->evr ? id : pool_rel2id(pool, name, evr, rd->flags, 1); + Id name = rd->name, evr = rd->evr, flags = rd->flags; + Id newname = fix_namespace_dep(pool, name); + Id newevr = fix_namespace_dep(pool, evr); + return newname == name && newevr == evr ? id : pool_rel2id(pool, newname, newevr, flags, 1); } return id; }
