static const int SOLVER_TRANSACTION_SHOW_OBSOLETES = SOLVER_TRANSACTION_SHOW_OBSOLETES;
static const int SOLVER_TRANSACTION_SHOW_MULTIINSTALL = SOLVER_TRANSACTION_SHOW_MULTIINSTALL;
static const int SOLVER_TRANSACTION_CHANGE_IS_REINSTALL = SOLVER_TRANSACTION_CHANGE_IS_REINSTALL;
+ static const int SOLVER_TRANSACTION_OBSOLETE_IS_UPGRADE = SOLVER_TRANSACTION_OBSOLETE_IS_UPGRADE;
static const int SOLVER_TRANSACTION_MERGE_VENDORCHANGES = SOLVER_TRANSACTION_MERGE_VENDORCHANGES;
static const int SOLVER_TRANSACTION_MERGE_ARCHCHANGES = SOLVER_TRANSACTION_MERGE_ARCHCHANGES;
static const int SOLVER_TRANSACTION_RPM_ONLY = SOLVER_TRANSACTION_RPM_ONLY;
}
print "\nTransaction summary:\n\n";
-for my $c ($trans->classify()) {
+for my $c ($trans->classify($solv::Transaction::SOLVER_TRANSACTION_SHOW_OBSOLETES|$solv::Transaction::SOLVER_TRANSACTION_OBSOLETE_IS_UPGRADE)) {
if ($c->{'type'} == $solv::Transaction::SOLVER_TRANSACTION_ERASE) {
print "$c->{'count'} erased packages:\n";
} elsif ($c->{'type'} == $solv::Transaction::SOLVER_TRANSACTION_INSTALL) {
my $yn = <STDIN>;
chomp $yn;
last if $yn eq 'y';
- exit(1) if $yn eq 'n';
+ exit(1) if $yn eq 'n' || $yn eq 'q';
}
my @newpkgs = $trans->newpackages();
print
print "Transaction summary:"
print
-for cl in trans.classify():
+for cl in trans.classify(Transaction.SOLVER_TRANSACTION_SHOW_OBSOLETES | Transaction.SOLVER_TRANSACTION_OBSOLETE_IS_UPGRADE):
if cl.type == Transaction.SOLVER_TRANSACTION_ERASE:
print "%d erased packages:" % cl.count
elif cl.type == Transaction.SOLVER_TRANSACTION_INSTALL:
sys.stdout.flush()
yn = sys.stdin.readline().strip()
if yn == 'y': break
- if yn == 'n': sys.exit(1)
+ if yn == 'n' or yn == 'q': sys.exit(1)
newpkgs = trans.newpackages()
newpkgsfp = {}
if newpkgs:
end
puts "\nTransaction summary:\n"
-for cl in trans.classify()
+for cl in trans.classify(Solv::Transaction::SOLVER_TRANSACTION_SHOW_OBSOLETES | Solv::Transaction::SOLVER_TRANSACTION_OBSOLETE_IS_UPGRADE)
if cl.type == Solv::Transaction::SOLVER_TRANSACTION_ERASE
puts "#{cl.count} erased packages:"
elsif cl.type == Solv::Transaction::SOLVER_TRANSACTION_INSTALL
STDOUT.flush
yn = STDIN.gets.strip
break if yn == 'y'
- abort if yn == 'n'
+ abort if yn == 'n' || yn == 'q'
end
newpkgs = trans.newpackages()
if (s->repo == pool->installed && (mode & SOLVER_TRANSACTION_SHOW_ACTIVE) == 0)
{
/* erase element and we're showing the passive side */
- if ((mode & SOLVER_TRANSACTION_SHOW_OBSOLETES) == 0 && type == SOLVER_TRANSACTION_OBSOLETED)
+ if (type == SOLVER_TRANSACTION_OBSOLETED && (mode & SOLVER_TRANSACTION_SHOW_OBSOLETES) == 0)
type = SOLVER_TRANSACTION_ERASE;
+ if (type == SOLVER_TRANSACTION_OBSOLETED && (mode & SOLVER_TRANSACTION_OBSOLETE_IS_UPGRADE) != 0)
+ type = SOLVER_TRANSACTION_UPGRADED;
return type;
}
if (s->repo != pool->installed && (mode & SOLVER_TRANSACTION_SHOW_ACTIVE) != 0)
{
/* install element and we're showing the active side */
- if ((mode & SOLVER_TRANSACTION_SHOW_OBSOLETES) == 0 && type == SOLVER_TRANSACTION_OBSOLETES)
+ if (type == SOLVER_TRANSACTION_OBSOLETES && (mode & SOLVER_TRANSACTION_SHOW_OBSOLETES) == 0)
type = SOLVER_TRANSACTION_INSTALL;
+ if (type == SOLVER_TRANSACTION_OBSOLETES && (mode & SOLVER_TRANSACTION_OBSOLETE_IS_UPGRADE) != 0)
+ type = SOLVER_TRANSACTION_UPGRADE;
return type;
}
#define SOLVER_TRANSACTION_KEEP_PSEUDO (1 << 8)
+#define SOLVER_TRANSACTION_OBSOLETE_IS_UPGRADE (1 << 9)
+
/* extra classifications */
#define SOLVER_TRANSACTION_ARCHCHANGE 0x100
#define SOLVER_TRANSACTION_VENDORCHANGE 0x101