From d5caf72eecdae10995fcd07b42cc2bb3c10e8897 Mon Sep 17 00:00:00 2001 From: Antoine Jacoutot Date: Thu, 13 Nov 2014 17:52:07 +0100 Subject: [PATCH] Fix cron mode when multiple version of php-* are installed; reported by Marcus MERIGHI. While here, simplify that nasty function. --- openup | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/openup b/openup index 00b77ba..00c2906 100755 --- a/openup +++ b/openup @@ -151,7 +151,7 @@ update_pkg() { # this only outputs the most recent vulnerability for each matching pkg check_vuxml() { - local _BP_MATCH _OUTDATED _PAT _PKG_MATCH _b _e _p + local _BP_MATCH _OUTDATED _PKG_MATCH _b _e _p ftp -Vo ${_TMPVUXML} ${VUXML_URL} >/dev/null || bye_bye perl -pi -e 's,\$ARCH,'"${_ARCH}"',g' ${_TMPVUXML} @@ -162,24 +162,19 @@ check_vuxml() { _BP_MATCH="$(for _b in ${_BP_MATCH[@]}; do echo ${_b} | grep -v "^${_e}$"; done)" done - _PAT=$(pkg_info -q | perl -ne '/^(.*)-(\d[^-]*)[-]?(\w*)(.*)$/ && print "$1\n"' | \ - grep -v binpatch${_REL_INT}-${_ARCH} | \ - while read l; do echo -n "|$l"; done | \ - sed 's/^|//' | sed -e 's,++,\\\++,g') - _PKG_MATCH=$(grep -Eo '('"${_PAT}"')' ${_TMPVUXML} | \ - sort -u | sed -e 's,,,g;s,,,g') + _PKG_MATCH=$(pkg_info -q | grep -v binpatch${_REL_INT}-${_ARCH}) for _e in ${EXCLUDE_PKG}; do set -A _PKG_MATCH -- ${_PKG_MATCH} - _PKG_MATCH="$(for _p in ${_PKG_MATCH[@]}; do echo ${_p} | grep -v "^${_e}$"; done)" + _PKG_MATCH="$(for _p in ${_PKG_MATCH[@]}; do echo ${_p} | grep -v "^${_e}-.*"; done)" done # set to "quirks" if empty to prevent running pkg_add against an empty pkg list - _OUTDATED=$((pkg_add -qnv -Dnosig -Dunsigned ${_BP_MATCH:=quirks}; pkg_add -qnuv -Dnosig -Dunsigned ${_PKG_MATCH:=quirks}) 2>/dev/null | \ - grep '^Adding.*(pretending)' | \ - sort -u | \ - sed -e 's,Adding ,,;s,(pretending),,;s,->.*,,' | \ + _OUTDATED=$((pkg_add -Iqn -Dnosig -Dunsigned ${_BP_MATCH:=quirks}; pkg_add -Iqnuz -Dnosig -Dunsigned ${_PKG_MATCH:=quirks}) 2>&1 | \ + grep '^NOT CHECKING DIGITAL SIGNATURE FOR ' | \ + sed -e 's,^NOT CHECKING DIGITAL SIGNATURE FOR ,,g' | \ grep -v '^quirks-' | \ - perl -ne '/^(.*)-(\d[^-]*)[-]?(\w*)(.*)$/ && print "$1\n"') + perl -ne '/^(.*)-(\d[^-]*)[-]?(\w*)(.*)$/ && print "$1\n"' | \ + sort -u) for p in ${_OUTDATED} do