squeeze needs a different amavisd check
[mirror/dsa-nagios.git] / dsa-nagios-checks / checks / dsa-check-running-kernel
index bb0fc96..0ff3ed3 100755 (executable)
@@ -57,7 +57,9 @@ get_avail() {
 
        # DSA uses kernel versions of the form 2.6.29.3-dsa-dl380-oldxeon, where
        # Debian uses versions of the form 2.6.29-2-amd64
-       if [ "${kervers//dsa}" != "$kervers" ]; then
+       if [ "${kervers#3}" != "$kervers" ]; then
+               metavers=$(echo $kervers | sed -r -e 's/^3\.[0-9].[0-9]+-[A-Za-z0-9\.]+-(.*)/\1/')
+       elif [ "${kervers//dsa}" != "$kervers" ]; then
                metavers=$(echo $kervers | sed -r -e 's/^2\.(4|6)\.[0-9]+([\.0-9]+?)-(.*)/2.\1-\3/')
        else
                metavers=$(echo $kervers | sed -r -e 's/^2\.(4|6)\.[0-9]+-[A-Za-z0-9\.]+-(.*)/2.\1-\2/')
@@ -91,7 +93,7 @@ get_avail() {
        local imagename=0
        # --no-all-versions show shows only the candidate
        for vers in $(apt-cache --no-all-versions show ${prefix}-image-${metavers} | sed -n 's/^Depends: //p' | tr ',' '\n' | tr -d ' ' | grep ${prefix}-image | awk '{print $1}' | sort -u); do
-               if dpkg --compare-versions $vers gt $imagename; then
+               if dpkg --compare-versions "1.$vers" gt "1.$imagename"; then
                        imagename=$vers
                fi
        done
@@ -101,7 +103,7 @@ get_avail() {
        fi
 
        if [ "$imagename" != "${prefix}-image-${kervers}" ]; then
-               if dpkg --compare-versions "$imagename" lt "${prefix}-image-${kervers}"; then
+               if dpkg --compare-versions 1."$imagename" lt 1."${prefix}-image-${kervers}"; then
                        return 2
                fi
                echo "$imagename" != "${prefix}-image-${kervers}"