#!/bin/bash ucs () { ssh xen12 "$@" /dev/null } process () { local bin="$1" line while IFS= read line do case "$line" in "$bin":) ;; " Installed: "*) ;; " Candidate: "*) ;; " Version table:") ;; " "*) parse_source ${line:8} ;; \ [\ *][\ *][\ *]\ *) parse_version ${line:5} ;; *) echo "other=$line" ;; esac done if [ -z "${ucs311:-}" ] then echo "WARN: missing $bin in 3.1-1" elif [ -z "${ucs320:-}" ] then echo "WARN: missing $bin in 3.2-0" elif dpkg --compare-versions "$ucs311" le "$ucs320" then echo "OK: $bin" else echo "FAIL: wrong version $bin $ucs311 $ucs320" fi } parse_version () { version="$1" } parse_source () { case "$*" in *errata3.1-1/*) : "${ucs311:=$version}" ;; *3.2-0/*) : "${ucs320:=$version}" ;; esac } grep -l '^version:.*1' ~/GIT/branches/ucs-3.1/ucs-3.1-1/doc/errata/done/*.yaml | xargs sed -ne 's/^src: //p' | sort -u | while read src do ucs "aptitude search -F %p '?source-package(^'$src'$)'" | while read bin do case "$bin" in linux-doc-3.*) continue ;; linux-headers-3.*) continue ;; linux-image-3.*) continue ;; linux-manual-3.*) continue ;; linux-source-3.*) continue ;; linux-support-3.*) continue ;; xen-linux-system-3.*) continue ;; esac ucs "LC_ALL=C apt-cache policy '$bin'" | process "$bin" done done