From c1f8de32e005e1fb103c57995e216f8593a68a1e Mon Sep 17 00:00:00 2001 From: Thierry Vignaud Date: Thu, 19 Nov 2009 16:57:27 +0000 Subject: (silentCheck) prevent checker process from crashing on 2008.1 and 2009.0 --- NEWS | 1 + mdkapplet | 12 ++++++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/NEWS b/NEWS index 9c49127c..9761cef6 100644 --- a/NEWS +++ b/NEWS @@ -1,6 +1,7 @@ - mdkapplet o add mdkonline version to distribution list requests o log crashes of mdkapplet checker process + o prevent checker process from crashing on 2008.1 and 2009.0 Version 2.77.9 - 10 November 2009, Thierry Vignaud diff --git a/mdkapplet b/mdkapplet index ca6fa703..9a417d61 100755 --- a/mdkapplet +++ b/mdkapplet @@ -578,7 +578,9 @@ sub silentCheck() { } checker_exit('locked') if $will_not_update_media; - my $is_it_a_devel_distro = is_it_a_devel_distro(); + # prevent crashing on 2008.1 and 2009.0: + my $is_it_a_devel_distro = eval { is_it_a_devel_distro() }; + my $media = $is_it_a_devel_distro ? '-a' : '--update'; if (!run_program::run('urpmi.update', $media, if_($root, "--urpmi-root=$root"))) { checker_exit('error_updating') if $will_not_update_media; @@ -594,7 +596,13 @@ sub silentCheck() { # this eats 52Mb of RAM on 64bit: # (hence we do it in the forked helper so that the applet doesn't eat too much RAM) urpm::media::configure($urpm, if_(!$is_it_a_devel_distro, update => 1)); - my @update_medias = get_update_medias($urpm); + + # prevent crashing on 2008.1 and 2009.0: + my @update_medias = eval { get_update_medias($urpm) }; + if ($@) { + @update_medias = grep { $_->{update} } @{$urpm->{media}}; + } + if (!@update_medias) { get_product_id(); if ($product_id->{type} eq 'Enterprise' && $product_id->{product} eq 'Server') { -- cgit v1.2.1