]> git.ipfire.org Git - thirdparty/libsolv.git/commitdiff
rename "NOOBSOLETES" to "MULTIVERSION"
authorMichael Schroeder <mls@suse.de>
Fri, 22 Mar 2013 15:42:44 +0000 (16:42 +0100)
committerMichael Schroeder <mls@suse.de>
Fri, 22 Mar 2013 15:42:44 +0000 (16:42 +0100)
The name was always not very fitting, but newer rpm versions do look
at the obsoletes and just don't remove packages with the same name,
which makes the old name even worse. So rename to "multiversion",
which seems to be what many package managers use anyway.

14 files changed:
bindings/solv.i
examples/solv.c
ext/testcase.c
src/libsolv.ver
src/pool.c
src/pool.h
src/problems.c
src/rules.c
src/solvable.c
src/solver.c
src/solver.h
src/solverdebug.c
src/transaction.c
src/transaction.h

index cbb8a20e57052d6ef775af39e6df93c139961f44..17ec7e6e5cecb49cc9bc890ddba91d94ae576aa1 100644 (file)
@@ -767,7 +767,7 @@ typedef struct {
   static const Id SOLVER_ERASE = SOLVER_ERASE;
   static const Id SOLVER_UPDATE = SOLVER_UPDATE;
   static const Id SOLVER_WEAKENDEPS = SOLVER_WEAKENDEPS;
-  static const Id SOLVER_NOOBSOLETES = SOLVER_NOOBSOLETES;
+  static const Id SOLVER_MULTIVERSION = SOLVER_MULTIVERSION;
   static const Id SOLVER_LOCK = SOLVER_LOCK;
   static const Id SOLVER_DISTUPGRADE = SOLVER_DISTUPGRADE;
   static const Id SOLVER_VERIFY = SOLVER_VERIFY;
index 4daa57241a114f9cf170f444c98005fe022c834c..235f3bc0e6d421f990f24782895b97882bda0b91 100644 (file)
@@ -2345,12 +2345,12 @@ select_patches(Pool *pool, Queue *job)
 {
   Id p, pp;
   int pruneyou = 0;
-  Map installedmap, noobsmap;
+  Map installedmap, multiversionmap;
   Solvable *s;
 
-  map_init(&noobsmap, 0);
+  map_init(&multiversionmap, 0);
   map_init(&installedmap, pool->nsolvables);
-  solver_calculate_noobsmap(pool, job, &noobsmap);
+  solver_calculate_multiversionmap(pool, job, &multiversionmap);
   if (pool->installed)
     FOR_REPO_SOLVABLES(pool->installed, p, s)
       MAPSET(&installedmap, p);
@@ -2379,7 +2379,7 @@ select_patches(Pool *pool, Queue *job)
       type = solvable_lookup_str(s, SOLVABLE_PATCHCATEGORY);
       if (type && !strcmp(type, "optional"))
        continue;
-      r = solvable_trivial_installable_map(s, &installedmap, 0, &noobsmap);
+      r = solvable_trivial_installable_map(s, &installedmap, 0, &multiversionmap);
       if (r == -1)
        continue;
       if (solvable_lookup_bool(s, UPDATE_RESTART) && r == 0)
@@ -2392,7 +2392,7 @@ select_patches(Pool *pool, Queue *job)
       queue_push2(job, SOLVER_SOLVABLE, p);
     }
   map_free(&installedmap);
-  map_free(&noobsmap);
+  map_free(&multiversionmap);
 }
 
 #define MODE_LIST        0
@@ -2818,9 +2818,9 @@ main(int argc, char **argv)
     }
 
   // multiversion test
-  // queue_push2(&job, SOLVER_NOOBSOLETES|SOLVER_SOLVABLE_NAME, pool_str2id(pool, "kernel-pae", 1));
-  // queue_push2(&job, SOLVER_NOOBSOLETES|SOLVER_SOLVABLE_NAME, pool_str2id(pool, "kernel-pae-base", 1));
-  // queue_push2(&job, SOLVER_NOOBSOLETES|SOLVER_SOLVABLE_NAME, pool_str2id(pool, "kernel-pae-extra", 1));
+  // queue_push2(&job, SOLVER_MULTIVERSION|SOLVER_SOLVABLE_NAME, pool_str2id(pool, "kernel-pae", 1));
+  // queue_push2(&job, SOLVER_MULTIVERSION|SOLVER_SOLVABLE_NAME, pool_str2id(pool, "kernel-pae-base", 1));
+  // queue_push2(&job, SOLVER_MULTIVERSION|SOLVER_SOLVABLE_NAME, pool_str2id(pool, "kernel-pae-extra", 1));
 #if 0
   queue_push2(&job, SOLVER_INSTALL|SOLVER_SOLVABLE_PROVIDES, pool_rel2id(pool, NAMESPACE_LANGUAGE, 0, REL_NAMESPACE, 1));
   queue_push2(&job, SOLVER_ERASE|SOLVER_CLEANDEPS|SOLVER_SOLVABLE_PROVIDES, pool_rel2id(pool, NAMESPACE_LANGUAGE, 0, REL_NAMESPACE, 1));
@@ -2835,6 +2835,9 @@ rerunsolver:
 #endif
   solv = solver_create(pool);
   solver_set_flag(solv, SOLVER_FLAG_SPLITPROVIDES, 1);
