Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package libsolv for openSUSE:Factory checked 
in at 2023-04-14 13:12:08
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libsolv (Old)
 and      /work/SRC/openSUSE:Factory/.libsolv.new.19717 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libsolv"

Fri Apr 14 13:12:08 2023 rev:89 rq:1079234 version:0.7.24

Changes:
--------
--- /work/SRC/openSUSE:Factory/libsolv/libsolv.changes  2023-01-07 
17:15:57.744812944 +0100
+++ /work/SRC/openSUSE:Factory/.libsolv.new.19717/libsolv.changes       
2023-04-14 13:12:12.199263687 +0200
@@ -1,0 +2,10 @@
+Thu Apr 13 16:03:04 CEST 2023 - [email protected]
+
+- handle learnt rules in solver_alternativeinfo()
+- support x86_64_v[234] architecture levels
+- implement decision sorting for package decisionlists
+- add back findutils requires for the libsolv-tools packagse
+  [bsc#1195633]
+- bump version to 0.7.24
+
+-------------------------------------------------------------------

Old:
----
  libsolv-0.7.23.tar.bz2

New:
----
  libsolv-0.7.24.tar.bz2

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

Other differences:
------------------
++++++ libsolv.spec ++++++
--- /var/tmp/diff_new_pack.Ewp4ai/_old  2023-04-14 13:12:12.775266981 +0200
+++ /var/tmp/diff_new_pack.Ewp4ai/_new  2023-04-14 13:12:12.779267003 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package libsolv
 #
-# Copyright (c) 2022 SUSE LLC
+# Copyright (c) 2021 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -56,7 +56,7 @@
 %bcond_with zypp
 
 Name:           libsolv
-Version:        0.7.23
+Version:        0.7.24
 Release:        0
 Summary:        Package dependency solver using a satisfiability algorithm
 License:        BSD-3-Clause
@@ -134,7 +134,6 @@
 dependencies.
 
 %endif
-
 %package devel
 Summary:        Development files for libsolv, a package solver
 Group:          Development/Libraries/C and C++
@@ -154,6 +153,7 @@
 Conflicts:      satsolver-tools-obsolete
 Obsoletes:      satsolver-tools < 0.18
 Provides:       satsolver-tools = 0.18
+Requires:       findutils
 
 %description tools
 libsolv is a library for solving packages and reading repositories.

++++++ libsolv-0.7.23.tar.bz2 -> libsolv-0.7.24.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libsolv-0.7.23/CMakeLists.txt 
new/libsolv-0.7.24/CMakeLists.txt
--- old/libsolv-0.7.23/CMakeLists.txt   2022-07-07 14:18:40.000000000 +0200
+++ new/libsolv-0.7.24/CMakeLists.txt   2023-03-13 16:49:56.000000000 +0100
@@ -1,4 +1,4 @@
-PROJECT (libsolv)
+PROJECT (libsolv C)
 
 CMAKE_MINIMUM_REQUIRED (VERSION 2.8.5)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libsolv-0.7.23/NEWS new/libsolv-0.7.24/NEWS
--- old/libsolv-0.7.23/NEWS     2022-12-13 12:54:37.000000000 +0100
+++ new/libsolv-0.7.24/NEWS     2023-04-13 16:42:03.000000000 +0200
@@ -1,6 +1,13 @@
 
 This file contains the major changes between libsolv versions:
 
+Version 0.7.24
+- selected bug fixes:
+  * handle learnt rules in solver_alternativeinfo()
+- new features:
+  * support x86_64_v[234] architecture levels
+  * implement decision sorting for package decisionlists
+
 Version 0.7.23
 - selected bug fixes:
   * fix "keep installed" jobs not disabling "best update" rules
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libsolv-0.7.23/VERSION.cmake 
new/libsolv-0.7.24/VERSION.cmake
--- old/libsolv-0.7.23/VERSION.cmake    2022-12-13 12:54:37.000000000 +0100
+++ new/libsolv-0.7.24/VERSION.cmake    2023-04-13 16:42:03.000000000 +0200
@@ -49,5 +49,5 @@
 
 SET(LIBSOLV_MAJOR "0")
 SET(LIBSOLV_MINOR "7")
-SET(LIBSOLV_PATCH "23")
+SET(LIBSOLV_PATCH "24")
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libsolv-0.7.23/bindings/solv.i 
new/libsolv-0.7.24/bindings/solv.i
--- old/libsolv-0.7.23/bindings/solv.i  2022-12-21 14:09:43.000000000 +0100
+++ new/libsolv-0.7.24/bindings/solv.i  2023-03-13 16:49:56.000000000 +0100
@@ -1693,10 +1693,14 @@
   static const int POOL_FLAG_NOINSTALLEDOBSOLETES = 
POOL_FLAG_NOINSTALLEDOBSOLETES;
   static const int POOL_FLAG_HAVEDISTEPOCH = POOL_FLAG_HAVEDISTEPOCH;
   static const int POOL_FLAG_NOOBSOLETESMULTIVERSION = 
POOL_FLAG_NOOBSOLETESMULTIVERSION;
+  static const int POOL_FLAG_ADDFILEPROVIDESFILTERED = 
POOL_FLAG_ADDFILEPROVIDESFILTERED;
+  static const int POOL_FLAG_NOWHATPROVIDESAUX = POOL_FLAG_NOWHATPROVIDESAUX;
+  static const int POOL_FLAG_WHATPROVIDESWITHDISABLED = 
POOL_FLAG_WHATPROVIDESWITHDISABLED;
   static const int DISTTYPE_RPM = DISTTYPE_RPM;
   static const int DISTTYPE_DEB = DISTTYPE_DEB;
   static const int DISTTYPE_ARCH = DISTTYPE_ARCH;
   static const int DISTTYPE_HAIKU = DISTTYPE_HAIKU;
+  static const int DISTTYPE_CONDA = DISTTYPE_CONDA;
 
   Pool() {
     Pool *pool = pool_create();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libsolv-0.7.23/doc/gen/libsolv-bindings.3 
new/libsolv-0.7.24/doc/gen/libsolv-bindings.3
--- old/libsolv-0.7.23/doc/gen/libsolv-bindings.3       2022-12-14 
17:07:05.000000000 +0100
+++ new/libsolv-0.7.24/doc/gen/libsolv-bindings.3       2023-03-13 
16:49:56.000000000 +0100
@@ -2,12 +2,12 @@
 .\"     Title: Libsolv-Bindings
 .\"    Author: [see the "Author" section]
 .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\"      Date: 12/13/2022
+.\"      Date: 01/31/2023
 .\"    Manual: LIBSOLV
 .\"    Source: libsolv
 .\"  Language: English
 .\"
-.TH "LIBSOLV\-BINDINGS" "3" "12/13/2022" "libsolv" "LIBSOLV"
+.TH "LIBSOLV\-BINDINGS" "3" "01/31/2023" "libsolv" "LIBSOLV"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
@@ -611,6 +611,16 @@
 .RS 4
 Make the addfileprovides method only add files from the standard locations 
(i\&.e\&. the \(lqbin\(rq and \(lqetc\(rq directories)\&. This is useful if you 
have only few packages that use non\-standard file dependencies, but you still 
want the fast speed that addfileprovides() generates\&.
 .RE
+.PP
+\fBPOOL_FLAG_NOWHATPROVIDESAUX\fR
+.RS 4
+Disable the creation of the auxillary whatprovides index\&. This saves a bit 
of memory but also makes the whatprovides lookups a bit slower\&.
+.RE
+.PP
+\fBPOOL_FLAG_WHATPROVIDESWITHDISABLED\fR
+.RS 4
+Make the whatprovides index also contain disabled packages\&. This means that 
you do not need to recreate the index if a package is enabled/disabled, 
i\&.e\&. the pool→considered bitmap is changed\&.
+.RE
 .SS "METHODS"
 .sp
 .if n \{\
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libsolv-0.7.23/doc/libsolv-bindings.txt 
new/libsolv-0.7.24/doc/libsolv-bindings.txt
--- old/libsolv-0.7.23/doc/libsolv-bindings.txt 2022-12-14 17:07:05.000000000 
+0100
+++ new/libsolv-0.7.24/doc/libsolv-bindings.txt 2023-03-13 16:49:56.000000000 
+0100
@@ -352,6 +352,15 @@
 dependencies, but you still want the fast speed that addfileprovides()
 generates.
 
+*POOL_FLAG_NOWHATPROVIDESAUX*::
+Disable the creation of the auxillary whatprovides index. This saves
+a bit of memory but also makes the whatprovides lookups a bit slower.
+
+*POOL_FLAG_WHATPROVIDESWITHDISABLED*::
+Make the whatprovides index also contain disabled packages. This
+means that you do not need to recreate the index if a package is
+enabled/disabled, i.e. the pool->considered bitmap is changed.
+
 === METHODS ===
 
        void free()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libsolv-0.7.23/ext/CMakeLists.txt 
new/libsolv-0.7.24/ext/CMakeLists.txt
--- old/libsolv-0.7.23/ext/CMakeLists.txt       2022-07-07 14:18:40.000000000 
+0200
+++ new/libsolv-0.7.24/ext/CMakeLists.txt       2023-03-13 16:49:56.000000000 
+0100
@@ -103,6 +103,7 @@
 ENDIF (ENABLE_CUDFREPO)
 
 IF (ENABLE_HAIKU)
+    enable_language(CXX)
     SET (libsolvext_SRCS ${libsolvext_SRCS}
        repo_haiku.cpp)
     SET (libsolvext_HEADERS ${libsolvext_HEADERS}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libsolv-0.7.23/ext/repo_conda.h 
new/libsolv-0.7.24/ext/repo_conda.h
--- old/libsolv-0.7.23/ext/repo_conda.h 2022-07-07 14:18:40.000000000 +0200
+++ new/libsolv-0.7.24/ext/repo_conda.h 2023-03-13 16:49:56.000000000 +0100
@@ -5,7 +5,24 @@
  * for further information
  */
 
+#ifndef LIBSOLV_REPO_CONDA_H
+#define LIBSOLV_REPO_CONDA_H
+
+#include <stdio.h>
+
+#include "repo.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 #define CONDA_ADD_USE_ONLY_TAR_BZ2     (1 << 8)
 #define CONDA_ADD_WITH_SIGNATUREDATA   (1 << 9)
 
 extern int repo_add_conda(Repo *repo, FILE *fp, int flags);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* LIBSOLV_REPO_CONDA_H */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libsolv-0.7.23/package/libsolv.changes 
new/libsolv-0.7.24/package/libsolv.changes
--- old/libsolv-0.7.23/package/libsolv.changes  2022-12-13 12:54:37.000000000 
+0100
+++ new/libsolv-0.7.24/package/libsolv.changes  2023-04-13 16:42:03.000000000 
+0200
@@ -1,4 +1,14 @@
 -------------------------------------------------------------------
+Thu Apr 13 16:03:04 CEST 2023 - [email protected]
+
+- handle learnt rules in solver_alternativeinfo()
+- support x86_64_v[234] architecture levels
+- implement decision sorting for package decisionlists
+- add back findutils requires for the libsolv-tools packagse
+  [bsc#1195633]
+- bump version to 0.7.24
+
+-------------------------------------------------------------------
 Tue Dec 13 11:47:50 CET 2022 - [email protected]
 
 - fix "keep installed" jobs not disabling "best update" rules
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libsolv-0.7.23/package/libsolv.spec.in 
new/libsolv-0.7.24/package/libsolv.spec.in
--- old/libsolv-0.7.23/package/libsolv.spec.in  2022-12-20 10:54:33.000000000 
+0100
+++ new/libsolv-0.7.24/package/libsolv.spec.in  2023-04-13 16:42:03.000000000 
+0200
@@ -153,6 +153,7 @@
 Conflicts:      satsolver-tools-obsolete
 Obsoletes:      satsolver-tools < 0.18
 Provides:       satsolver-tools = 0.18
+Requires:       findutils
 
 %description tools
 libsolv is a library for solving packages and reading repositories.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libsolv-0.7.23/src/conda.h 
new/libsolv-0.7.24/src/conda.h
--- old/libsolv-0.7.23/src/conda.h      2022-07-07 14:18:40.000000000 +0200
+++ new/libsolv-0.7.24/src/conda.h      2023-03-13 16:49:56.000000000 +0100
@@ -13,10 +13,21 @@
 #ifndef LIBSOLV_CONDA_H
 #define LIBSOLV_CONDA_H
 
+#include "pooltypes.h"
+#include "solvable.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 int pool_evrcmp_conda(const Pool *pool, const char *evr1, const char *evr2, 
int mode);
 int solvable_conda_matchversion(Solvable *s, const char *version);
 Id pool_addrelproviders_conda(Pool *pool, Id name, Id evr, Queue *plist);
 Id pool_conda_matchspec(Pool *pool, const char *name);
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* LIBSOLV_CONDA_H */
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libsolv-0.7.23/src/decision.c 
new/libsolv-0.7.24/src/decision.c
--- old/libsolv-0.7.23/src/decision.c   2022-12-15 11:04:29.000000000 +0100
+++ new/libsolv-0.7.24/src/decision.c   2023-03-13 16:49:56.000000000 +0100
@@ -322,6 +322,50 @@
   queue_deleten(q, from + 8, 8); 
 }
 
+/* sort a block of SOLVER_REASON_UNIT_RULE decisions */
+static void
+sort_unit_decisions(Solver *solv, Queue *q, int start, int end, Map *m)
+{
+  Pool *pool = solv->pool;
+  int i, j, k, doing = 1;
+  if (start + 8 == end)
+    {
+      Id truelit = q->elements[start];
+      MAPSET(m, truelit >= 0 ? truelit : -truelit);
+      return;
+    }
+  /* alternate between conflicts and installs, starting with conflicts */
+  for (i = start; i < end; doing ^= 1)
+    {
+      for (j = k = i; j < end; j += 8)
+       {
+         Rule *or;
+         Id p, pp;
+         Id truelit = q->elements[j];
+         if ((doing == 0 && truelit < 0) || (doing != 0 && truelit >= 0))
+           continue;
+         or = solv->rules + q->elements[j + 2];
+         FOR_RULELITERALS(p, pp, or)
+           if (p != truelit && !MAPTST(m, p >= 0 ? p : -p))
+             break;
+         if (p)
+           continue;   /* not unit yet */
+         if (j > k)
+           move_decision(q, k, j);
+         k += 8;
+       }
+      if (k == i)
+       continue;
+      if (i + 8 < k)
+       solv_sort(q->elements + i, (k - i) / 8, 8 * sizeof(Id), 
decisionsort_cmp, solv);
+      for (; i < k; i += 8)
+       {
+         Id truelit = q->elements[i];
+         MAPSET(m, truelit >= 0 ? truelit : -truelit);
+       }
+    }
+}
+
 static void
 solver_get_proof(Solver *solv, Id id, int flags, Queue *q)
 {
@@ -329,8 +373,7 @@
   Map seen, seent;     /* seent: was the literal true or false */
   Id rid, truelit;
   int first = 1;
-  int why, i, j, k;
-  int cnt, doing;
+  int why, i, cnt;
 
   queue_empty(q);
   if ((flags & SOLVER_DECISIONLIST_TYPEMASK) == SOLVER_DECISIONLIST_PROBLEM)
@@ -444,42 +487,7 @@
       /* sort premise block */
       if (i > 8)
        solv_sort(q->elements, i / 8, 8 * sizeof(Id), decisionsort_cmp, solv);
-
-      /* move rules:
-       *   if a package is installed, move conflicts right after
-       *   if a package is conflicted, move requires right after
-       */
-      doing = 1;
-      while (i < q->count - 8)
-       {
-         doing ^= 1;
-         for (j = k = i; j < q->count - 8; j += 8)
-           {
-             Rule *or;
-             Id p, pp;
-             Id truelit = q->elements[j];
-             if ((doing == 0 && truelit < 0) || (doing != 0 && truelit >= 0))
-               continue;
-             or = solv->rules + q->elements[j + 2];
-             FOR_RULELITERALS(p, pp, or)
-               if (p != truelit && !MAPTST(&seen, p >= 0 ? p : -p))
-                 break;
-             if (p)
-               continue;       /* not unit yet */
-             if (j > k)
-               move_decision(q, k, j);
-             k += 8;
-           }
-         if (k == i)
-           continue;
-         if (i + 8 < k)
-           solv_sort(q->elements + i, (k - i) / 8, 8 * sizeof(Id), 
decisionsort_cmp, solv);
-         for (; i < k; i += 8)
-           {
-             Id truelit = q->elements[i];
-             MAPSET(&seen, truelit >= 0 ? truelit : -truelit);
-           }
-       }
+      sort_unit_decisions(solv, q, i, q->count - 8, &seen);
     }
 
   map_free(&seen);
@@ -676,18 +684,29 @@
        }
     }
   queue_free(&iq);
-  if ((flags & (SOLVER_DECISIONLIST_SORTED | SOLVER_DECISIONLIST_WITHINFO)) == 
SOLVER_DECISIONLIST_SORTED)
+  if ((flags & SOLVER_DECISIONLIST_SORTED) != 0)
     {
-      int j;
-      for (i = j = 0; i < decisionlistq->count; i += 8)
+      /* reuse dm as "seen" map */
+      MAPZERO(dm);
+      MAPSET(dm, 1);
+      for (i = 0; i < decisionlistq->count; i += 8)
        {
-         decisionlistq->elements[j++] = decisionlistq->elements[i];
-         decisionlistq->elements[j++] = decisionlistq->elements[i + 1];
-         decisionlistq->elements[j++] = decisionlistq->elements[i + 2];
+         if (decisionlistq->elements[i + 1] != SOLVER_REASON_UNIT_RULE)
+           {
+             Id p = decisionlistq->elements[i] < 0 ? 
-decisionlistq->elements[i] : decisionlistq->elements[i];
+             MAPSET(dm, p);
+           }
+         else
+           {
+             int j;
+             for (j = i + 8; j < decisionlistq->count; j += 8)
+               if (decisionlistq->elements[j + 1] != SOLVER_REASON_UNIT_RULE)
+                 break;
+             sort_unit_decisions(solv, decisionlistq, i, j, dm);
+           }
        }
-      queue_truncate(decisionlistq, j);
     }
-  else
+  if ((flags & SOLVER_DECISIONLIST_WITHINFO) != 0)
     {
       /* set decisioninfo bits */
       for (i = 0; i < decisionlistq->count; i += 8)
@@ -695,6 +714,18 @@
       if (flags & SOLVER_DECISIONLIST_MERGEDINFO)
        decisionmerge(solv, decisionlistq);
     }
+  else if ((flags & SOLVER_DECISIONLIST_SORTED) != 0)
+    {
+      /* strip the info elements we added for sorting */
+      int j;
+      for (i = j = 0; i < decisionlistq->count; i += 8)
+       {
+         decisionlistq->elements[j++] = decisionlistq->elements[i];
+         decisionlistq->elements[j++] = decisionlistq->elements[i + 1];
+         decisionlistq->elements[j++] = decisionlistq->elements[i + 2];
+       }
+      queue_truncate(decisionlistq, j);
+    }
 }
 
 void
@@ -707,6 +738,7 @@
   map_init(&dm, pool->nsolvables);
   MAPSET(&dm, id);
   getdecisionlist(solv, &dm, flags, decisionlistq);
+  map_free(&dm);
   if (!decisionlistq->count)
     {
       queue_push(decisionlistq, -id);
@@ -718,7 +750,6 @@
          queue_push2(decisionlistq, 0, 0);
        }
     }
-  map_free(&dm);
 }
 
 void
@@ -738,6 +769,7 @@
        MAPSET(&dm, p);
     }
   getdecisionlist(solv, &dm, flags, decisionlistq);
+  map_free(&dm);
   for (i = 0; i < idq->count; i++)
     {
       Id p = idq->elements[i];
@@ -752,7 +784,6 @@
          queue_push2(decisionlistq, 0, 0);
        }
     }
