commit 1fc4bb869ca7ae5027e37337f4db4d2630ec6ca8
Author: Michael Schroeder
Date: Thu Jan 22 15:59:32 2009 +0100
- improve infarch/dup rule problem handling
---
src/solver.c | 4 ++--
src/solverdebug.c | 6 ++++--
tools/installcheck.c | 8 +++++++-
3 files changed, 13 insertions(+), 5 deletions(-)
diff --git a/src/solver.c b/src/solver.c
index 5021484..33edbe4 100644
--- a/src/solver.c
+++ b/src/solver.c
@@ -3821,7 +3821,7 @@ solver_problemruleinfo(Solver *solv, Queue *job, Id rid, Id *depp, Id *sourcep,
{
r = solv->rules + rid;
*depp = r->p < 0 ? pool->solvables[-r->p].name : 0;
- *sourcep = 0;
+ *sourcep = r->p < 0 ? -r->p : 0;
*targetp = 0;
return SOLVER_PROBLEM_INFARCH_RULE;
}
@@ -3829,7 +3829,7 @@ solver_problemruleinfo(Solver *solv, Queue *job, Id rid, Id *depp, Id *sourcep,
{
r = solv->rules + rid;
*depp = r->p < 0 ? pool->solvables[-r->p].name : 0;
- *sourcep = 0;
+ *sourcep = r->p < 0 ? -r->p : 0;
*targetp = 0;
return SOLVER_PROBLEM_DISTUPGRADE_RULE;
}
diff --git a/src/solverdebug.c b/src/solverdebug.c
index cdd783e..6a49729 100644
--- a/src/solverdebug.c
+++ b/src/solverdebug.c
@@ -394,10 +394,12 @@ solver_printprobleminfo(Solver *solv, Queue *job, Id problem)
switch (solver_problemruleinfo(solv, job, probr, &dep, &source, &target))
{
case SOLVER_PROBLEM_DISTUPGRADE_RULE:
- POOL_DEBUG(SAT_DEBUG_RESULT, "install %s from distupgrade repositories\n", dep2str(pool, dep));
+ s = pool_id2solvable(pool, source);
+ POOL_DEBUG(SAT_DEBUG_RESULT, "%s does not belong to a distupgrade repository\n", solvable2str(pool, s));
return;
case SOLVER_PROBLEM_INFARCH_RULE:
- POOL_DEBUG(SAT_DEBUG_RESULT, "do not install %s because of inferior architecture\n", dep2str(pool, dep));
+ s = pool_id2solvable(pool, source);
+ POOL_DEBUG(SAT_DEBUG_RESULT, "%s has inferior architecture\n", solvable2str(pool, s));
return;
case SOLVER_PROBLEM_UPDATE_RULE:
s = pool_id2solvable(pool, source);
diff --git a/tools/installcheck.c b/tools/installcheck.c
index e70a828..1545212 100644
--- a/tools/installcheck.c
+++ b/tools/installcheck.c
@@ -244,6 +244,12 @@ main(int argc, char **argv)
Id dep, source, target;
switch (solver_problemruleinfo(solv, &job, probr, &dep, &source, &target))
{
+ case SOLVER_PROBLEM_DISTUPGRADE_RULE:
+ break;
+ case SOLVER_PROBLEM_INFARCH_RULE:
+ s = pool_id2solvable(pool, source);
+ printf(" %s has inferior architecture\n", solvable2str(pool, s));
+ break;
case SOLVER_PROBLEM_UPDATE_RULE:
break;
case SOLVER_PROBLEM_JOB_RULE:
@@ -295,7 +301,7 @@ main(int argc, char **argv)
s = pool_id2solvable(pool, source);
printf(" package %s conflicts with %s provided by itself\n", solvable2str(pool, s), dep2str(pool, dep));
break;
- }
+ }
}
}
}
--
To unsubscribe, e-mail: zypp-commit+unsubscribe@opensuse.org
For additional commands, e-mail: zypp-commit+help@opensuse.org