+#ifdef FEDORA
+  solver_set_flag(solv, SOLVER_FLAG_ALLOW_VENDORCHANGE, 1);
+#endif
   if (mainmode == MODE_ERASE)
     solver_set_flag(solv, SOLVER_FLAG_ALLOW_UNINSTALL, 1);     /* don't nag */
   solver_set_flag(solv, SOLVER_FLAG_BEST_OBEY_POLICY, 1);
index 48e4c21e33956ce78a2adbbc10fb83c6a79a7fbb..72f9dc8b23cf797c71dab1ca549f60e34a582314 100644 (file)
@@ -38,7 +38,8 @@ static struct job2str {
   { SOLVER_ERASE,         "erase" },
   { SOLVER_UPDATE,        "update" },
   { SOLVER_WEAKENDEPS,    "weakendeps" },
-  { SOLVER_NOOBSOLETES,   "noobsoletes" },
+  { SOLVER_MULTIVERSION,  "multiversion" },
+  { SOLVER_MULTIVERSION,  "noobsoletes" },     /* old name */
   { SOLVER_LOCK,          "lock" },
   { SOLVER_DISTUPGRADE,   "distupgrade" },
   { SOLVER_VERIFY,        "verify" },
index 52b51da2bfdff511d06e4270643f87b2483dd595..3a7bda3d1783d754eca2ddbe78ea0f5486831a3e 100644 (file)
@@ -111,7 +111,7 @@ SOLV_1.0 {
                pool_tmpappend;
                pool_tmpjoin;
                pool_trivial_installable;
-               pool_trivial_installable_noobsoletesmap;
+               pool_trivial_installable_multiversionmap;
                pool_vendor2mask;
                queue_alloc_one;
                queue_alloc_one_head;
@@ -299,6 +299,7 @@ SOLV_1.0 {
                solver_allruleinfos;
                solver_calc_duchanges;
                solver_calc_installsizechange;
+               solver_calculate_multiversionmap;
                solver_calculate_noobsmap;
                solver_create;
                solver_create_decisions_obsoletesmap;
index 3b273189ba287fa9173ca9f012cbf0075ad85a1f..21b28609ae94e8c3f55119a17765c5386604632d 100644 (file)
@@ -1829,7 +1829,7 @@ static int providedbyinstalled_multiversion(Pool *pool, unsigned char *map, Id n
   return 0;
 }
 
-static inline int providedbyinstalled(Pool *pool, unsigned char *map, Id dep, int ispatch, Map *noobsoletesmap)
+static inline int providedbyinstalled(Pool *pool, unsigned char *map, Id dep, int ispatch, Map *multiversionmap)
 {
   Id p, pp;
   int r = 0;
@@ -1839,7 +1839,7 @@ static inline int providedbyinstalled(Pool *pool, unsigned char *map, Id dep, in
         return 1;      /* always boring, as never constraining */
       if (ispatch && !pool_match_nevr(pool, pool->solvables + p, dep))
        continue;
-      if (ispatch && noobsoletesmap && noobsoletesmap->size && MAPTST(noobsoletesmap, p) && ISRELDEP(dep))
+      if (ispatch && multiversionmap && multiversionmap->size && MAPTST(multiversionmap, p) && ISRELDEP(dep))
        if (providedbyinstalled_multiversion(pool, map, p, dep))
          continue;
       if ((map[p] & 9) == 9)
@@ -1861,7 +1861,7 @@ static inline int providedbyinstalled(Pool *pool, unsigned char *map, Id dep, in
  */
 
 void
-pool_trivial_installable_noobsoletesmap(Pool *pool, Map *installedmap, Queue *pkgs, Queue *res, Map *noobsoletesmap)
+pool_trivial_installable_multiversionmap(Pool *pool, Map *installedmap, Queue *pkgs, Queue *res, Map *multiversionmap)
 {
   int i, r, m, did;
   Id p, *dp, con, *conp, req, *reqp;
@@ -1935,7 +1935,7 @@ pool_trivial_installable_noobsoletesmap(Pool *pool, Map *installedmap, Queue *pk
          conp = s->repo->idarraydata + s->conflicts;
          while ((con = *conp++) != 0)
            {
-             if ((providedbyinstalled(pool, map, con, ispatch, noobsoletesmap) & 1) != 0)
+             if ((providedbyinstalled(pool, map, con, ispatch, multiversionmap) & 1) != 0)
                {
                  map[p] = 2;
                  did = 0;
@@ -1944,7 +1944,7 @@ pool_trivial_installable_noobsoletesmap(Pool *pool, Map *installedmap, Queue *pk
              if ((m == 1 || m == 17) && ISRELDEP(con))
                {
                  con = dep2name(pool, con);
-                 if ((providedbyinstalled(pool, map, con, ispatch, noobsoletesmap) & 1) != 0)
+                 if ((providedbyinstalled(pool, map, con, ispatch, multiversionmap) & 1) != 0)
                    m = 9;
                }
            }
@@ -2008,7 +2008,7 @@ pool_trivial_installable_noobsoletesmap(Pool *pool, Map *installedmap, Queue *pk
 void
 pool_trivial_installable(Pool *pool, Map *installedmap, Queue *pkgs, Queue *res)
 {
-  pool_trivial_installable_noobsoletesmap(pool, installedmap, pkgs, res, 0);
+  pool_trivial_installable_multiversionmap(pool, installedmap, pkgs, res, 0);
 }
 
 const char *
index 8e1a951db4d1d1d931b0021a2f2f2ea2c40d2822..8f100b2dae4cacbbea92e42bcdc1c2f6e3b272bf 100644 (file)
@@ -119,7 +119,7 @@ struct _Pool {
   /* search position */
   Datapos pos;
 
-  Queue pooljobs;              /* fixed jobs, like USERINSTALLED/NOOBSOLETES */
+  Queue pooljobs;              /* fixed jobs, like USERINSTALLED/MULTIVERSION */
 
 #ifdef LIBSOLV_INTERNAL
   /* flags to tell the library how the installed package manager works */
@@ -263,9 +263,9 @@ static inline const char *pool_solvid2str(Pool *pool, Id p)
 void pool_set_languages(Pool *pool, const char **languages, int nlanguages);
 Id pool_id2langid(Pool *pool, Id id, const char *lang, int create);
 
-int solvable_trivial_installable_map(Solvable *s, Map *installedmap, Map *conflictsmap, Map *noobsoletesmap);
-int solvable_trivial_installable_repo(Solvable *s, struct _Repo *installed, Map *noobsoletesmap);
-int solvable_trivial_installable_queue(Solvable *s, Queue *installed, Map *noobsoletesmap);
+int solvable_trivial_installable_map(Solvable *s, Map *installedmap, Map *conflictsmap, Map *multiversionmap);
+int solvable_trivial_installable_repo(Solvable *s, struct _Repo *installed, Map *multiversionmap);
+int solvable_trivial_installable_queue(Solvable *s, Queue *installed, Map *multiversionmap);
 int solvable_is_irrelevant_patch(Solvable *s, Map *installedmap);
 
 void pool_create_state_maps(Pool *pool, Queue *installed, Map *installedmap, Map *conflictsmap);
@@ -329,7 +329,7 @@ typedef struct _DUChanges {
 void pool_calc_duchanges(Pool *pool, Map *installedmap, DUChanges *mps, int nmps);
 int pool_calc_installsizechange(Pool *pool, Map *installedmap);
 void pool_trivial_installable(Pool *pool, Map *installedmap, Queue *pkgs, Queue *res);
-void pool_trivial_installable_noobsoletesmap(Pool *pool, Map *installedmap, Queue *pkgs, Queue *res, Map *noobsoletesmap);
+void pool_trivial_installable_multiversionmap(Pool *pool, Map *installedmap, Queue *pkgs, Queue *res, Map *multiversionmap);
 
 const char *pool_lookup_str(Pool *pool, Id entry, Id keyname);
 Id pool_lookup_id(Pool *pool, Id entry, Id keyname);
index 11db5feb7c412996e5f92d4646bd6c9e73ee9b3b..9c23f43eaeb333851ff23495b3af1ab70805c292 100644 (file)
@@ -470,7 +470,7 @@ convertsolution(Solver *solv, Id why, Queue *solutionq)
              if (rp > 0 && solv->decisionmap[rp] > 0 && pool->solvables[rp].repo != solv->installed)
                {
                  mvrp = rp;
-                 if (!(solv->noobsoletes.size && MAPTST(&solv->noobsoletes, rp)))
+                 if (!(solv->multiversion.size && MAPTST(&solv->multiversion, rp)))
                    break;
                }
            }
@@ -520,7 +520,7 @@ convertsolution(Solver *solv, Id why, Queue *solutionq)
        if (rp > 0 && solv->decisionmap[rp] > 0 && pool->solvables[rp].repo != solv->installed)
          {
            mvrp = rp;
-           if (!(solv->noobsoletes.size && MAPTST(&solv->noobsoletes, rp)))
+           if (!(solv->multiversion.size && MAPTST(&solv->multiversion, rp)))
              break;
          }
       if (!rp && mvrp)
index 100387890d8e9f718435f0d92e8d35a713c09bfc..6f0861233f1589cbac1c1df83f07a644ef53d455 100644 (file)
@@ -413,7 +413,7 @@ makemultiversionconflict(Solver *solv, Id n, Id con)
       s = pool->solvables + p;
       if (s->name != sn->name || s->arch != sn->arch)
        continue;
-      if (!MAPTST(&solv->noobsoletes, p))
+      if (!MAPTST(&solv->multiversion, p))
        continue;
       if (pool_match_nevr(pool, pool->solvables + p, con))
        continue;
@@ -653,9 +653,9 @@ solver_addrpmrulesforsolvable(Solver *solv, Solvable *s, Map *m)
                        }
                      p = 0;    /* make it a negative assertion, aka 'uninstallable' */
                    }
-                 if (p && ispatch && solv->noobsoletes.size && MAPTST(&solv->noobsoletes, p) && ISRELDEP(con))
+                 if (p && ispatch && solv->multiversion.size && MAPTST(&solv->multiversion, p) && ISRELDEP(con))
                    {
-                     /* our patch conflicts with a noobsoletes (aka multiversion) package */
+                     /* our patch conflicts with a multiversion package */
                      p = -makemultiversionconflict(solv, p, con);
                    }
                  /* rule: -n|-p: either solvable _or_ provider of conflict */
@@ -671,9 +671,9 @@ solver_addrpmrulesforsolvable(Solver *solv, Solvable *s, Map *m)
        */
       if ((!installed || s->repo != installed) || !pool->noinstalledobsoletes)
        {
-         int noobs = solv->noobsoletes.size && MAPTST(&solv->noobsoletes, n);
+         int multi = solv->multiversion.size && MAPTST(&solv->multiversion, n);
          int isinstalled = (installed && s->repo == installed);
-         if (s->obsoletes && (!noobs || solv->keepexplicitobsoletes))
+         if (s->obsoletes && (!multi || solv->keepexplicitobsoletes))
            {
              obsp = s->repo->idarraydata + s->obsoletes;
              /* foreach obsoletes */
@@ -715,7 +715,7 @@ solver_addrpmrulesforsolvable(Solver *solv, Solvable *s, Map *m)
                    continue;
                  /* we still obsolete packages with same nevra, like rpm does */
                  /* (actually, rpm mixes those packages. yuck...) */
-                 if (noobs && (s->name != ps->name || s->evr != ps->evr || s->arch != ps->arch))
+                 if (multi && (s->name != ps->name || s->evr != ps->evr || s->arch != ps->arch))
                    continue;
                  if (!pool->implicitobsoleteusesprovides && s->name != ps->name)
                    continue;
@@ -935,15 +935,15 @@ solver_addupdaterule(Solver *solv, Solvable *s, int allow_all)
   if (!allow_all && !solv->dupmap_all && solv->dupinvolvedmap.size && MAPTST(&solv->dupinvolvedmap, p))
     addduppackages(solv, s, &qs);
 
-  if (!allow_all && qs.count && solv->noobsoletes.size)
+  if (!allow_all && qs.count && solv->multiversion.size)
     {
       int i, j;
 
       d = pool_queuetowhatprovides(pool, &qs);
-      /* filter out all noobsoletes packages as they don't update */
+      /* filter out all multiversion packages as they don't update */
       for (i = j = 0; i < qs.count; i++)
        {
-         if (MAPTST(&solv->noobsoletes, qs.elements[i]))
+         if (MAPTST(&solv->multiversion, qs.elements[i]))
            {
              /* it's ok if they have same nevra */
              Solvable *ps = pool->solvables + qs.elements[i];
@@ -1467,7 +1467,7 @@ reenableduprule(Solver *solv, Id name)
 /* 
  * add all installed packages that package p obsoletes to Queue q.
  * Package p is not installed. Also, we know that if
- * solv->keepexplicitobsoletes is not set, p is not in the noobs map.
+ * solv->keepexplicitobsoletes is not set, p is not in the multiversion map.
  * Entries may get added multiple times.
  */
 static void
@@ -1480,7 +1480,7 @@ add_obsoletes(Solver *solv, Id p, Queue *q)
   Id obs, *obsp;
   Id lastp2 = 0;
 
-  if (!solv->keepexplicitobsoletes || !(solv->noobsoletes.size && MAPTST(&solv->noobsoletes, p)))
+  if (!solv->keepexplicitobsoletes || !(solv->multiversion.size && MAPTST(&solv->multiversion, p)))
     {
       FOR_PROVIDES(p2, pp2, s->name)
        {
@@ -1673,13 +1673,13 @@ jobtodisablelist(Solver *solv, Id how, Id what, Queue *q)
        return;
       /* now the hard part: disable some update rules */
 
-      /* first check if we have noobs or installed packages in the job */
+      /* first check if we have multiversion or installed packages in the job */
       i = j = 0;
       FOR_JOB_SELECT(p, pp, select, what)
        {
          if (pool->solvables[p].repo == installed)
            j = p;
-         else if (solv->noobsoletes.size && MAPTST(&solv->noobsoletes, p) && !solv->keepexplicitobsoletes)
+         else if (solv->multiversion.size && MAPTST(&solv->multiversion, p) && !solv->keepexplicitobsoletes)
            return;
          i++;
        }
@@ -2983,11 +2983,11 @@ solver_createcleandepsmap(Solver *solv, Map *cleandepsmap, int unneeded)
              /* just one installed literal */
              if (r->d == 0 && r->w2 == 0 && pool->solvables[r->p].repo == installed)
                continue;
-             /* noobs is bad */
-             if (solv->noobsoletes.size && !solv->keepexplicitobsoletes)
+             /* multiversion is bad */
+             if (solv->multiversion.size && !solv->keepexplicitobsoletes)
                {
                  FOR_RULELITERALS(p, jp, r)
-                   if (MAPTST(&solv->noobsoletes, p))
+                   if (MAPTST(&solv->multiversion, p))
                      break;
                  if (p)
                    continue;
index 8f4b9b973fbc0f408edce04b34604bff224cfcd7..8392f4916a52f6006e8f9c2d511de0d95f74d310 100644 (file)
@@ -397,7 +397,7 @@ static int providedbyinstalled_multiversion(Pool *pool, Map *installed, Id n, Id
   return 0;
 }
 
-static inline int providedbyinstalled(Pool *pool, Map *installed, Id dep, int ispatch, Map *noobsoletesmap)
+static inline int providedbyinstalled(Pool *pool, Map *installed, Id dep, int ispatch, Map *multiversionmap)
 {
   Id p, pp;
   FOR_PROVIDES(p, pp, dep)
@@ -406,7 +406,7 @@ static inline int providedbyinstalled(Pool *pool, Map *installed, Id dep, int is
        return -1;
       if (ispatch && !pool_match_nevr(pool, pool->solvables + p, dep))
        continue;
-      if (ispatch && noobsoletesmap && noobsoletesmap->size && MAPTST(noobsoletesmap, p) && ISRELDEP(dep))
+      if (ispatch && multiversionmap && multiversionmap->size && MAPTST(multiversionmap, p) && ISRELDEP(dep))
        if (providedbyinstalled_multiversion(pool, installed, p, dep))
          continue;
       if (MAPTST(installed, p))
@@ -432,7 +432,7 @@ static inline int providedbyinstalled(Pool *pool, Map *installed, Id dep, int is
  * -1: solvable is installable, but doesn't constrain any installed packages
  */
 int
-solvable_trivial_installable_map(Solvable *s, Map *installedmap, Map *conflictsmap, Map *noobsoletesmap)
+solvable_trivial_installable_map(Solvable *s, Map *installedmap, Map *conflictsmap, Map *multiversionmap)
 {
   Pool *pool = s->repo->pool;
   Solvable *s2;
@@ -466,7 +466,7 @@ solvable_trivial_installable_map(Solvable *s, Map *installedmap, Map *conflictsm
       conp = s->repo->idarraydata + s->conflicts;
       while ((con = *conp++) != 0)
        {
-         if (providedbyinstalled(pool, installedmap, con, ispatch, noobsoletesmap))
+         if (providedbyinstalled(pool, installedmap, con, ispatch, multiversionmap))
            {
              if (ispatch && solvable_is_irrelevant_patch(s, installedmap))
                return -1;
@@ -475,7 +475,7 @@ solvable_trivial_installable_map(Solvable *s, Map *installedmap, Map *conflictsm
          if (!interesting && ISRELDEP(con))
            {
               con = dep2name(pool, con);
-             if (providedbyinstalled(pool, installedmap, con, ispatch, noobsoletesmap))
+             if (providedbyinstalled(pool, installedmap, con, ispatch, multiversionmap))
                interesting = 1;
            }
        }
@@ -539,7 +539,7 @@ solvable_trivial_installable_map(Solvable *s, Map *installedmap, Map *conflictsm
  * by a queue.
  */
 int
-solvable_trivial_installable_queue(Solvable *s, Queue *installed, Map *noobsoletesmap)
+solvable_trivial_installable_queue(Solvable *s, Queue *installed, Map *multiversionmap)
 {
   Pool *pool = s->repo->pool;
   int i;
@@ -554,7 +554,7 @@ solvable_trivial_installable_queue(Solvable *s, Queue *installed, Map *noobsolet
       if (p > 0)               /* makes it work with decisionq */
        MAPSET(&installedmap, p);
     }
-  r = solvable_trivial_installable_map(s, &installedmap, 0, noobsoletesmap);
+  r = solvable_trivial_installable_map(s, &installedmap, 0, multiversionmap);
   map_free(&installedmap);
   return r;
 }
@@ -565,7 +565,7 @@ solvable_trivial_installable_queue(Solvable *s, Queue *installed, Map *noobsolet
  * by a repo containing the installed solvables.
  */
 int
-solvable_trivial_installable_repo(Solvable *s, Repo *installed, Map *noobsoletesmap)
+solvable_trivial_installable_repo(Solvable *s, Repo *installed, Map *multiversionmap)
 {
   Pool *pool = s->repo->pool;
   Id p;
@@ -576,7 +576,7 @@ solvable_trivial_installable_repo(Solvable *s, Repo *installed, Map *noobsoletes
   map_init(&installedmap, pool->nsolvables);
   FOR_REPO_SOLVABLES(installed, p, s2)
     MAPSET(&installedmap, p);
-  r = solvable_trivial_installable_map(s, &installedmap, 0, noobsoletesmap);
+  r = solvable_trivial_installable_map(s, &installedmap, 0, multiversionmap);
   map_free(&installedmap);
   return r;
 }
index 55eca4a60e34505ab7fd858fe3a951caa4cec76a..e4c333c605984519bcc478d16b24942b19f636d6 100644 (file)
@@ -1500,7 +1500,7 @@ solver_free(Solver *solv)
   map_free(&solv->suggestsmap);
   map_free(&solv->noupdate);
   map_free(&solv->weakrulemap);
-  map_free(&solv->noobsoletes);
+  map_free(&solv->multiversion);
 
   map_free(&solv->updatemap);
   map_free(&solv->bestupdatemap);
@@ -1863,7 +1863,7 @@ solver_run_sat(Solver *solv, int disablerules, int doweak)
                  queue_empty(&dq);
                  if (!MAPTST(&solv->noupdate, i - installed->start) && (solv->decisionmap[i] < 0 || solv->updatemap_all || (solv->updatemap.size && MAPTST(&solv->updatemap, i - installed->start)) || rr->p != i))
                    {
-                     if (solv->noobsoletes.size && solv->multiversionupdaters
+                     if (solv->multiversion.size && solv->multiversionupdaters
                             && (d = solv->multiversionupdaters[i - installed->start]) != 0)
                        {
                          /* special multiversion handling, make sure best version is chosen */
@@ -2175,7 +2175,7 @@ solver_run_sat(Solver *solv, int disablerules, int doweak)
                    continue;
                  if (solv->decisionmap[p] <= 0)
                    continue;
-                 if (solv->noobsoletes.size && MAPTST(&solv->noobsoletes, p))
+                 if (solv->multiversion.size && MAPTST(&solv->multiversion, p))
                    continue;
                  obsp = s->repo->idarraydata + s->obsoletes;
                  /* foreach obsoletes */
@@ -2238,12 +2238,12 @@ solver_run_sat(Solver *solv, int disablerules, int doweak)
          /* multiversion doesn't mix well with supplements.
           * filter supplemented packages where we already decided
           * to install a different version (see bnc#501088) */
-          if (dqs.count && solv->noobsoletes.size)
+          if (dqs.count && solv->multiversion.size)
            {
              for (i = j = 0; i < dqs.count; i++)
                {
                  p = dqs.elements[i];
-                 if (MAPTST(&solv->noobsoletes, p))
+                 if (MAPTST(&solv->multiversion, p))
                    {
                      Id p2, pp2;
                      s = pool->solvables + p;
@@ -2665,7 +2665,7 @@ weaken_solvable_deps(Solver *solv, Id p)
 
 
 void
-solver_calculate_noobsmap(Pool *pool, Queue *job, Map *noobsmap)
+solver_calculate_multiversionmap(Pool *pool, Queue *job, Map *multiversionmap)
 {
   int i;
   Id how, what, select;
@@ -2673,16 +2673,16 @@ solver_calculate_noobsmap(Pool *pool, Queue *job, Map *noobsmap)
   for (i = 0; i < job->count; i += 2)
     {
       how = job->elements[i];
-      if ((how & SOLVER_JOBMASK) != SOLVER_NOOBSOLETES)
+      if ((how & SOLVER_JOBMASK) != SOLVER_MULTIVERSION)
        continue;
       what = job->elements[i + 1];
       select = how & SOLVER_SELECTMASK;
-      if (!noobsmap->size)
-       map_grow(noobsmap, pool->nsolvables);
+      if (!multiversionmap->size)
+       map_grow(multiversionmap, pool->nsolvables);
       if (select == SOLVER_SOLVABLE_ALL)
        {
          FOR_POOL_SOLVABLES(p)
-           MAPSET(noobsmap, p);
+           MAPSET(multiversionmap, p);
        }
       else if (select == SOLVER_SOLVABLE_REPO)
        {
@@ -2690,13 +2690,19 @@ solver_calculate_noobsmap(Pool *pool, Queue *job, Map *noobsmap)
          Repo *repo = pool_id2repo(pool, what);
          if (repo)
            FOR_REPO_SOLVABLES(repo, p, s)
-             MAPSET(noobsmap, p);
+             MAPSET(multiversionmap, p);
        }
       FOR_JOB_SELECT(p, pp, select, what)
-        MAPSET(noobsmap, p);
+        MAPSET(multiversionmap, p);
     }
 }
 
+void
+solver_calculate_noobsmap(Pool *pool, Queue *job, Map *multiversionmap)
+{
+  solver_calculate_multiversionmap(pool, job, multiversionmap);
+}
+
 /*
  * add a rule created by a job, record job number and weak flag
  */
@@ -2971,10 +2977,10 @@ solver_solve(Solver *solv, Queue *job)
   solv->choicerules_ref = solv_free(solv->choicerules_ref);
   if (solv->noupdate.size)
     map_empty(&solv->noupdate);
-  if (solv->noobsoletes.size)
+  if (solv->multiversion.size)
     {
-      map_free(&solv->noobsoletes);
-      map_init(&solv->noobsoletes, 0);
+      map_free(&solv->multiversion);
+      map_init(&solv->multiversion, 0);
     }
   solv->updatemap_all = 0;
   if (solv->updatemap.size)
@@ -3047,8 +3053,8 @@ solver_solve(Solver *solv, Queue *job)
    * use addedmap bitmap to make sure we don't create rules twice
    */
 
-  /* create noobsolete map if needed */
-  solver_calculate_noobsmap(pool, job, &solv->noobsoletes);
+  /* create multiversion map if needed */
+  solver_calculate_multiversionmap(pool, job, &solv->multiversion);
 
   map_init(&addedmap, pool->nsolvables);
   MAPSET(&addedmap, SYSTEMSOLVABLE);
@@ -3462,8 +3468,8 @@ solver_solve(Solver *solv, Queue *job)
          s = pool->solvables + what;
          weaken_solvable_deps(solv, what);
          break;
-       case SOLVER_NOOBSOLETES:
-         POOL_DEBUG(SOLV_DEBUG_JOB, "job: %sno obsolete %s\n", weak ? "weak " : "", solver_select2str(pool, select, what));
+       case SOLVER_MULTIVERSION:
+         POOL_DEBUG(SOLV_DEBUG_JOB, "job: %smultiversion %s\n", weak ? "weak " : "", solver_select2str(pool, select, what));
          break;
        case SOLVER_LOCK:
          POOL_DEBUG(SOLV_DEBUG_JOB, "job: %slock %s\n", weak ? "weak " : "", solver_select2str(pool, select, what));
@@ -3639,7 +3645,7 @@ solver_solve(Solver *solv, Queue *job)
 Transaction *
 solver_create_transaction(Solver *solv)
 {
-  return transaction_create_decisionq(solv->pool, &solv->decisionq, &solv->noobsoletes);
+  return transaction_create_decisionq(solv->pool, &solv->decisionq, &solv->multiversion);
 }
 
 void solver_get_orphaned(Solver *solv, Queue *orphanedq)
@@ -3671,7 +3677,7 @@ void solver_get_recommendations(Solver *solv, Queue *recommendationsq, Queue *su
            continue;
          if (solv->decisionmap[p] <= 0)
            continue;
-         if (solv->noobsoletes.size && MAPTST(&solv->noobsoletes, p))
+         if (solv->multiversion.size && MAPTST(&solv->multiversion, p))
            continue;
          obsp = s->repo->idarraydata + s->obsoletes;
          /* foreach obsoletes */
@@ -3909,7 +3915,7 @@ solver_trivial_installable(Solver *solv, Queue *pkgs, Queue *res)
   Map installedmap;
   int i;
   pool_create_state_maps(pool,  &solv->decisionq, &installedmap, 0);
-  pool_trivial_installable_noobsoletesmap(pool, &installedmap, pkgs, res, solv->noobsoletes.size ? &solv->noobsoletes : 0);
+  pool_trivial_installable_multiversionmap(pool, &installedmap, pkgs, res, solv->multiversion.size ? &solv->multiversion : 0);
   for (i = 0; i < res->count; i++)
     if (res->elements[i] != -1)
       {
index b735329a7dd9609a1579511be9d3a1e556442860..89bea66314c29d39e656b949e95900dfe028630b 100644 (file)
@@ -79,7 +79,7 @@ struct _Solver {
 
   Map noupdate;                                /* don't try to update these
                                            installed solvables */
-  Map noobsoletes;                     /* ignore obsoletes for these (multiinstall) */
+  Map multiversion;                    /* ignore obsoletes for these (multiinstall) */
 
   Map updatemap;                       /* bring these installed packages to the newest version */
   int updatemap_all;                   /* bring all packages to the newest version */
@@ -206,7 +206,7 @@ typedef struct _Solver Solver;
 #define SOLVER_ERASE                   0x0200
 #define SOLVER_UPDATE                  0x0300
 #define SOLVER_WEAKENDEPS                      0x0400
-#define SOLVER_NOOBSOLETES             0x0500
+#define SOLVER_MULTIVERSION            0x0500
 #define SOLVER_LOCK                    0x0600
 #define SOLVER_DISTUPGRADE             0x0700
 #define SOLVER_VERIFY                  0x0800
@@ -243,6 +243,9 @@ typedef struct _Solver Solver;
 
 #define SOLVER_SETMASK                 0x7f000000
 
+/* legacy */
+#define SOLVER_NOOBSOLETES             SOLVER_MULTIVERSION
+
 #define SOLVER_REASON_UNRELATED                0
 #define SOLVER_REASON_UNIT_RULE                1
 #define SOLVER_REASON_KEEP_INSTALLED   2
@@ -291,7 +294,8 @@ extern int  solver_describe_decision(Solver *solv, Id p, Id *infop);
 extern void solver_describe_weakdep_decision(Solver *solv, Id p, Queue *whyq);
 
 
-extern void solver_calculate_noobsmap(Pool *pool, Queue *job, Map *noobsmap);
+extern void solver_calculate_multiversionmap(Pool *pool, Queue *job, Map *multiversionmap);
+extern void solver_calculate_noobsmap(Pool *pool, Queue *job, Map *multiversionmap);   /* obsolete */
 extern void solver_create_state_maps(Solver *solv, Map *installedmap, Map *conflictsmap);
 
 /* XXX: why is this not static? */
index 666401f65ec3182c0be2d727faaefd2c68fb0245..a5ab5c1ce97b0549b0f5264a5ed9286e4674c58c 100644 (file)
@@ -56,7 +56,7 @@ solver_create_decisions_obsoletesmap(Solver *solv)
       for (i = 0; i < solv->decisionq.count; i++)
        {
          Id pp, n;
-         int noobs;
+         int multi;
 
          n = solv->decisionq.elements[i];
          if (n < 0)
@@ -66,11 +66,11 @@ solver_create_decisions_obsoletesmap(Solver *solv)
          s = pool->solvables + n;
          if (s->repo == installed)             /* obsoletes don't count for already installed packages */
            continue;
-         noobs = solv->noobsoletes.size && MAPTST(&solv->noobsoletes, n);
+         multi = solv->multiversion.size && MAPTST(&solv->multiversion, n);
          FOR_PROVIDES(p, pp, s->name)
            {
              Solvable *ps = pool->solvables + p;
-             if (noobs && (s->name != ps->name || s->evr != ps->evr || s->arch != ps->arch))
+             if (multi && (s->name != ps->name || s->evr != ps->evr || s->arch != ps->arch))
                continue;
              if (!pool->implicitobsoleteusesprovides && s->name != ps->name)
                continue;
@@ -98,7 +98,7 @@ solver_create_decisions_obsoletesmap(Solver *solv)
            continue;
          if (!s->obsoletes)
            continue;
-         if (solv->noobsoletes.size && MAPTST(&solv->noobsoletes, n))
+         if (solv->multiversion.size && MAPTST(&solv->multiversion, n))
            continue;
          obsp = s->repo->idarraydata + s->obsoletes;
          while ((obs = *obsp++) != 0)
@@ -891,7 +891,7 @@ pool_job2str(Pool *pool, Id how, Id what, Id flagmask)
     case SOLVER_WEAKENDEPS:
       strstart = "weaken deps of ";
       break;
-    case SOLVER_NOOBSOLETES:
+    case SOLVER_MULTIVERSION:
       strstart = "multi version ";
       break;
     case SOLVER_LOCK:
index 9e0aefdbabc4c7fa9543bcc3cc9201e4894cf7d0..c65606dec53141f7d8f85d369d6b00325c352c4a 100644 (file)
@@ -165,8 +165,8 @@ transaction_base_type(Transaction *trans, Id p)
     }
   else
     {
-      int noobs = trans->noobsmap.size && MAPTST(&trans->noobsmap, p);
-      if (noobs)
+      int multi = trans->multiversionmap.size && MAPTST(&trans->multiversionmap, p);
+      if (multi)
        return p2 ? SOLVER_TRANSACTION_MULTIREINSTALL : SOLVER_TRANSACTION_MULTIINSTALL;
       if (!p2)
        return SOLVER_TRANSACTION_INSTALL;
@@ -544,7 +544,7 @@ create_transaction_info(Transaction *trans, Queue *decisionq)
   Pool *pool = trans->pool;
   Queue *ti = &trans->transaction_info;
   Repo *installed = pool->installed;
-  int i, j, noobs;
+  int i, j, multi;
   Id p, p2, pp2;
   Solvable *s, *s2;
 
@@ -560,7 +560,7 @@ create_transaction_info(Transaction *trans, Queue *decisionq)
       s = pool->solvables + p;
       if (!s->repo || s->repo == installed)
        continue;
-      noobs = trans->noobsmap.size && MAPTST(&trans->noobsmap, p);
+      multi = trans->multiversionmap.size && MAPTST(&trans->multiversionmap, p);
       FOR_PROVIDES(p2, pp2, s->name)
        {
          if (!MAPTST(&trans->transactsmap, p2))
@@ -568,7 +568,7 @@ create_transaction_info(Transaction *trans, Queue *decisionq)
          s2 = pool->solvables + p2;
          if (s2->repo != installed)
            continue;
-         if (noobs && (s->name != s2->name || s->evr != s2->evr || s->arch != s2->arch))
+         if (multi && (s->name != s2->name || s->evr != s2->evr || s->arch != s2->arch))
            continue;
          if (!pool->implicitobsoleteusesprovides && s->name != s2->name)
            continue;
@@ -576,7 +576,7 @@ create_transaction_info(Transaction *trans, Queue *decisionq)
            continue;
          queue_push2(ti, p, p2);
        }
-      if (s->obsoletes && !noobs)
+      if (s->obsoletes && !multi)
        {
          Id obs, *obsp = s->repo->idarraydata + s->obsoletes;
          while ((obs = *obsp++) != 0)
@@ -634,20 +634,20 @@ create_transaction_info(Transaction *trans, Queue *decisionq)
 
 
 Transaction *
-transaction_create_decisionq(Pool *pool, Queue *decisionq, Map *noobsmap)
+transaction_create_decisionq(Pool *pool, Queue *decisionq, Map *multiversionmap)
 {
   Repo *installed = pool->installed;
-  int i, neednoobs;
+  int i, needmulti;
   Id p;
   Solvable *s;
   Transaction *trans;
 
   trans = transaction_create(pool);
-  if (noobsmap && !noobsmap->size)
-    noobsmap = 0;      /* ignore empty map */
+  if (multiversionmap && !multiversionmap->size)
+    multiversionmap = 0;       /* ignore empty map */
   queue_empty(&trans->steps);
   map_init(&trans->transactsmap, pool->nsolvables);
-  neednoobs = 0;
+  needmulti = 0;
   for (i = 0; i < decisionq->count; i++)
     {
       p = decisionq->elements[i];
@@ -666,13 +666,13 @@ transaction_create_decisionq(Pool *pool, Queue *decisionq, Map *noobsmap)
            continue;
 #endif
          MAPSET(&trans->transactsmap, p);
-         if (noobsmap && MAPTST(noobsmap, p))
-           neednoobs = 1;
+         if (multiversionmap && MAPTST(multiversionmap, p))
+           needmulti = 1;
        }
     }
   MAPCLR(&trans->transactsmap, SYSTEMSOLVABLE);
-  if (neednoobs)
-    map_init_clone(&trans->noobsmap, noobsmap);
+  if (needmulti)
+    map_init_clone(&trans->multiversionmap, multiversionmap);
 
   create_transaction_info(trans, decisionq);
 
@@ -817,7 +817,7 @@ transaction_create_clone(Transaction *srctrans)
       memcpy(trans->transaction_installed, srctrans->transaction_installed, (installed->end - installed->start) * sizeof(Id));
     }
   map_init_clone(&trans->transactsmap, &srctrans->transactsmap);
-  map_init_clone(&trans->noobsmap, &srctrans->noobsmap);
+  map_init_clone(&trans->multiversionmap, &srctrans->multiversionmap);
   if (srctrans->orderdata)
     {
       struct _TransactionOrderdata *od = srctrans->orderdata;
@@ -839,7 +839,7 @@ transaction_free(Transaction *trans)
   queue_free(&trans->transaction_info);
   trans->transaction_installed = solv_free(trans->transaction_installed);
   map_free(&trans->transactsmap);
-  map_free(&trans->noobsmap);
+  map_free(&trans->multiversionmap);
   transaction_free_orderdata(trans);
   free(trans);
 }
index c9f93435698e9539ed4c670c67c4fff735ce8b38..5e8054cf079c6f31a0b461a06e35c3cf5790b0be 100644 (file)
@@ -34,7 +34,7 @@ typedef struct _Transaction {
   Queue transaction_info;
   Id *transaction_installed;
   Map transactsmap;
-  Map noobsmap;
+  Map multiversionmap;
 
   struct _TransactionOrderdata *orderdata;
 #endif
@@ -85,7 +85,7 @@ typedef struct _Transaction {
 #define SOLVER_TRANSACTION_KEEP_ORDERDATA      (1 << 0)
 
 extern Transaction *transaction_create(struct _Pool *pool);
-extern Transaction *transaction_create_decisionq(struct _Pool *pool, Queue *decisionq, Map *noobsmap);
+extern Transaction *transaction_create_decisionq(struct _Pool *pool, Queue *decisionq, Map *multiversionmap);
 extern Transaction *transaction_create_clone(Transaction *srctrans);
 extern void transaction_free(Transaction *trans);
 extern void transaction_free_orderdata(Transaction *trans);