aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Varner <fuzzyray@gentoo.org>2016-06-06 16:14:27 -0500
committerZac Medico <zmedico@gentoo.org>2017-01-18 08:14:31 -0800
commit75c790503028fd1d609b56c55865a38ae6a6e392 (patch)
treeabf2e4e9e292923ee5eb784ca2b8f604714a278c /bin/glsa-check
parentglsa-check: Fix some pylint complains (diff)
downloadportage-75c790503028fd1d609b56c55865a38ae6a6e392.tar.gz
portage-75c790503028fd1d609b56c55865a38ae6a6e392.tar.bz2
portage-75c790503028fd1d609b56c55865a38ae6a6e392.zip
glsa-check: Apply list only affected versions patch from bug 400763
Author: Roland Hopferwieser <gentoo@int0x80.at> X-Gentoo-bug: 400763 X-Gentoo-bug-url: https://bugs.gentoo.org/show_bug.cgi?id=400763
Diffstat (limited to 'bin/glsa-check')
-rwxr-xr-xbin/glsa-check15
1 files changed, 11 insertions, 4 deletions
diff --git a/bin/glsa-check b/bin/glsa-check
index 54a7ae11b..afc8eb84b 100755
--- a/bin/glsa-check
+++ b/bin/glsa-check
@@ -7,6 +7,8 @@ from __future__ import print_function
import argparse
import sys
import codecs
+from functools import reduce
+import operator
from os import path as osp
if osp.isfile(osp.join(osp.dirname(osp.dirname(osp.realpath(__file__))), ".portage_not_installed")):
@@ -14,6 +16,7 @@ if osp.isfile(osp.join(osp.dirname(osp.dirname(osp.realpath(__file__))), ".porta
import portage
portage._internal_caller = True
from portage import os
+from portage.glsa import match
from portage.output import green, red, nocolor, white
__program__ = "glsa-check"
@@ -185,11 +188,15 @@ def summarylist(myglsalist, fd1=sys.stdout, fd2=sys.stderr, encoding="utf-8"):
if len(myglsa.packages) > 3:
fd1.write("... ")
else:
- for pkg in myglsa.packages:
- mylist = vardb.match(pkg)
+ for cpv in myglsa.packages.keys():
+ pkg = myglsa.packages[cpv]
+ for path in pkg:
+ v_installed = reduce(operator.add, [match(v, vardb) for v in path["vul_atoms"]], [])
+ u_installed = reduce(operator.add, [match(u, vardb) for u in path["unaff_atoms"]], [])
+ mylist = sorted(set(v_installed).difference(set(u_installed)))
if len(mylist) > 0:
- pkg = color(" ".join(mylist))
- fd1.write(" " + pkg + " ")
+ cpv = color(" ".join(mylist))
+ fd1.write(" " + cpv + " ")
fd1.write(")")
if list_cve: