From 1d9d7d6c5a69704f8e1d25fbc998c51a4de426ab Mon Sep 17 00:00:00 2001 From: Peter Palfrader Date: Mon, 4 Mar 2013 14:35:21 +0100 Subject: [PATCH] dsa-check-packages: work better with weird multi-arch cases --- dsa-nagios-checks/checks/dsa-check-packages | 11 ++++++++--- dsa-nagios-checks/debian/changelog | 6 +++++- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/dsa-nagios-checks/checks/dsa-check-packages b/dsa-nagios-checks/checks/dsa-check-packages index 22bde57..3ea088d 100755 --- a/dsa-nagios-checks/checks/dsa-check-packages +++ b/dsa-nagios-checks/checks/dsa-check-packages @@ -120,9 +120,14 @@ sub get_packages { next if ($pkgname eq $from_list); # no :$arch in pkgname we asked for my $ma_fix_pkgname = $pkgname.':'.$installed->{$from_list}->{'arch'}; - ($ma_fix_pkgname eq $from_list) or die "Unexpected order mismatch in apt-cache policy output\n"; - # print $pkgname, " - ", $from_list, "\n"; - $pkgname = $from_list; + my $ma_fix_from_list = $from_list.':'.$installed->{$from_list}->{'arch'}; + + if ($pkgname eq $ma_fix_from_list || # e.g. ia32-libs-i386. dpkg -l: ia32-libs-i386, apt-cache policy: ia32-libs-i386:i386 + $ma_fix_pkgname eq $from_list) { + $pkgname = $from_list; + } else { + die "Unexpected order mismatch in apt-cache policy output (apt-cache policy name: $pkgname - dpkg -l name: $from_list)\n"; + } } } elsif ($line =~ /^ +Installed: (.*)$/) { # etch dpkg -l does not print epochs, so use this info, it's better diff --git a/dsa-nagios-checks/debian/changelog b/dsa-nagios-checks/debian/changelog index 8804b9d..d17632c 100644 --- a/dsa-nagios-checks/debian/changelog +++ b/dsa-nagios-checks/debian/changelog @@ -1,7 +1,11 @@ -dsa-nagios-checks (9x) Xnstable; urgency=low +dsa-nagios-checks (9x) UNRELEASED; urgency=low + [ Stephen Gran ] * Start new changelog + [ Peter Palfrader ] + * dsa-check-packages: work better with weird multi-arch cases. + -- Stephen Gran Sat, 29 Dec 2012 13:28:47 +0000 dsa-nagios-checks (93) unstable; urgency=low -- 2.20.1