diff options
-rw-r--r-- | perl-install/ChangeLog | 10 | ||||
-rw-r--r-- | perl-install/install_any.pm | 4 | ||||
-rw-r--r-- | perl-install/install_steps.pm | 22 | ||||
-rw-r--r-- | perl-install/install_steps_interactive.pm | 27 | ||||
-rw-r--r-- | perl-install/network.pm | 5 | ||||
-rw-r--r-- | perl-install/pkgs.pm | 2 | ||||
-rw-r--r-- | perl-install/printer.pm | 4 | ||||
-rw-r--r-- | perl-install/printerdrake.pm | 9 |
8 files changed, 67 insertions, 16 deletions
diff --git a/perl-install/ChangeLog b/perl-install/ChangeLog index 774747810..28e9a770c 100644 --- a/perl-install/ChangeLog +++ b/perl-install/ChangeLog @@ -1,3 +1,13 @@ +2000-04-25 François Pons <fpons@mandrakesoft.com> + + * printerdrake.pm: added support for PPA more easily, allow + printers entry using ppa driver event if pnm2ppa not installed, + install it if neccessary after. + * network.pm, install_steps.pm, install_steps_interactive.pm: + added support for stoping a network interface, usefull for ppp0 to + avoid using it too long. + * install_steps.pm: fixed missing local on pap_secrets file. + 2000-04-25 Pixel <pixel@mandrakesoft.com> * lilo.pm (suggest): moved the generation of the keytable here. It diff --git a/perl-install/install_any.pm b/perl-install/install_any.pm index cfeadf928..103e1dd73 100644 --- a/perl-install/install_any.pm +++ b/perl-install/install_any.pm @@ -33,8 +33,8 @@ use log; @needToCopy = qw( XFree86-8514 XFree86-AGX XFree86-Mach32 XFree86-Mach64 XFree86-Mach8 XFree86-Mono XFree86-P9000 XFree86-S3 XFree86-S3V XFree86-SVGA XFree86-W32 XFree86-I128 -XFree86-Sun XFree86-SunMono XFree86-Sun24 XFree86-3DLabs XFree86-FBDev -XFree86 dhcpxd pump ppp ypbind rhs-printfilters samba ncpfs kernel-fb +XFree86-Sun XFree86-SunMono XFree86-Sun24 XFree86-3DLabs XFree86-FBDev XFree86-server +XFree86 dhcpxd pump ppp ypbind rhs-printfilters pnm2ppa samba ncpfs kernel-fb ); #-###################################################################################### diff --git a/perl-install/install_steps.pm b/perl-install/install_steps.pm index 6ba1ebb13..363149d52 100644 --- a/perl-install/install_steps.pm +++ b/perl-install/install_steps.pm @@ -477,9 +477,11 @@ sub pppConfig { do { $replaced ||= 1 if s/^\s*$toreplace{login}\s+ppp0\s+(\S+)/$toreplace{login} ppp0 $toreplace{passwd}/; } foreach @l; if ($replaced) { + local *F; open F, ">$o->{prefix}/etc/ppp/pap-secrets" or die "Can't open $o->{prefix}/etc/ppp/pap-secrets $!"; print F @l; } else { + local *F; open F, ">>$o->{prefix}/etc/ppp/pap-secrets" or die "Can't open $o->{prefix}/etc/ppp/pap-secrets $!"; print F "$toreplace{login} ppp0 $toreplace{passwd}\n"; } @@ -843,12 +845,12 @@ sub generateAutoInstFloppy($) { #------------------------------------------------------------------------------ sub upNetwork { - my ($o) = @_; + my ($o, $pppAvoided) = @_; modules::write_conf("$o->{prefix}/etc/conf.modules"); if ($o->{intf} && $o->{netc}{NETWORKING} ne 'false') { network::up_it($o->{prefix}, $o->{intf}); - } elsif ($o->{modem} && !$o->{modem}{isUp}) { + } elsif (!$pppAvoided && $o->{modem} && !$o->{modem}{isUp}) { run_program::rooted($o->{prefix}, "ifup", "ppp0"); $o->{modem}{isUp} = 1; } else { @@ -858,6 +860,22 @@ sub upNetwork { } #------------------------------------------------------------------------------ +sub downNetwork { + my ($o, $pppOnly) = @_; + + modules::write_conf("$o->{prefix}/etc/conf.modules"); + if (!$pppOnly && $o->{intf} && $o->{netc}{NETWORKING} ne 'false') { + network::down_it($o->{prefix}, $o->{intf}); + } elsif ($o->{modem} && $o->{modem}{isUp}) { + run_program::rooted($o->{prefix}, "ifup", "ppp0"); + $o->{modem}{isUp} = 0; + } else { + $::testing or return; + } + 1; +} + +#------------------------------------------------------------------------------ sub cleanIfFailedUpgrade($) { my ($o) = @_; diff --git a/perl-install/install_steps_interactive.pm b/perl-install/install_steps_interactive.pm index dad9f29f7..c79b8aed6 100644 --- a/perl-install/install_steps_interactive.pm +++ b/perl-install/install_steps_interactive.pm @@ -474,7 +474,7 @@ Your host name should be a fully-qualified host name, such as ``mybox.mylab.myco.com''. You may also enter the IP address of the gateway if you have one"), [_("Host name:"), _("DNS server:"), _("Gateway:"), $::expert ? _("Gateway device:") : ()], - [(map { \$netc->{$_}} qw(HOSTNAME dnsServer GATEWAY)), + [(map { \$netc->{$_} } qw(HOSTNAME dnsServer GATEWAY)), {val => \$netc->{GATEWAYDEV}, list => \@devices}] ); @@ -497,7 +497,8 @@ sub pppConfig { $m->{device} ||= $o->set_help('selectSerialPort') && mouse::serial_ports_names2dev( $o->ask_from_list('', _("Please choose which serial port your modem is connected to."), - [ mouse::serial_ports_names ])); + [ grep { my $avoidDevice = mouse::serial_ports_name2dev($_); + $o->{mouse}{device} !~ /$avoidDevice/ } mouse::serial_ports_names ])); $o->set_help('configureNetworkISP'); install_steps::pppConfig($o) if $o->ask_from_entries_refH('', @@ -558,7 +559,8 @@ USA")) || return; }; return if $@; - $o->upNetwork; + #- bring all interface up for installing crypto packages. + $o->upNetwork(); my @packages = do { my $w = $o->wait_message('', _("Contacting the mirror to get the list of available packages")); @@ -569,6 +571,9 @@ USA")) || return; \@packages, [ map { \$h{$_} } @packages ]) or return; $u->{packages} = [ grep { $h{$_} } @packages ]; install_steps::installCrypto($o); + + #- stop interface using ppp only. + $o->downNetwork('pppOnly'); } #------------------------------------------------------------------------------ @@ -597,8 +602,13 @@ sub printerConfig { require printerdrake; if ($::beginner && !$clicked) { - printerdrake::auto_detect($o) or return; + printerdrake::auto_detect($o) or return; } + + #- bring interface up for installing ethernet packages but avoid ppp by default, + #- else the guy know what he is doing... + $o->upNetwork('pppAvoided'); + eval { add2hash($o->{printer} ||= {}, printer::getinfo($o->{prefix})) }; printerdrake::main($o->{printer}, $o, sub { $o->pkg_install($_[0]) }); } @@ -1163,9 +1173,14 @@ sub setup_thiskind { } sub upNetwork { - my ($o) = @_; + my ($o, $pppAvoided) = @_; my $w = $o->wait_message('', _("Bringing up the network")); - install_steps::upNetwork($o); + install_steps::upNetwork($o, $pppAvoided); +} +sub downNetwork { + my ($o, $pppOnly) = @_; + my $w = $o->wait_message('', _("Bringing down the network")); + install_steps::downNetwork($o, $pppOnly); } diff --git a/perl-install/network.pm b/perl-install/network.pm index deb092992..ac0610c21 100644 --- a/perl-install/network.pm +++ b/perl-install/network.pm @@ -55,6 +55,11 @@ sub up_it { run_program::rooted($prefix, "/etc/rc.d/init.d/network", "start"); $_->{isUp} = 1 foreach @$intfs; } +sub down_it { + my ($prefix, $intfs) = @_; + run_program::rooted($prefix, "/etc/rc.d/init.d/network", "stop"); + $_->{isUp} = 1 foreach @$intfs; +} sub write_conf { my ($file, $netc) = @_; diff --git a/perl-install/pkgs.pm b/perl-install/pkgs.pm index 5357c92e5..eb6b88050 100644 --- a/perl-install/pkgs.pm +++ b/perl-install/pkgs.pm @@ -202,7 +202,7 @@ sub packagesOfMedium { } sub packagesToInstall { my ($packages) = @_; - grep { pkgs::packageFlagSelected($_) && !pkgs::packageFlagInstalled($_) } values %{$packages->[0]}; + grep { $_->{medium}{selected} && packageFlagSelected($_) && !packageFlagInstalled($_) } values %{$packages->[0]}; } sub allMediums { diff --git a/perl-install/printer.pm b/perl-install/printer.pm index 69a8db954..13f5a3f50 100644 --- a/perl-install/printer.pm +++ b/perl-install/printer.pm @@ -328,7 +328,7 @@ sub getinfo($) { sub read_printer_db(;$) { my $dbpath = $prefix . ($_[0] || $PRINTER_DB_FILE); - scalar(keys %thedb) > 3 and return; #- try reparse if using only ppa, POSTSCRIPT, TEXT. + scalar(keys %thedb) > 4 and return; #- try reparse if using only ppa, POSTSCRIPT, TEXT. my %available_devices; #- keep only available devices in our database. local *AVAIL; open AVAIL, ($::testing ? "$prefix" : "chroot $prefix/ ") . "/usr/bin/gs --help |"; @@ -338,7 +338,7 @@ sub read_printer_db(;$) { } } close AVAIL; - $available_devices{ppa} = undef if -x "$prefix/usr/bin/pbm2ppa" && -x "$prefix/usr/bin/pnm2ppa"; + $available_devices{ppa} = undef; #- if -x "$prefix/usr/bin/pbm2ppa" && -x "$prefix/usr/bin/pnm2ppa"; delete $available_devices{''}; @available_devices{qw/POSTSCRIPT TEXT/} = (); #- these are always available. diff --git a/perl-install/printerdrake.pm b/perl-install/printerdrake.pm index 162ec798c..3ae4bba8f 100644 --- a/perl-install/printerdrake.pm +++ b/perl-install/printerdrake.pm @@ -112,8 +112,8 @@ _("Password") => {val => \$printer->{NCPPASSWD}, hidden => 1} ], 1; } -sub setup_gsdriver($$) { - my ($printer, $in) = @_; +sub setup_gsdriver($$$) { + my ($printer, $in, $install) = @_; my $action; my @action = qw(ascii ps both done); my %action = ( @@ -137,6 +137,9 @@ sub setup_gsdriver($$) { my %db_entry = %{$printer::thedb{$printer->{DBENTRY}}}; + #- specific printer driver to install. + &$install('pnm2ppa') if $db_entry{GSDRIVER} eq 'ppa'; + my @list_res = @{$db_entry{RESOLUTION} || []}; my @res = map { "$_->{XDPI}x$_->{YDPI}" } @list_res; my @list_col = @{$db_entry{BITSPERPIXEL} || []}; @@ -290,7 +293,7 @@ _("Printer Connection") => { val => \$printer->{str_type}, not_edit => 1, list = } #- configure ghostscript driver to be used. - if (!$continue && setup_gsdriver($printer, $in)) { + if (!$continue && setup_gsdriver($printer, $in, $install)) { delete $printer->{OLD_QUEUE} if $printer->{QUEUE} ne $printer->{OLD_QUEUE} && $printer->{configured}{$printer->{QUEUE}}; $continue = !$::beginner; |