diff options
Diffstat (limited to 'perl-install/install/any.pm')
-rw-r--r-- | perl-install/install/any.pm | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/perl-install/install/any.pm b/perl-install/install/any.pm index d73d3ed44..12142ed03 100644 --- a/perl-install/install/any.pm +++ b/perl-install/install/any.pm @@ -309,6 +309,62 @@ sub load_rate_files { defined $o->{compssUsers} or die "Can't read compssUsers.pl file, aborting installation\n"; } +sub _core_medium() { N("Core Release") } + +sub _tainted_medium() { N("Tainted Release") } + +sub _nonfree_medium() { N("Nonfree Release") } + +sub media_screen { + my ($o) = @_; + + my $urpm = $o->{packages}; + my %descriptions = ( + 'Core Release' => N("\"%s\" contains the various pieces of the systems and its applications", _core_medium()), + 'Nonfree Release' => N("\"%s\" contains non free software.\n", _nonfree_medium()) . + N("It also contains firmwares needed for certain devices to operate (eg: some ATI/AMD graphic cards, some network cards, some RAID cards, ..."), + 'Tainted Release' => N("\"%s\" contains software that can not be distributed in every country due to software patents.", _tainted_medium()) . + N("It also contains software from \"%s\" rebuild with additional capabilities.", _core_medium()), + ); + + $o->ask_from_({ messages => join("\n", + N("Media Choice"), + N("Here you can enable more media if you want."), + ), + focus_first => sub { 1 } }, [ + map { + my $medium = $_; + $medium->{temp_enabled} = !$medium->{ignore}; + +{ + val => \$medium->{temp_enabled}, type => 'bool', text => $medium->{name}, + # 'Core Release' cannot be unselected: + disabled => sub { $medium->{name} eq 'Core Release' }, + format => sub { $descriptions{$_[0]} || translate(%descriptions) }, + }; + } @{$urpm->{media}}, + ]); + + + # is there some media to enable? + my $todo; + foreach my $medium (@{$urpm->{media}}) { + if ($medium->{temp_enabled} == $medium->{ignore}) { + $medium->{ignore} = !$medium->{temp_enabled}; + if (!$medium->{ignore}) { + delete $medium->{ignore}; + log::l("Medium '$medium->{name}' needs to be updated to be usable"); + urpm::media::select_media($urpm, $medium->{name}); + $todo = 1; + } + } + delete $medium->{temp_enabled}; + } + return if !$todo; + urpm::media::update_media($urpm, allow_failures => 1, nolock => 1, noclean => 1, + callback => \&urpm::download::sync_logger + ); +} + sub setPackages { my ($o) = @_; @@ -335,6 +391,8 @@ sub setPackages { install::pkgs::popup_errors(); } + media_screen($o); + # actually read synthesis now we have all the ones we want: require urpm::media; urpm::media::configure($urpm); |