diff options
author | Michael Schroeder <mls@suse.de> | 2009-07-09 15:57:47 +0200 |
---|---|---|
committer | Michael Schroeder <mls@suse.de> | 2009-07-09 15:57:47 +0200 |
commit | 539bae90cef41505d02149a7b0fa72556fc5a4e7 (patch) | |
tree | 32145c43cbf164ea24bdc2ca4891ededb30635a5 /src/transaction.c | |
parent | 44c8cfae66a1ead5e998404a2a3246c479ce3bbe (diff) | |
download | libsolv-539bae90cef41505d02149a7b0fa72556fc5a4e7.tar.gz libsolv-539bae90cef41505d02149a7b0fa72556fc5a4e7.tar.bz2 libsolv-539bae90cef41505d02149a7b0fa72556fc5a4e7.zip |
- add support for repository disabling
- add support for checksum stringification
- rename internal repodata functions
- add limited support for package colors
- do not put patches/patterns into the transaction
Diffstat (limited to 'src/transaction.c')
-rw-r--r-- | src/transaction.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/transaction.c b/src/transaction.c index c01ff17..7d67a55 100644 --- a/src/transaction.c +++ b/src/transaction.c @@ -21,6 +21,7 @@ #include "solver.h" #include "bitmap.h" #include "pool.h" +#include "poolarch.h" #include "evr.h" #include "util.h" @@ -394,7 +395,7 @@ void transaction_classify(Transaction *trans, int mode, Queue *classes) { Pool *pool = trans->pool; - int ntypes[SOLVER_TRANSACTION_MAXTYPE]; + int ntypes[SOLVER_TRANSACTION_MAXTYPE + 1]; Solvable *s, *sq; Id v, vq, type, p, q; int i, j; @@ -560,6 +561,8 @@ create_transaction_info(Transaction *trans, Queue *decisionq) continue; if (!pool->implicitobsoleteusesprovides && s->name != s2->name) continue; + if (pool->obsoleteusescolors && !pool_colormatch(pool, s, s2)) + continue; queue_push(ti, p); queue_push(ti, p2); } @@ -575,6 +578,8 @@ create_transaction_info(Transaction *trans, Queue *decisionq) continue; if (!pool->obsoleteusesprovides && !pool_match_nevr(pool, pool->solvables + p2, obs)) continue; + if (pool->obsoleteusescolors && !pool_colormatch(pool, s, s2)) + continue; queue_push(ti, p); queue_push(ti, p2); } @@ -639,6 +644,11 @@ transaction_calculate(Transaction *trans, Queue *decisionq, Map *noobsmap) MAPSET(&trans->transactsmap, -p); if ((!installed || s->repo != installed) && p > 0) { + const char *n = id2str(pool, s->name); + if (!strncmp(n, "patch:", 6)) + continue; + if (!strncmp(n, "pattern:", 8)) + continue; MAPSET(&trans->transactsmap, p); if (noobsmap && MAPTST(noobsmap, p)) neednoobs = 1; |