diff options
-rw-r--r-- | perl-install/install2.pm | 3 | ||||
-rw-r--r-- | perl-install/printer.pm | 24 | ||||
-rw-r--r-- | perl-install/printerdrake.pm | 54 |
3 files changed, 50 insertions, 31 deletions
diff --git a/perl-install/install2.pm b/perl-install/install2.pm index b3545e3b1..90e711388 100644 --- a/perl-install/install2.pm +++ b/perl-install/install2.pm @@ -496,6 +496,7 @@ sub main { method => sub { $o->{method} = $v }, pcmcia => sub { $o->{pcmcia} = $v }, vga16 => sub { $o->{vga16} = $v }, + vga => sub { $o->{vga} = $v }, step => sub { $o->{steps}{first} = $v }, expert => sub { $::expert = 1; $::beginner = 0 }, beginner => sub { $::beginner = $v }, @@ -523,7 +524,7 @@ sub main { g_auto_install => sub { $::testing = $::g_auto_install = 1; $o->{partitioning}{auto_allocate} = 1 }, nomouseprobe => sub { $o->{nomouseprobe} = $v }, }}{lc $n}; &$f if $f; - } %cmdline; + } %cmdline; undef $::auto_install if $cfg; if ($::g_auto_install) { diff --git a/perl-install/printer.pm b/perl-install/printer.pm index 173939656..f524c33cd 100644 --- a/perl-install/printer.pm +++ b/perl-install/printer.pm @@ -16,12 +16,14 @@ my $PRINTER_DB_FILE = "/usr/lib/rhs/rhs-printfilters/printerdb"; my $PRINTER_FILTER_DIR = "/usr/lib/rhs/rhs-printfilters"; %printer_type = ( - __("Local printer") => "LOCAL", - __("Network printer (lpd)") => "REMOTE", - __("SMB/Windows 95/98/NT") => "SMB", - __("NetWare") => "NCP", - __("Socket") => "SOCKET", - __("Printer Device URI") => "URI", + __("Local printer") => "LOCAL", + __("Remote printer") => "REMOTE", + __("Remote cups server") => "CUPS", + __("Remote lpd server") => "LPD", + __("Network printer (socket)") => "SOCKET", + __("SMB/Windows 95/98/NT") => "SMB", + __("NetWare") => "NCP", + __("Printer Device URI") => "URI", ); %printer_type_inv = reverse %printer_type; @@ -44,8 +46,8 @@ sub default_spooldir($) { "/var/spool/lpd/" . default_queue($_[0]) } sub default_printer_type($) { "LOCAL" } sub printer_type($) { for ($_[0]{mode}) { - /cups/ && return @printer_type_inv{qw(LOCAL REMOTE SMB), $::expert ? qw(SOCKET URI) : ()}; - /lpr/ && return @printer_type_inv{qw(LOCAL REMOTE SMB NCP)}; + /cups/ && return @printer_type_inv{qw(LOCAL REMOTE SMB), $::expert ? qw(URI) : ()}; + /lpr/ && return @printer_type_inv{qw(LOCAL LPD SMB NCP)}; } } @@ -335,7 +337,7 @@ sub read_printers_conf { sub get_direct_uri { #- get the local printer to access via a Device URI. my @direct_uri; - local *F; open F, "chroot $prefix/ /usr/sbin/lpinfo -v |"; + local *F; open F, ($::testing ? "$prefix" : "chroot $prefix/ ") . "/usr/sbin/lpinfo -v |"; foreach (<F>) { /^(direct|usb|serial)\s+(\S*)/ and push @direct_uri, $2; } @@ -367,7 +369,7 @@ sub poll_ppd_base { run_program::rooted($prefix, "/etc/rc.d/init.d/cups start"); foreach (1..10) { - local *PPDS; open PPDS, "chroot $prefix/ /usr/bin/poll_ppd_base -a |"; + local *PPDS; open PPDS, ($::testing ? "$prefix" : "chroot $prefix/ ") . "/usr/bin/poll_ppd_base -a |"; foreach (<PPDS>) { chomp; my ($ppd, $mf, $descr, $lang) = split /\|/; @@ -641,7 +643,7 @@ sub print_pages($@) { run_program::rooted($prefix, $lpr, "-P$queue", $_); } sleep 5; #- allow lpr to send pages. - local *F; open F, "chroot $prefix/ $lpq -P$queue |"; + local *F; open F, ($::testing ? "$prefix" : "chroot $prefix/ ") . "$lpq -P$queue |"; my @lpq_output = grep { !/^no entries/ && !(/^Rank\s+Owner/ .. /^\s*$/) } <F>; close F; @lpq_output; diff --git a/perl-install/printerdrake.pm b/perl-install/printerdrake.pm index e99c69f1b..b53285957 100644 --- a/perl-install/printerdrake.pm +++ b/perl-install/printerdrake.pm @@ -373,16 +373,26 @@ You can add some more or change the existing ones."), while ($continue) { $printer::printer_type_inv{$printer->{TYPE}} or $printer->{TYPE} = printer::default_printer_type($printer); $printer->{str_type} = $printer::printer_type_inv{$printer->{TYPE}}; - if ($::beginner) { - $printer->{str_type} = - $in->ask_from_list_(_("Select Printer Connection"), - _("How is the printer connected?"), - [ printer::printer_type($printer) ], - $printer->{str_type}, - ); - } else { - if ($printer->{mode} eq 'cups') { - $in->ask_from_entries_refH([_("Select Printer Connection"), _("Ok"), $::beginner ? () : _("Remove queue")], + if ($printer->{mode} eq 'cups') { + $printer->{str_type} = $in->ask_from_list_(_("Select Printer Connection"), + _("How is the printer connected?"), + [ printer::printer_type($printer) ], + $printer->{str_type}, + ); + $printer->{TYPE} = $printer::printer_type{$printer->{str_type}}; + if ($printer->{TYPE} eq 'REMOTE') { + $printer->{str_type} = $printer::printer_type_inv{CUPS}; + $printer->{str_type} = $in->ask_from_list_(_("Select Remote Printer Connection"), +_("With a remote CUPS server, you do not have to configure +any printer here; printers will be automatically detected. +In case of doubt, select \"Remote cups server\"."), + [ @printer::printer_type_inv{qw(CUPS LPD SOCKET)} ], + $printer->{str_type}, + ); + $printer->{TYPE} = $printer::printer_type{$printer->{str_type}}; + } + $printer->{TYPE} eq 'CUPS' and return; #- exit printer configuration. + $in->ask_from_entries_refH([_("Select Printer Connection"), _("Ok"), $::beginner ? () : _("Remove queue")], _("Every printer need a name (for example lp). Other parameters such as the description of the printer or its location can be defined. What name should be used for this printer and @@ -390,9 +400,15 @@ how is the printer connected?"), [ _("Name of printer") => { val => \$printer->{QUEUE} }, _("Description") => { val => \$printer->{Info} }, _("Location") => { val => \$printer->{Location} }, -_("Printer Connection") => { val => \$printer->{str_type}, list => [ printer::printer_type($printer) ] }, ], - ) or printer::remove_queue($printer), $continue = 1, last; + ) or printer::remove_queue($printer), $continue = 1, last; + } else { + if ($::beginner) { + $printer->{str_type} = $in->ask_from_list_(_("Select Printer Connection"), + _("How is the printer connected?"), + [ printer::printer_type($printer) ], + $printer->{str_type}, + ); } else { $in->ask_from_entries_refH([_("Select Printer Connection"), _("Ok"), $::beginner ? () : _("Remove queue")], _("Every print queue (which print jobs are directed to) needs a @@ -402,21 +418,21 @@ _("Name of queue") => { val => \$printer->{QUEUE} }, _("Spool directory") => { val => \$printer->{SPOOLDIR} }, _("Printer Connection") => { val => \$printer->{str_type}, list => [ printer::printer_type($printer) ] }, ], - changed => sub { - $printer->{SPOOLDIR} = printer::default_spooldir($printer) unless $_[0]; - } - ) or printer::remove_queue($printer), $continue = 1, last; + changed => sub { + $printer->{SPOOLDIR} = printer::default_spooldir($printer) unless $_[0]; + } + ) or printer::remove_queue($printer), $continue = 1, last; } + $printer->{TYPE} = $printer::printer_type{$printer->{str_type}}; } - $printer->{TYPE} = $printer::printer_type{$printer->{str_type}}; $continue = 0; for ($printer->{TYPE}) { /LOCAL/ and setup_local ($printer, $in, $install) and last; - /REMOTE/ and setup_remote ($printer, $in, $install) and last; + /LPD/ and setup_remote ($printer, $in, $install) and last; + /SOCKET/ and setup_socket ($printer, $in, $install) and last; /SMB/ and setup_smb ($printer, $in, $install) and last; /NCP/ and setup_ncp ($printer, $in, $install) and last; - /SOCKET/ and setup_socket ($printer, $in, $install) and last; /URI/ and setup_uri ($printer, $in, $install) and last; $continue = 1; last; } |