From 848081d301fc9c565c3bc5e1e938811b04769406 Mon Sep 17 00:00:00 2001 From: Pascal Rigaux Date: Mon, 1 Sep 2008 09:13:25 +0000 Subject: - if network access, configure urpmi with --mirrorlist --distrib, and install updates. This replaces the previous "Install Updates" step. - this calls gurpmi.addmedia/urpmi.addmedia and gurpmi2/urpmi in chroot - we do not allow anymore to choose which updates are going to be updated (ie choosePackagesTree is not used for this anymore) --- perl-install/any.pm | 8 ++++++- perl-install/install/NEWS | 2 ++ perl-install/install/steps.pm | 20 +---------------- perl-install/install/steps_gtk.pm | 5 +---- perl-install/install/steps_interactive.pm | 36 ++++--------------------------- 5 files changed, 15 insertions(+), 56 deletions(-) (limited to 'perl-install') diff --git a/perl-install/any.pm b/perl-install/any.pm index 123abbf3f..e63871c28 100644 --- a/perl-install/any.pm +++ b/perl-install/any.pm @@ -845,7 +845,13 @@ sub urpmi_add_all_media { #- configure urpmi media if network is up require network::tools; return if !network::tools::has_network_connection(); - my $_wait = $in->wait_message(N("Please wait"), N("Please wait, adding media...")); + my $wait; + if ($binary eq 'urpmi.addmedia') { + $wait = $in->wait_message(N("Please wait"), N("Please wait, adding media...")); + } elsif ($in->isa('interactive::gtk')) { + mygtk2::destroy_previous_popped_and_reuse_window(); + mygtk2::flush(); + } run_program::rooted($::prefix, $binary, '--distrib', '--mirrorlist', '$MIRRORLIST'); } diff --git a/perl-install/install/NEWS b/perl-install/install/NEWS index d848ec4f4..2fdd6af03 100644 --- a/perl-install/install/NEWS +++ b/perl-install/install/NEWS @@ -1,4 +1,6 @@ - hack /tmp/.X11-unix to allow accessing X in chroot +- if network access, configure urpmi with --mirrorlist --distrib, + and install updates. This replaces the previous "Install Updates" step. Version 11.29 - 29 August 2008 diff --git a/perl-install/install/steps.pm b/perl-install/install/steps.pm index 652ea2f26..e669a3790 100644 --- a/perl-install/install/steps.pm +++ b/perl-install/install/steps.pm @@ -662,25 +662,7 @@ sub configure_firewall { } #------------------------------------------------------------------------------ -sub installUpdates { - my ($o) = @_; - my $u = $o->{updates} or return; - $u->{url} or return; - - upNetwork($o); - require mirror; - - # FIXME: install all update media - my $phys_medium = install::media::url2mounted_phys_medium($o, $u->{url} . '/media/main/updates'); - - my $update_medium = { name => "Updates for Mandriva Linux " . $o->{product_id}{version}, update => 1 }; - install::media::get_standalone_medium($o, $phys_medium, $o->{packages}, $update_medium); - - $o->pkg_install(@{$u->{packages} || []}); - - #- re-install urpmi with update security medium. - install_urpmi($o); -} +sub installUpdates {} sub summaryBefore {} diff --git a/perl-install/install/steps_gtk.pm b/perl-install/install/steps_gtk.pm index 4a66000c6..372a7ed30 100644 --- a/perl-install/install/steps_gtk.pm +++ b/perl-install/install/steps_gtk.pm @@ -328,7 +328,7 @@ sub reallyChooseGroups { } sub choosePackagesTree { - my ($o, $packages, $o_limit_medium) = @_; + my ($o, $packages) = @_; my $available = install::any::getAvailableSpace($o); my $availableCorrected = install::pkgs::invCorrectSize($available / sqr(1024)) * sqr(1024); @@ -351,7 +351,6 @@ sub choosePackagesTree { my ($add_node, $flat) = @_; if ($flat) { foreach (sort map { $_->name } - grep { !$o_limit_medium || install::pkgs::packageMedium($packages, $_) == $o_limit_medium } grep { $_ && $_->arch ne 'src' } @{$packages->{depslist}}) { $add_node->($_, undef); @@ -361,7 +360,6 @@ sub choosePackagesTree { my (@firstchoice, @others); my %fl = map { ("CAT_$_" => 1) } @{$root->{flags}}; foreach my $p (@{$packages->{depslist}}) { - !$o_limit_medium || install::pkgs::packageMedium($packages, $p) == $o_limit_medium or next; my @flags = $p->rflags; next if !($p->rate && any { any { !/^!/ && $fl{$_} } split('\|\|') } @flags); $p->rate >= 3 ? @@ -489,7 +487,6 @@ sub choosePackagesTree { ], state => { auto_deps => 1, - flat => $o_limit_medium, }, }; diff --git a/perl-install/install/steps_interactive.pm b/perl-install/install/steps_interactive.pm index 72f5a9a74..ae549d7ac 100644 --- a/perl-install/install/steps_interactive.pm +++ b/perl-install/install/steps_interactive.pm @@ -756,42 +756,14 @@ connection. Do you want to install the updates?")), interactive_help_id => 'installUpdates', - }) or return; + }, 1) or return; #- bring all interface up for installing updates packages. install::interactive::upNetwork($o); - #- update medium available and working. - my $update_medium; - do { - $u->{url} = install::any::ask_mirror($o, 'updates', $u->{url}) or goto &installUpdates; - # FIXME: install all update media - my $phys_medium = install::media::url2mounted_phys_medium($o, $u->{url} . '/media/main/updates'); - - eval { - my $_w = $o->wait_message('', N("Contacting the mirror to get the list of available packages...")); - $update_medium = { name => "Updates for Mandriva Linux " . $o->{product_id}{version}, update => 1 }; - install::media::get_standalone_medium($o, $phys_medium, $o->{packages}, $update_medium); - }; - if ($@) { - undef $update_medium; - $o->ask_warn('', N("Unable to contact mirror %s", $u->{mirror})); - } - } until $update_medium; - - if ($update_medium) { - if ($o->choosePackagesTree($o->{packages}, $update_medium)) { - $o->{isUpgrade} = 1; #- now force upgrade mode, else update will be installed instead of upgraded. - $o->pkg_install; - } else { - #- make sure to not try to install the packages (which are automatically selected by getPackage above). - #- this is possible by deselecting the medium (which can be re-selected above). - $update_medium->{selected} = 0; - goto &installUpdates; - } - #- update urpmi even, because there is an hdlist available and everything is good, - #- this will allow user to update the medium but update his machine later. - install::steps::install_urpmi($o); + if (any::urpmi_add_all_media($o)) { + my $binary = find { whereis_binary($_, $::prefix) } 'gurpmi2', 'urpmi' or return; + run_program::rooted($::prefix, $binary, 'emacs'); # , '--auto-select', '--updates' } #- not downing network, even ppp. We don't care much since it is the end of install :) -- cgit v1.2.1