Imported Upstream version 0.6.9
[platform/upstream/libsolv.git] / src / rules.c
index 048cd99..c9bbf81 100644 (file)
@@ -65,7 +65,7 @@ dep_possible(Solver *solv, Id dep, Map *m)
              return dep_possible(solv, rd->evr, m);
            }
          if (rd->flags == REL_NAMESPACE && rd->name == NAMESPACE_SPLITPROVIDES)
-           return solver_splitprovides(solv, rd->evr);
+           return solver_splitprovides(solv, rd->evr, m);
          if (rd->flags == REL_NAMESPACE && rd->name == NAMESPACE_INSTALLED)
            return solver_dep_installed(solv, rd->evr);
        }
@@ -541,7 +541,7 @@ add_complex_deprules(Solver *solv, Id p, Id dep, int type, int dontfix, Queue *w
   queue_init(&bq);
 
   /* CNF expansion for requires, DNF + INVERT expansion for conflicts */
-  i = pool_normalize_complex_dep(pool, dep, &bq, type == SOLVER_RULE_DEP_PACKAGE_REQUIRES ? 0 : (CPLXDEPS_TODNF | CPLXDEPS_EXPAND | CPLXDEPS_INVERT));
+  i = pool_normalize_complex_dep(pool, dep, &bq, type == SOLVER_RULE_PKG_REQUIRES ? 0 : (CPLXDEPS_TODNF | CPLXDEPS_EXPAND | CPLXDEPS_INVERT));
   /* handle special cases */
   if (i == 0)
     {
@@ -2763,6 +2763,14 @@ solver_rule2solvable(Solver *solv, Id rid)
   return 0;
 }
 
+Id
+solver_rule2pkgrule(Solver *solv, Id rid)
+{
+  if (rid >= solv->choicerules && rid < solv->choicerules_end)
+    return solv->choicerules_ref[rid - solv->choicerules];
+  return 0;
+}
+
 static void
 solver_rule2rules_rec(Solver *solv, Id rid, Queue *q, Map *seen)
 {
@@ -3563,7 +3571,11 @@ check_xsupp(Solver *solv, Queue *depq, Id dep)
              return check_xsupp(solv, depq, rd->evr);
            }
          if (rd->flags == REL_NAMESPACE && rd->name == NAMESPACE_SPLITPROVIDES)
+#if 0
            return solver_splitprovides(solv, rd->evr);
+#else
+           return 0;
+#endif
          if (rd->flags == REL_NAMESPACE && rd->name == NAMESPACE_INSTALLED)
            return solver_dep_installed(solv, rd->evr);
        }