-  map_free(&dm);
 }
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libsolv-0.7.23/src/policy.c 
new/libsolv-0.7.24/src/policy.c
--- old/libsolv-0.7.23/src/policy.c     2022-12-21 14:09:43.000000000 +0100
+++ new/libsolv-0.7.24/src/policy.c     2023-03-13 16:49:56.000000000 +0100
@@ -232,13 +232,13 @@
 {
   Pool *pool = solv->pool;
   Queue q;
-  queue_init(&q);
   Id p;
   int i, qcnt;
 
 #if 0
   printf("check_complex_dep %s\n", pool_dep2str(pool, dep));
 #endif
+  queue_init(&q);
   i = pool_normalize_complex_dep(pool, dep, &q, CPLXDEPS_EXPAND);
   if (i == 0 || i == 1)
     {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libsolv-0.7.23/src/poolarch.c 
new/libsolv-0.7.24/src/poolarch.c
--- old/libsolv-0.7.23/src/poolarch.c   2022-07-07 14:18:40.000000000 +0200
+++ new/libsolv-0.7.24/src/poolarch.c   2023-03-13 16:49:56.000000000 +0100
@@ -22,8 +22,14 @@
 
 static const char *archpolicies[] = {
 #if defined(FEDORA) || defined(MAGEIA)
+  "x86_64_v4", 
"x86_64_v4:x86_64_v3:x86_64_v2:x86_64:athlon:i686:i586:i486:i386",
+  "x86_64_v3", "x86_64_v3:x86_64_v2:x86_64:athlon:i686:i586:i486:i386",
+  "x86_64_v2", "x86_64_v2:x86_64:athlon:i686:i586:i486:i386",
   "x86_64",    "x86_64:athlon:i686:i586:i486:i386",
 #else
+  "x86_64_v4", "x86_64_v4:x86_64_v3:x86_64_v2:x86_64:i686:i586:i486:i386",
+  "x86_64_v3", "x86_64_v3:x86_64_v2:x86_64:i686:i586:i486:i386",
+  "x86_64_v2", "x86_64_v2:x86_64:i686:i586:i486:i386",
   "x86_64",    "x86_64:i686:i586:i486:i386",
 #endif
   "i686",      "i686:i586:i486:i386",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libsolv-0.7.23/src/pooltypes.h 
new/libsolv-0.7.24/src/pooltypes.h
--- old/libsolv-0.7.23/src/pooltypes.h  2022-07-07 14:18:40.000000000 +0200
+++ new/libsolv-0.7.24/src/pooltypes.h  2023-03-13 16:49:56.000000000 +0100
@@ -13,6 +13,10 @@
 #ifndef LIBSOLV_POOLTYPES_H
 #define LIBSOLV_POOLTYPES_H
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 /* format version number for .solv files */
 #define SOLV_VERSION_0 0
 #define SOLV_VERSION_1 1
@@ -42,4 +46,8 @@
 /* offset value, e.g. used to 'point' into the stringspace */
 typedef unsigned int Offset;
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* LIBSOLV_POOLTYPES_H */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libsolv-0.7.23/src/rules.c 
new/libsolv-0.7.24/src/rules.c
--- old/libsolv-0.7.23/src/rules.c      2022-12-15 11:04:29.000000000 +0100
+++ new/libsolv-0.7.24/src/rules.c      2023-03-13 16:49:56.000000000 +0100
@@ -183,7 +183,7 @@
            binr++;
          else
            {
-             dp = solv->pool->whatprovidesdata + r->d;
+             dp = pool->whatprovidesdata + r->d;
              while (*dp++)
                lits++;
            }
@@ -1935,8 +1935,8 @@
 void
 solver_createdupmaps(Solver *solv)
 {
-  Queue *job = &solv->job;
   Pool *pool = solv->pool;
+  Queue *job = &solv->job;
   Repo *installed = solv->installed;
   Id select, how, what, p, pp;
   Solvable *s;
@@ -2203,12 +2203,12 @@
 void
 solver_addblackrules(Solver *solv)
 {
-  int i;
-  Id how, select, what, p, pp;
-  Queue *job = &solv->job;
   Pool *pool = solv->pool;
   Repo *installed = solv->installed;
+  Id how, select, what, p, pp;
+  Queue *job = &solv->job;
   Map updatemap;
+  int i;
 
   map_init(&updatemap, 0);
   solv->blackrules = solv->nrules;
@@ -3990,7 +3990,7 @@
     }
   /* find names so that we can build groups */
   queue_init_clone(&qn, q);
-  prune_to_best_version(solv->pool, &qn);
+  prune_to_best_version(pool, &qn);
 #if 0
 {
   for (i = 0; i < qn.count; i++)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libsolv-0.7.23/src/solver.c 
new/libsolv-0.7.24/src/solver.c
--- old/libsolv-0.7.23/src/solver.c     2022-12-16 11:19:02.000000000 +0100
+++ new/libsolv-0.7.24/src/solver.c     2023-03-13 16:49:56.000000000 +0100
@@ -151,11 +151,11 @@
              solv->decisionmap[vv] = v > 0 ? 1 : -1;
              IF_POOLDEBUG (SOLV_DEBUG_PROPAGATE)
                {
-                 Solvable *s = solv->pool->solvables + vv;
+                 Solvable *s = pool->solvables + vv;
                  if (v < 0)
-                   POOL_DEBUG(SOLV_DEBUG_PROPAGATE, "conflicting %s 
(assertion)\n", pool_solvable2str(solv->pool, s));
+                   POOL_DEBUG(SOLV_DEBUG_PROPAGATE, "conflicting %s 
(assertion)\n", pool_solvable2str(pool, s));
                  else
-                   POOL_DEBUG(SOLV_DEBUG_PROPAGATE, "installing  %s 
(assertion)\n", pool_solvable2str(solv->pool, s));
+                   POOL_DEBUG(SOLV_DEBUG_PROPAGATE, "installing  %s 
(assertion)\n", pool_solvable2str(pool, s));
                }
              continue;
            }
@@ -311,11 +311,11 @@
              solv->decisionmap[vv] = v > 0 ? 1 : -1;
              IF_POOLDEBUG (SOLV_DEBUG_PROPAGATE)
                {
-                 Solvable *s = solv->pool->solvables + vv;
+                 Solvable *s = pool->solvables + vv;
                  if (v < 0)
-                   POOL_DEBUG(SOLV_DEBUG_PROPAGATE, "conflicting %s (weak 
assertion)\n", pool_solvable2str(solv->pool, s));
+                   POOL_DEBUG(SOLV_DEBUG_PROPAGATE, "conflicting %s (weak 
assertion)\n", pool_solvable2str(pool, s));
                  else
-                   POOL_DEBUG(SOLV_DEBUG_PROPAGATE, "installing  %s (weak 
assertion)\n", pool_solvable2str(solv->pool, s));
+                   POOL_DEBUG(SOLV_DEBUG_PROPAGATE, "installing  %s (weak 
assertion)\n", pool_solvable2str(pool, s));
                }
              continue;
            }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libsolv-0.7.23/tools/testsolv.c 
new/libsolv-0.7.24/tools/testsolv.c
--- old/libsolv-0.7.23/tools/testsolv.c 2022-12-12 10:09:28.000000000 +0100
+++ new/libsolv-0.7.24/tools/testsolv.c 2023-03-13 16:49:56.000000000 +0100
@@ -90,7 +90,7 @@
 
   i = testcase_str2solvid(pool, showwhypkgstr);
   if (i)
-    solver_get_decisionlist(solv, i, SOLVER_DECISIONLIST_SOLVABLE, &dq);
+    solver_get_decisionlist(solv, i, SOLVER_DECISIONLIST_SOLVABLE | 
SOLVER_DECISIONLIST_SORTED, &dq);
   else
     {
       int selflags = SELECTION_NAME | SELECTION_CANON;
@@ -99,7 +99,7 @@
       if (!iq.count)
        printf("No package matches %s\n", showwhypkgstr);
       queue_empty(&dq);
-      solver_get_decisionlist_multiple(solv, &iq, 
SOLVER_DECISIONLIST_SOLVABLE, &dq);
+      solver_get_decisionlist_multiple(solv, &iq, SOLVER_DECISIONLIST_SOLVABLE 
| SOLVER_DECISIONLIST_SORTED, &dq);
     }
   for (ii = 0; ii < dq.count; ii += 3)
     {

Reply via email to