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;
 }

Reply via email to