summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMichael Schroeder <mls@suse.de>2014-02-18 15:34:40 +0100
committerMichael Schroeder <mls@suse.de>2014-02-18 15:34:40 +0100
commitd657002d436bcaef1cd626eb566825961464ffde (patch)
treebbedd8ecdf66d1a8739f93ca71334dc52322e749 /src
parentae9c86853ada4230ca8cb788d0100e5a2bf2c359 (diff)
downloadlibsolv-d657002d436bcaef1cd626eb566825961464ffde.tar.gz
libsolv-d657002d436bcaef1cd626eb566825961464ffde.tar.bz2
libsolv-d657002d436bcaef1cd626eb566825961464ffde.zip
Always return IGNORE for pseudo packages in RPM_ONLY mode
The example codes already expect this behavior.
Diffstat (limited to 'src')
-rw-r--r--src/transaction.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/transaction.c b/src/transaction.c
index b6f6bd7..e7d3e59 100644
--- a/src/transaction.c
+++ b/src/transaction.c
@@ -291,13 +291,15 @@ transaction_type(Transaction *trans, Id p, int mode)
if ((mode & SOLVER_TRANSACTION_RPM_ONLY) != 0)
{
- /* application wants to know what to feed to rpm */
+ /* application wants to know what to feed to the package manager */
+ if (is_pseudo_package(pool, s))
+ return SOLVER_TRANSACTION_IGNORE;
if (type == SOLVER_TRANSACTION_ERASE || type == SOLVER_TRANSACTION_INSTALL || type == SOLVER_TRANSACTION_MULTIINSTALL)
return type;
if (s->repo == pool->installed)
{
/* check if we're a real package that is obsoleted by pseudos */
- if (!is_pseudo_package(pool, s) && obsoleted_by_pseudos_only(trans, s - pool->solvables))
+ if (obsoleted_by_pseudos_only(trans, s - pool->solvables))
return SOLVER_TRANSACTION_ERASE;
return SOLVER_TRANSACTION_IGNORE; /* ignore as we're being obsoleted */
}