From f68e518450f76e61b8a9b9aa68ea7814f4c79165 Mon Sep 17 00:00:00 2001 From: Antoine Jacoutot Date: Tue, 3 Sep 2013 11:46:28 +0200 Subject: [PATCH] Implement binpatch support in cron (-c) mode. This finishes the initial implementation of openup... --- openup | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/openup b/openup index e7c1483..cc52dfe 100755 --- a/openup +++ b/openup @@ -181,23 +181,32 @@ update_pkg() { # this only outputs the most recent vulnerability for each pkg check_vuxml() { - local _OUTDATED + local _BP _BP_OUTDATED _PKG_OUTDATED ftp -Vo ${_TMPVUXML} ${VUXML_URL} >/dev/null + perl -pi -e 's,\$ARCH,'"$(arch -s)"',g' ${_TMPVUXML} - _OUTDATED=$(pkg_add -nuv -D nosig 2>/dev/null | \ - grep '(installing)(pretending)' | \ - sed -e 's,Adding ,,;s,(pretending),,;s,->.*,,' | \ - perl -ne '/^(.*)-(\d[^-]*)[-]?(\w*)(.*)$/ && print "$1\n"') + _BP=$(pkg_info -Q binpatch${_REL_INT}-$(arch -s) | sed 's/.[^-]*$//' | sort -u | tr '\n' ' ') + _BP_OUTDATED=$(pkg_add -nv -D nosig ${_BP} 2>/dev/null | \ + grep '^Adding.*(pretending)' | \ + sort -u | \ + sed -e 's,Adding ,,;s,(pretending),,;s,->.*,,' | \ + perl -ne '/^(.*)-(\d[^-]*)[-]?(\w*)(.*)$/ && print "$1\n"') - for p in ${_OUTDATED} + _PKG_OUTDATED=$(pkg_add -nuv -D nosig 2>/dev/null | \ + grep '(installing)(pretending)' | \ + grep -v binpatch${_REL_INT}-$(arch -s) | \ + sed -e 's,Adding ,,;s,(pretending),,;s,->.*,,' | \ + perl -ne '/^(.*)-(\d[^-]*)[-]?(\w*)(.*)$/ && print "$1\n"') + + for p in ${_BP_OUTDATED} ${_PKG_OUTDATED} do pr_bigarrow "${p} <" # XXX how do we print only the 1st matching range in awk? awk "/${p}<\/name>/,/<\/vuln>/" ${_TMPVUXML} | \ sed '/<\/vuln>/,$d' | \ sed -n -e 's/.*\(.*\)<\/lt><\/range>.*/\1/p' \ - -e 's/.*

\(.*\)<\/p>.*/\1/p' | uniq | \ + -e 's/.*

\(.*\)<\/p>.*/\1/p' | uniq | \ while read l; do echo -n "${l} "; done echo "\n" done | fmt | sed '/^$/d'