diff options
author | Paul Varner <fuzzyray@gentoo.org> | 2016-06-06 16:14:27 -0500 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2017-01-18 08:14:31 -0800 |
commit | 75c790503028fd1d609b56c55865a38ae6a6e392 (patch) | |
tree | abf2e4e9e292923ee5eb784ca2b8f604714a278c /bin/glsa-check | |
parent | glsa-check: Fix some pylint complains (diff) | |
download | portage-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-x | bin/glsa-check | 15 |
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: |