diff options
Diffstat (limited to 'mdkapplet')
-rwxr-xr-x | mdkapplet | 12 |
1 files changed, 10 insertions, 2 deletions
@@ -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') { |