Blame SOURCES/BZ-1328023-updateinfo-traceback.patch

5e9bef
commit f2fc1ef96b0de995e2a61bf219b5d2c1d5a09503
5e9bef
Author: Valentina Mukhamedzhanova <vmukhame@redhat.com>
5e9bef
Date:   Wed Mar 5 17:49:02 2014 +0100
5e9bef
5e9bef
     Fix 'yum updateinfo list all new-packages' traceback. BZ 1072945
5e9bef
    
5e9bef
    And make 'list' and 'info' indicate if the package is installed.
5e9bef
5e9bef
diff --git a/yumcommands.py b/yumcommands.py
5e9bef
index 74e4333..4e72a71 100644
5e9bef
--- a/yumcommands.py
5e9bef
+++ b/yumcommands.py
5e9bef
@@ -3840,7 +3840,7 @@ class UpdateinfoCommand(YumCommand):
5e9bef
             mark = ''
5e9bef
             if list_type == 'all':
5e9bef
                 mark = '  '
5e9bef
-                if _upi._rpm_tup_vercmp(iname2tup[pkgtup[0]], pkgtup) >= 0:
5e9bef
+                if pkgtup[0] in iname2tup and _upi._rpm_tup_vercmp(iname2tup[pkgtup[0]], pkgtup) >= 0:
5e9bef
                     mark = 'i '
5e9bef
             tn = notice['type']
5e9bef
             if tn == 'security' and notice['severity']:
5e9bef
@@ -3879,7 +3879,7 @@ class UpdateinfoCommand(YumCommand):
5e9bef
                 obj = notice.__str__()
5e9bef
 
5e9bef
             if list_type == 'all':
5e9bef
-                if _upi._rpm_tup_vercmp(iname2tup[pkgtup[0]], pkgtup) >= 0:
5e9bef
+                if pkgtup[0] in iname2tup and _upi._rpm_tup_vercmp(iname2tup[pkgtup[0]], pkgtup) >= 0:
5e9bef
                     obj = obj + "\n  Installed : true"
5e9bef
                 else:
5e9bef
                     obj = obj + "\n  Installed : false"
5e9bef
@@ -4029,7 +4029,7 @@ class UpdateinfoCommand(YumCommand):
5e9bef
             return 0, [basecmd + ' ' + subcommand + ' done']
5e9bef
 
5e9bef
     def doCommand_li_new(self, base, list_type, extcmds, md_info, msg,
5e9bef
-                         show_pkgs):
5e9bef
+                         show_pkgs, iname2tup):
5e9bef
         done_pkgs = set()
5e9bef
         data = []
5e9bef
         for (notice, pkgtup) in sorted(self._get_new_pkgs(md_info),
5e9bef
@@ -4055,7 +4055,7 @@ class UpdateinfoCommand(YumCommand):
5e9bef
                 continue
5e9bef
             done_pkgs.add(n)
5e9bef
             data.append((notice, pkgtup, pkgs[0]))
5e9bef
-        show_pkgs(base, md_info, list_type, None, {}, data, msg)
5e9bef
+        show_pkgs(base, md_info, list_type, None, iname2tup, data, msg)
5e9bef
 
5e9bef
     def _parse_extcmds(self, extcmds):
5e9bef
         filt_type = None
5e9bef
@@ -4086,12 +4086,6 @@ class UpdateinfoCommand(YumCommand):
5e9bef
             if filt_type is None:
5e9bef
                 extcmds, show_type, filt_type = self._parse_extcmds(extcmds)
5e9bef
 
5e9bef
-        if filt_type == "newpackage":
5e9bef
-            # No filtering here, as we want what isn't installed...
5e9bef
-            self.doCommand_li_new(base, list_type, extcmds, md_info, msg,
5e9bef
-                                  show_pkgs)
5e9bef
-            return 0, [basecmd + ' new done']
5e9bef
-
5e9bef
         opts.sec_cmds = extcmds
5e9bef
         used_map = _upi._ysp_gen_used_map(base.updateinfo_filters)
5e9bef
         iname2tup = {}
5e9bef
diff -up yum-3.4.3/yumcommands.py.old yum-3.4.3/yumcommands.py
5e9bef
--- yum-3.4.3/yumcommands.py.old	2016-05-10 17:19:04.007269059 +0200
5e9bef
+++ yum-3.4.3/yumcommands.py	2016-05-10 17:20:11.320698042 +0200
5e9bef
@@ -4094,6 +4094,10 @@ class UpdateinfoCommand(YumCommand):
5e9bef
             name2tup = _upi._get_name2aallpkgtup(base)
5e9bef
             iname2tup = _upi._get_name2instpkgtup(base)
5e9bef
 
5e9bef
+        if filt_type == "newpackage":
5e9bef
+            self.doCommand_li_new(base, list_type, extcmds, md_info, msg,
5e9bef
+                                  show_pkgs, iname2tup)
5e9bef
+            return 0, [basecmd + ' new done']
5e9bef
 
5e9bef
         def _show_pkgtup(pkgtup):
5e9bef
             name = pkgtup[0]