On Mon, 7 Jun 2010, James Antill wrote:

---
output.py       |    3 ++-
yum/depsolve.py |   17 +++++++++++++----
2 files changed, 15 insertions(+), 5 deletions(-)

diff --git a/output.py b/output.py
index a89643f..060eaab 100755
--- a/output.py
+++ b/output.py
@@ -1705,7 +1705,8 @@ class DepSolveProgressCallBack:
        modedict = { 'i': _('installed'),
                     'u': _('updated'),
                     'o': _('obsoleted'),
-                     'e': _('erased')}
+                     'e': _('erased'),
+                     'd': _('downgraded')}
        (n, a, e, v, r) = pkgtup
        modeterm = modedict[mode]
        self.verbose_logger.log(logginglevels.INFO_2,
diff --git a/yum/depsolve.py b/yum/depsolve.py
index 13d5d31..fe34a9c 100644
--- a/yum/depsolve.py
+++ b/yum/depsolve.py
@@ -225,14 +225,20 @@ class Depsolve(object):
                self.ts.addInstall(hdr, (hdr, rpmfile), txmbr.ts_state)
                self.verbose_logger.log(logginglevels.DEBUG_1,
                    _('Adding Package %s in mode %s'), txmbr.po, txmbr.ts_state)
-                if self.dsCallback:
-                    self.dsCallback.pkgAdded(txmbr.pkgtup, txmbr.ts_state)
+                if self.dsCallback:
+                    ts_state = txmbr.ts_state
+                    if ts_state == 'u' and txmbr.downgrades:
+                        ts_state = 'd'
+                    self.dsCallback.pkgAdded(txmbr.pkgtup, ts_state)

            elif txmbr.ts_state in ['e']:
                if (txmbr.pkgtup, txmbr.ts_state) in ts_elem:
                    continue
                self.ts.addErase(txmbr.po.idx)
-                if self.dsCallback: self.dsCallback.pkgAdded(txmbr.pkgtup, 'e')
+                if self.dsCallback:
+                    if txmbr.downgraded_by:
+                        continue
+                    self.dsCallback.pkgAdded(txmbr.pkgtup, 'e')
                self.verbose_logger.log(logginglevels.DEBUG_1,
                    _('Removing Package %s'), txmbr.po)

@@ -786,7 +792,10 @@ class Depsolve(object):
        for txmbr in self.tsInfo.getUnresolvedMembers():

            if self.dsCallback and txmbr.ts_state:
-                self.dsCallback.pkgAdded(txmbr.pkgtup, txmbr.ts_state)
+                ts_state = txmbr.ts_state
+                if txmbr.downgrades:
+                    ts_state = 'd'
+                self.dsCallback.pkgAdded(txmbr.pkgtup, ts_state)
            self.verbose_logger.log(logginglevels.DEBUG_2,
                                    _("Checking deps for %s") %(txmbr,))


reasonably positive I'll regret this but

ACK
:)

-sv

_______________________________________________
Yum-devel mailing list
Yum-devel@lists.baseurl.org
http://lists.baseurl.org/mailman/listinfo/yum-devel

Reply via email to