commit: 75c790503028fd1d609b56c55865a38ae6a6e392 Author: Paul Varner <fuzzyray <AT> gentoo <DOT> org> AuthorDate: Mon Jun 6 21:14:27 2016 +0000 Commit: Zac Medico <zmedico <AT> gentoo <DOT> org> CommitDate: Wed Jan 18 16:14:31 2017 +0000 URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=75c79050
glsa-check: Apply list only affected versions patch from bug 400763 Author: Roland Hopferwieser <gentoo <AT> int0x80.at> X-Gentoo-bug: 400763 X-Gentoo-bug-url: https://bugs.gentoo.org/show_bug.cgi?id=400763 bin/glsa-check | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/bin/glsa-check b/bin/glsa-check index 54a7ae1..afc8eb8 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:
