summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArkadiusz Lipiec <alus@mandriva.org>2003-03-06 00:00:54 +0000
committerArkadiusz Lipiec <alus@mandriva.org>2003-03-06 00:00:54 +0000
commitcc229405c4176d300dab865b34f49a1d35d3f787 (patch)
tree69060d7d8f22e42dfd64a619557b3c010557b551
parent16f38edebb9df68ae0a2205b1cefcd2a6a0d1ba8 (diff)
downloadurpmi-cc229405c4176d300dab865b34f49a1d35d3f787.tar
urpmi-cc229405c4176d300dab865b34f49a1d35d3f787.tar.gz
urpmi-cc229405c4176d300dab865b34f49a1d35d3f787.tar.bz2
urpmi-cc229405c4176d300dab865b34f49a1d35d3f787.tar.xz
urpmi-cc229405c4176d300dab865b34f49a1d35d3f787.zip
updated
-rw-r--r--po/pl.po97
1 files changed, 47 insertions, 50 deletions
diff --git a/po/pl.po b/po/pl.po
index cee41023..abe4a6f1 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -1,15 +1,14 @@
-# translation of pl.po to
# Polski plik dla urpmi
# Copyright (C) 2002,2003 Free Software Foundation, Inc.
# Pawel Jablonski <pj@linux-mandrake.com>, 1999-2000.
# Arkadiusz Lipiec <alipiec@elka.pw.edu.pl>, 2002,2003
msgid ""
msgstr ""
-"Project-Id-Version: pl\n"
+"Project-Id-Version: urpmi\n"
"POT-Creation-Date: 2003-03-05 21:19+0100\n"
-"PO-Revision-Date: 2003-01-24 11:45+0100\n"
-"Last-Translator: \n"
-"Language-Team: <pl@li.org>\n"
+"PO-Revision-Date: 2003-03-06 01:12+0100\n"
+"Last-Translator: Arkadiusz Lipiec <alipiec@elka.pw.edu.pl>\n"
+"Language-Team: Polish <pl@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-2\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -268,6 +267,9 @@ msgid ""
"medium \"%s\" use an invalid list file (mirror is problably not up-to-date, "
"trying to use alternate method)"
msgstr ""
+"nośnik \"%s\" używa niepoprawnego pliku listy (serwer pośredniczący jest "
+"prawdopodobnie\n"
+"aktualny, próba wykorzystania metody alternatywnej)"
#: ../urpm.pm:1
#, c-format
@@ -295,9 +297,9 @@ msgid "error registering local packages"
msgstr "błąd w trakcie rejestrowania pakietów lokalnych"
#: ../urpm.pm:1
-#, fuzzy, c-format
+#, c-format
msgid "unable to register rpm file"
-msgstr "nie można uzyskać dostępu do pliku rpm [%s]"
+msgstr "nie można zarejestrować pliku rpm"
#: ../urpm.pm:1
#, c-format
@@ -416,9 +418,9 @@ msgid "examining MD5SUM file"
msgstr "badanie pliku MD5SUM"
#: ../urpm.pm:1
-#, fuzzy, c-format
+#, c-format
msgid "found probed hdlist (or synthesis) as %s"
-msgstr "kopiowanie źródła hdlist (lub syntezy) związanego z \"%s\"..."
+msgstr "znaleziono zbadany plik hdlist (lub synthesis) jako %s"
#: ../urpm.pm:1
#, c-format
@@ -451,9 +453,9 @@ msgid "...copying done"
msgstr "...kopiowanie zakończone"
#: ../urpm.pm:1
-#, fuzzy, c-format
+#, c-format
msgid "...copying failed"
-msgstr "...kopiowanie zakończone"
+msgstr "...kopiowanie zakończone niepowodzeniem"
#: ../urpm.pm:1
#, c-format
@@ -543,8 +545,8 @@ msgstr "wystąpił problem podczas odczytu pliku hdlist dla nośnika \"%s\""
#, c-format
msgid "--synthesis cannot be used with --media, --update or --parallel"
msgstr ""
-"opcja --synthesis nie może być używana z opcją --media, --update lub --"
-"parallel"
+"opcja --synthesis nie może być używana z opcją --media, --update lub "
+"--parallel"
#: ../urpm.pm:1
#, c-format
@@ -647,12 +649,13 @@ msgstr "nie można określić nośnika związanego z tym plikiem hdlist [%s]"
#, c-format
msgid "unable to take medium \"%s\" into account as no list file [%s] exists"
msgstr ""
-"nie można przypisać nośnika \"%s\" do konta, gdyż nie istnieje plik listy [%"
-"s]"
+"nie można przypisać nośnika \"%s\" do konta, gdyż nie istnieje plik listy "
+"[%s]"
#: ../urpm.pm:1
#, c-format
-msgid "unable to use name \"%s\" for unnamed medium because it is already used"
+msgid ""
+"unable to use name \"%s\" for unnamed medium because it is already used"
msgstr ""
"nie można użyć nazwy \"%s\" dla nienazwanego nośnika, ponieważ jest ona już "
"używana"
@@ -877,8 +880,7 @@ msgstr ""
msgid ""
" -a - binary AND operator, true if both expression are true.\n"
msgstr ""
-" -a - operator binarny AND, prawda gdy oba wyrażenia "
-"prawdziwe.\n"
+" -a - operator binarny AND, prawda gdy oba wyrażenia prawdziwe.\n"
#: ../urpmf:1
#, c-format
@@ -957,8 +959,8 @@ msgid ""
" --name - print tag name: rpm filename (assumed if no tag given on\n"
" command line but without package name).\n"
msgstr ""
-" --name - wyświetla znacznik name: nazwa pliku rpm (także "
-"gdy nie podano w wierszu poza nazwą innych znaczników).\n"
+" --name - wyświetla znacznik name: nazwa pliku rpm (także gdy "
+" nie podano w wierszu poza nazwą innych znaczników).\n"
#: ../urpmf:1
#, c-format
@@ -968,8 +970,7 @@ msgstr " --all - wyświetla wszystkie znaczniki.\n"
#: ../urpmf:1
#, c-format
msgid ""
-" --quiet - do not print tag name (default if no tag given on "
-"command\n"
+" --quiet - do not print tag name (default if no tag given on command\n"
" line, incompatible with interactive mode).\n"
msgstr ""
" --quiet - bez wyświetlania nazwy znacznika\n"
@@ -989,8 +990,7 @@ msgstr " --synthesis - używa pliku syntezy podanego zamiast bazy urpmi.\n"
#, c-format
msgid " --media - use only the given media, separated by comma.\n"
msgstr ""
-" --media - używa tylko podanych nośników, rozdzielonych "
-"przecinkami.\n"
+" --media - używa tylko podanych nośników, rozdzielonych przecinkami.\n"
#: ../urpmf:1 ../urpmi:1 ../urpmq:1
#, c-format
@@ -1088,8 +1088,8 @@ msgstr "nie można pobrać pakietów źródłowych, zaniechanie"
#: ../urpmi:1
#, c-format
msgid ""
-"To satisfy dependencies, the following packages are going to be installed (%"
-"d MB)"
+"To satisfy dependencies, the following packages are going to be installed (%d "
+"MB)"
msgstr ""
"Zostaną zainstalowane następujące pakiety w celu spełnienia zależności (%d "
"MB)"
@@ -1198,13 +1198,12 @@ msgstr "urpmi: nieznana opcja \"-%s\", sprawdź wywołanie z opcją --help\n"
#: ../urpmi:1 ../urpmi.addmedia:1 ../urpmi.update:1 ../urpmq:1
#, c-format
msgid "bad proxy declaration on command line\n"
-msgstr ""
+msgstr "niepoprawna deklaracja serwera pośredniczącego w wierszu poleceń\n"
#: ../urpmi:1
#, c-format
msgid " names or rpm files given on command line will be installed.\n"
-msgstr ""
-" nazwy lub pliki rpm podane w wierszu poleceń zostaną zainstalowane.\n"
+msgstr " nazwy lub pliki rpm podane w wierszu poleceń zostaną zainstalowane.\n"
#: ../urpmi:1 ../urpmq:1
#, c-format
@@ -1262,8 +1261,8 @@ msgstr ""
#: ../urpmi:1
#, c-format
msgid ""
-" --best-output - choose best interface according to the environment:\n"
-" X or text mode.\n"
+" --best-output - choose best interface according to the "
+"environment:\n X or text mode.\n"
msgstr ""
" --best-output - wybiera najlepszy interfejs w zależności od środowiska:\n"
" X Window lub tryb tekstowy.\n"
@@ -1347,8 +1346,7 @@ msgstr ""
msgid ""
" --force - force invocation even if some packages do not exist.\n"
msgstr ""
-" --force - wymusza wywoływanie nawet przy braku niektórych "
-"pakietów.\n"
+" --force - wymusza wywoływanie nawet przy braku niektórych pakietów.\n"
#: ../urpmi:1
#, c-format
@@ -1445,9 +1443,9 @@ msgstr ""
"nie ma potrzeby podawania <ścieżki_względnej lub hdlisty> z opcją --distrib"
#: ../urpmi.addmedia:1
-#, fuzzy, c-format
+#, c-format
msgid "retrieving mirrors at %s ..."
-msgstr "pobieranie pliku rpm [%s] ..."
+msgstr "pobieranie serwerów pośredniczących z %s ..."
#: ../urpmi.addmedia:1
#, c-format
@@ -1522,8 +1520,8 @@ msgstr ""
#: ../urpmi.addmedia:1
#, c-format
msgid ""
-" --distrib - automatically create all media from an installation\n"
-" medium.\n"
+" --distrib - automatically create all media from an "
+"installation\n medium.\n"
msgstr ""
" --distrib - automatycznie tworzy wszystkie nośniki z nośnika\n"
" instalacyjnego.\n"
@@ -1547,8 +1545,8 @@ msgid ""
"\n"
"and [options] are from\n"
msgstr ""
-"użycie: urpmi.addmedia [opcje] <nazwa> <url> [with <ścieżka względna>]\n"
-"gdzie <url> może przyjmować postać\n"
+"użycie: urpmi.addmedia [opcje] <nazwa> <url> [with <ścieżka "
+"względna>]\ngdzie <url> może przyjmować postać\n"
" file://<ścieżka>\n"
" ftp://<login>:<hasło>@<komputer>/<ścieżka> with <względna nazwa pliku "
"hdlist>\n"
@@ -1598,8 +1596,7 @@ msgstr ""
#: ../urpmi.update:1
#, c-format
msgid "nothing to update (use urpmi.addmedia to add a media)\n"
-msgstr ""
-"brak elementów do aktualizacji (użyj urpmi.addmedia aby dodać nośnik)\n"
+msgstr "brak elementów do aktualizacji (użyj urpmi.addmedia aby dodać nośnik)\n"
#: ../urpmi.update:1
#, c-format
@@ -1635,12 +1632,12 @@ msgstr "--list-nodes może być użyta tylko z opcją --parallel"
#: ../urpmq:1
#, c-format
msgid "urpmq: cannot read rpm file \"%s\"\n"
-msgstr ""
+msgstr "urpmq: nie można odczytać pliku rpm \"%s\"\n"
#: ../urpmq:1
-#, fuzzy, c-format
+#, c-format
msgid "urpmq: unknown option \"-%s\", check usage with --help\n"
-msgstr "urpme: nieznana opcja \"-%s\", sprawdź wywołanie z opcją --help\n"
+msgstr "urpme: nieznana opcja \"-%s\", sprawdź użycie z opcją --help\n"
#: ../urpmq:1
#, c-format
@@ -1685,14 +1682,14 @@ msgstr " -d - rozszerza zapytania o zależności międzypakietowe.\n"
msgid ""
" --sources - give all source packages before downloading (root only).\n"
msgstr ""
-" --sources - wypisuje wszystkie pakiety źródłowe przed pobraniem\n"
-" (tylko root).\n"
+" --sources - wypisuje wszystkie pakiety źródłowe przed "
+"pobraniem\n (tylko root).\n"
#: ../urpmq:1
#, c-format
msgid ""
-" --headers - extract headers for package listed from urpmi db to\n"
-" stdout (root only).\n"
+" --headers - extract headers for package listed from urpmi db "
+"to\n stdout (root only).\n"
msgstr ""
" --headers - wybiera nagłówki z pakietu wypisane z bazy danych urpmi\n"
" na wyjście standardowe (tylko root).\n"
@@ -1706,8 +1703,8 @@ msgstr " --list-aliases - wypisuje dostępne równoległe aliasy.\n"
#, c-format
msgid " --list-nodes - list available nodes when using --parallel.\n"
msgstr ""
-" --list-nodes - wypisuje dostępne węzły gdy używana jest opcja --"
-"parallel.\n"
+" --list-nodes - wypisuje dostępne węzły gdy używana jest opcja "
+"--parallel.\n"
#: ../urpmq:1
#, c-format
>533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714

package install2;

use diagnostics;
use strict;
use Data::Dumper;

use vars qw($o $version);

#-######################################################################################
#- misc imports
#-######################################################################################
use common qw(:common :file :system :functional);
use install_any qw(:all);
use log;
use commands;
use network;
use lang;
use keyboard;
use mouse;
use fs;
use raid;
use fsedit;
use devices;
use partition_table qw(:types);
use modules;
use detect_devices;
use run_program;

use install_steps;
#use install_steps_interactive;

#-######################################################################################
#- Steps table
#-######################################################################################
$::VERSION = "7.1";

my (%installSteps, @orderedInstallSteps);
{    
    my @installStepsFields = qw(text redoable onError hidden needs); 
    #entered reachable toBeDone next done;
    my @installSteps = (
  selectLanguage     => [ __("Choose your language"), 1, 1, '' ],
  selectInstallClass => [ __("Select installation class"), 1, 1, '' ],
  setupSCSI          => [ __("Hard drive detection"), 1, 0, '' ],
  selectMouse        => [ __("Configure mouse"), 1, 1, 'beginner', "selectInstallClass" ],
  selectKeyboard     => [ __("Choose your keyboard"), 1, 1, '', "selectInstallClass" ],
  miscellaneous      => [ __("Miscellaneous"), 1, 1, 'beginner' ],
  partitionDisks     => [ __("Setup filesystems"), 1, 0, '', "selectInstallClass" ],
  formatPartitions   => [ __("Format partitions"), 1, -1, '', "partitionDisks" ],
  choosePackages     => [ __("Choose packages to install"), 1, 1, 'beginner', "selectInstallClass" ],
  doInstallStep      => [ __("Install system"), 1, -1, '', ["formatPartitions", "selectInstallClass"] ],
  configureNetwork   => [ __("Configure networking"), 1, 1, 'beginner', "formatPartitions" ],
  installCrypto      => [ __("Cryptographic"), 1, 1, '!expert', "configureNetwork" ],
  configureTimezone  => [ __("Configure timezone"), 1, 1, '', "doInstallStep" ],
  configureServices  => [ __("Configure services"), 1, 1, '!expert', "doInstallStep" ],
  configurePrinter   => [ __("Configure printer"), 1, 0, '', "doInstallStep" ],
  setRootPassword    => [ __("Set root password"), 1, 1, '', "formatPartitions" ],
  addUser            => [ __("Add a user"), 1, 1, '' ],
arch() !~ /alpha/ ? (
  createBootdisk     => [ __("Create a bootdisk"), 1, 0, '', "doInstallStep" ],
) : (),
  setupBootloader    => [ __("Install bootloader"), 1, 1, '', "doInstallStep" ],
  configureX         => [ __("Configure X"), 1, 1, '', ["formatPartitions", "setupBootloader"] ],
  generateAutoInstFloppy => [ __("Auto install floppy"), 1, 1, '!corporate !expert', "doInstallStep" ],
  exitInstall        => [ __("Exit install"), 0, 0, 'beginner' ],
);
    for (my $i = 0; $i < @installSteps; $i += 2) {
	my %h; @h{@installStepsFields} = @{ $installSteps[$i + 1] };
	$h{next}    = $installSteps[$i + 2];
	$h{entered} = 0;
	$h{onError} = $installSteps[$i + 2 * $h{onError}];
	$h{reachable} = !$h{needs};
	$installSteps{ $installSteps[$i] } = \%h;
	push @orderedInstallSteps, $installSteps[$i];
    }
    $installSteps{first} = $installSteps[0];
}
#-#####################################################################################
#-INTERNAL CONSTANT
#-#####################################################################################

my @install_classes = qw(normal developer server);

#-#####################################################################################
#-Default value
#-#####################################################################################
#- partition layout
my %suggestedPartitions = (
arch() =~ /^sparc/ ? (
  normal => [
    { mntpoint => "/",     size => 600 << 11, type => 0x83, ratio => 5, maxsize =>1000 << 11 },
    { mntpoint => "swap",  size => 128 << 11, type => 0x82, ratio => 1, maxsize => 400 << 11 },
    { mntpoint => "/usr",  size => 300 << 11, type => 0x83, ratio => 4, maxsize =>1500 << 11 },
    { mntpoint => "/home", size => 300 << 11, type => 0x83, ratio => 2 },
  ],
  developer => [
    { mntpoint => "/",     size => 300 << 11, type => 0x83, ratio => 1, maxsize =>1000 << 11 },
    { mntpoint => "swap",  size => 128 << 11, type => 0x82, ratio => 1, maxsize => 400 << 11 },
    { mntpoint => "/usr",  size => 300 << 11, type => 0x83, ratio => 4, maxsize =>1500 << 11 },
    { mntpoint => "/home", size => 100 << 11, type => 0x83, ratio => 5 },
  ],
  server => [
    { mntpoint => "/",     size => 300 << 11, type => 0x83, ratio => 1, maxsize =>1000 << 11 },
    { mntpoint => "swap",  size => 128 << 11, type => 0x82, ratio => 2, maxsize => 800 << 11 },
    { mntpoint => "/usr",  size => 300 << 11, type => 0x83, ratio => 3, maxsize =>1500 << 11 },
    { mntpoint => "/var",  size => 100 << 11, type => 0x83, ratio => 4 },
    { mntpoint => "/home", size => 100 << 11, type => 0x83, ratio => 5 },
  ],
) : (
  normal => [
    { mntpoint => "/",     size => 300 << 11, type => 0x83, ratio => 5, maxsize => 2500 << 11 },
    { mntpoint => "swap",  size =>  64 << 11, type => 0x82, ratio => 1, maxsize => 250 << 11 },
    { mntpoint => "/home", size => 300 << 11, type => 0x83, ratio => 2 },
  ],
  developer => [
    { mntpoint => "swap",  size =>  64 << 11, type => 0x82, ratio => 1, maxsize => 250 << 11 },
    { mntpoint => "/",     size => 150 << 11, type => 0x83, ratio => 1, maxsize => 300 << 11 },
    { mntpoint => "/usr",  size => 300 << 11, type => 0x83, ratio => 4, maxsize =>1500 << 11 },
    { mntpoint => "/home", size => 100 << 11, type => 0x83, ratio => 5 },
  ],
  server => [
    { mntpoint => "swap",  size =>  64 << 11, type => 0x82, ratio => 2, maxsize => 400 << 11 },
    { mntpoint => "/",     size => 150 << 11, type => 0x83, ratio => 1, maxsize => 250 << 11 },
    { mntpoint => "/usr",  size => 300 << 11, type => 0x83, ratio => 3, maxsize =>1500 << 11 },
    { mntpoint => "/var",  size => 100 << 11, type => 0x83, ratio => 4 },
    { mntpoint => "/home", size => 100 << 11, type => 0x83, ratio => 5 },
  ],
),
);
$suggestedPartitions{corporate} = $suggestedPartitions{server};

#-#######################################################################################
#-$O
#-the big struct which contain, well everything (globals + the interactive methods ...)
#-if you want to do a kickstart file, you just have to add all the required fields (see for example
#-the variable $default)
#-#######################################################################################
$o = $::o = {
#    bootloader => { linear => 0, lba32 => 1, message => 1, timeout => 5, restricted => 0 },
    autoSCSI   => 0,
    mkbootdisk => 1, #- no mkbootdisk if 0 or undef, find a floppy with 1, or fd1
#-    packages   => [ qw() ],
    partitioning => { clearall => 0, eraseBadPartitions => 0, auto_allocate => 0, autoformat => 0 }, #-, readonly => 0 },
#-    security => 2,
    shells => [ map { "/bin/$_" } qw(bash tcsh zsh ash ksh) ],
    authentication => { md5 => 1, shadow => 1 },
    lang         => 'en',
    isUpgrade    => 0,
    toRemove     => [],
    toSave       => [],
#-    simple_themes => 1,
#-    installClass => "normal",

    timezone => {
#-                   timezone => "Europe/Paris",
#-                   UTC      => 1,
                },
    printer => {
                 want         => 0,
                 complete     => 0,
                 str_type     => $printer::printer_type_default,
                 QUEUE        => "lp",
                 SPOOLDIR     => "/var/spool/lpd/lp",
                 DBENTRY      => "PostScript",
                 PAPERSIZE    => "letter",
                 CRLF         => 0,
                 AUTOSENDEOF  => 1,

                 DEVICE       => "/dev/lp0",

                 REMOTEHOST   => "",
                 REMOTEQUEUE  => "",

                 NCPHOST      => "", #-"printerservername",
                 NCPQUEUE     => "", #-"queuename",
                 NCPUSER      => "", #-"user",
                 NCPPASSWD    => "", #-"pass",

                 SMBHOST      => "", #-"hostname",
                 SMBHOSTIP    => "", #-"1.2.3.4",
                 SMBSHARE     => "", #-"printername",
                 SMBUSER      => "", #-"user",
                 SMBPASSWD    => "", #-"passowrd",
                 SMBWORKGROUP => "", #-"AS3",
               },
#-    superuser => { password => 'a', shell => '/bin/bash', realname => 'God' },
#-    user => { name => 'foo', password => 'bar', home => '/home/foo', shell => '/bin/bash', realname => 'really, it is foo' },

#-    keyboard => 'de',
#-    display => "192.168.1.19:1",
    steps        => \%installSteps,
    orderedSteps => \@orderedInstallSteps,

#- for the list of fields available for user and superuser, see @etc_pass_fields in install_steps.pm
#-    intf => [ { DEVICE => "eth0", IPADDR => '1.2.3.4', NETMASK => '255.255.255.128' } ],

#-step : the current one
#-prefix
#-mouse
#-keyboard
#-netc
#-autoSCSI drives hds  fstab
#-methods
#-packages compss
#-printer haveone entry(cf printer.pm)

};

#-######################################################################################
#- Steps Functions
#- each step function are called with two arguments : clicked(because if you are a
#- beginner you can force the the step) and the entered number
#-######################################################################################

#------------------------------------------------------------------------------
sub selectLanguage {
    $o->selectLanguage($_[1] == 1);

    addToBeDone {
	lang::write($o->{prefix});
	keyboard::write($o->{prefix}, $o->{keyboard});
    } 'doInstallStep' unless $::g_auto_install;
}

#------------------------------------------------------------------------------
sub selectMouse {
    my ($clicked) = $_[0];

    add2hash($o->{mouse} ||= {}, { mouse::read($o->{prefix}) }) if $o->{isUpgrade} && !$clicked;

    $o->selectMouse($clicked);
    addToBeDone { mouse::write($o->{prefix}, $o->{mouse}) } 'doInstallStep';
}

#------------------------------------------------------------------------------
sub setupSCSI {
    my ($clicked) = $_[0];
    $o->{autoSCSI} ||= $::beginner;

    $o->setupSCSI($o->{autoSCSI} && !$clicked, $clicked);
}

#------------------------------------------------------------------------------
sub selectKeyboard {
    my ($clicked) = $_[0];

    return unless $o->{isUpgrade} || !$::beginner || $clicked;

    $o->{keyboard} = (keyboard::read($o->{prefix}))[0] if $o->{isUpgrade} && !$clicked && $o->{keyboard_unsafe};
    $o->selectKeyboard if !$::beginner || $clicked;

    #- if we go back to the selectKeyboard, you must rewrite
    addToBeDone {
	lang::write($o->{prefix});
	keyboard::write($o->{prefix}, $o->{keyboard});
	lang::set_langs($o->{langs});
    } 'doInstallStep' unless $::g_auto_install;
}

#------------------------------------------------------------------------------
sub selectInstallClass {
    $o->selectInstallClass(@install_classes);
   
    $o->{partitions} ||= $suggestedPartitions{$o->{installClass}};

    if ($o->{steps}{choosePackages}{entered} >= 1 && !$o->{steps}{doInstallStep}{done}) {
        $o->setPackages(\@install_classes);
        $o->selectPackagesToUpgrade() if $o->{isUpgrade};
    }
    if ($o->{isUpgrade}) {
	@{$o->{orderedSteps}} = map { /setupSCSI/ ? ($_, "partitionDisks") : $_ } 
	                        grep { !/partitionDisks/ } @{$o->{orderedSteps}};
	my $s; foreach (@{$o->{orderedSteps}}) {
	    $s->{next} = $_ if $s;
	    $s = $o->{steps}{$_};
	}
    }
}

#------------------------------------------------------------------------------
sub partitionDisks {
    return install_any::searchAndMount4Upgrade($o) if $o->{isUpgrade};

    ($o->{hd_dev}) = cat_("/proc/mounts") =~ m|/tmp/(\S+)\s+/tmp/hdimage|;

    $::o->{steps}{formatPartitions}{done} = 0;
    eval { fs::umount_all($o->{fstab}, $o->{prefix}) } if $o->{fstab} && !$::testing;

    my $ok = fsedit::get_root($o->{fstab} || []) ? 1 : install_any::getHds($o);
    my $auto = $ok && !$o->{partitioning}{readonly} &&
	($o->{partitioning}{auto_allocate} || $::beginner && fsedit::get_fstab(@{$o->{hds}}) < 3);

    eval { fsedit::auto_allocate($o->{hds}, $o->{partitions}) } if $auto;

    if ($auto && fsedit::get_root_($o->{hds}) && $_[1] == 1) {
	#- we have a root partition, that's enough :)
	$o->install_steps::doPartitionDisks($o->{hds});	
    } elsif ($o->{partitioning}{readonly}) {
	$o->ask_mntpoint_s($o->{fstab});
    } else {
	$o->doPartitionDisks($o->{hds}, $o->{raid} ||= {});
    }
    unless ($::testing) {
	$o->rebootNeeded foreach grep { $_->{rebootNeeded} } @{$o->{hds}};
    }
    $o->{fstab} = [ fsedit::get_fstab(@{$o->{hds}}, $o->{raid}) ];
    fsedit::get_root($o->{fstab}) or die 
_("You must have a root partition.
For this, create a partition (or click on an existing one).
Then choose action ``Mount point'' and set it to `/'");

    cat_("/proc/mounts") =~ m|(\S+)\s+/tmp/rhimage nfs| &&
      !grep { $_->{mntpoint} eq "/mnt/nfs" } @{$o->{manualFstab} || []} and
	push @{$o->{manualFstab}}, { type => "nfs", mntpoint => "/mnt/nfs", device => $1, options => "noauto,ro,nosuid,rsize=8192,wsize=8192" };
}

sub formatPartitions {
    unless ($o->{isUpgrade}) {
	$o->choosePartitionsToFormat($o->{fstab});
	$o->formatMountPartitions($o->{fstab}) unless $::testing;
    }
    mkdir "$o->{prefix}/$_", 0755 foreach 
      qw(dev etc etc/profile.d etc/sysconfig etc/sysconfig/console etc/sysconfig/network-scripts
	home mnt tmp var var/tmp var/lib var/lib/rpm var/lib/urpmi);
    mkdir "$o->{prefix}/$_", 0700 foreach qw(root);

    raid::prepare_prefixed($o->{raid}, $o->{prefix});

    my $d = "/initrd/loopfs/lnx4win";
    if (-d $d) {
#-	install_any::useMedium(0);
	install_any::getAndSaveFile("lnx4win/$_", "$d/$_") foreach qw(loadlin.exe linux.pif lnx4win.exe lnx4win.ico);
    }

#-    chdir "$o->{prefix}"; was for core dumps

    #-noatime option for ext2 fs on laptops (do not wake up the hd)
    #-	 Do  not  update  inode  access times on this
    #-	 file system (e.g, for faster access  on  the
    #-	 news spool to speed up news servers).
    $o->{pcmcia} and $_->{options} = "noatime" foreach grep { isTrueFS($_) } @{$o->{fstab}};
}

#------------------------------------------------------------------------------
sub choosePackages {
    require pkgs;
    $o->setPackages if $_[1] == 1;
    $o->selectPackagesToUpgrade($o) if $o->{isUpgrade} && $_[1] == 1;
    if ($_[1] > 1 || !$o->{isUpgrade} || $::expert) {
	if ($_[1] == 1) { 
	    $o->{compssUsersChoice}{$_} = 1 foreach @{$o->{compssUsersSorted}}, 'Miscellaneous';
#	    $o->{compssUsersChoice}{KDE} = 0 if $o->{lang} =~ /ja|el|ko|th|vi|zh/; #- gnome handles much this fonts much better
	}
	$o->choosePackages($o->{packages}, $o->{compss}, 
			   $o->{compssUsers}, $o->{compssUsersSorted}, $_[1] == 1);
	my $pkg = pkgs::packageByName($o->{packages}, 'kdesu');
	pkgs::unselectPackage($o->{packages}, $pkg) if $pkg && $o->{security} > 3;

	#- check pre-condition where base backage has to be selected.
	pkgs::packageFlagSelected(pkgs::packageByName($o->{packages}, 'basesystem')) or die "basesystem package not selected";

	#- check if there are package that need installation.
	$o->{steps}{doInstallStep}{done} = 0 if $o->{steps}{doInstallStep}{done} && pkgs::packagesToInstall($o->{packages}) > 0;
    }
}

#------------------------------------------------------------------------------
sub doInstallStep {
    $o->readBootloaderConfigBeforeInstall if $_[1] == 1;

    $o->beforeInstallPackages;
    $o->installPackages;
    $o->afterInstallPackages;
}
#------------------------------------------------------------------------------
sub miscellaneous {
    $o->miscellaneous($_[0]);

    addToBeDone {
	setVarsInSh("$o->{prefix}/etc/sysconfig/system", { 
            HDPARM => $o->{miscellaneous}{HDPARM},
            CLEAN_TMP => $o->{miscellaneous}{CLEAN_TMP},
            CLASS => $::expert && "expert" || $::beginner && "beginner" || "medium",
            TYPE => $o->{installClass},
            SECURITY => $o->{security},
        });
	
	my $f = "$o->{prefix}/etc/sysconfig/usb";
	setVarsInSh($f, { 
            MOUSE => bool2yesno($o->{mouse}{device} eq "usbmouse"),
	    KBD => bool2yesno(int grep { /^keybdev\.c: Adding keyboard/ } detect_devices::syslog()),
	    getVarsFromSh($f),
	});

	install_any::fsck_option();
    } 'doInstallStep';
}

#------------------------------------------------------------------------------
sub configureNetwork {
    my ($clicked) = @_;

    if ($o->{isUpgrade} && !$clicked) {
	$o->{netc} or $o->{netc} = {};
	add2hash($o->{netc}, network::read_conf("$o->{prefix}/etc/sysconfig/network")) if -r "$o->{prefix}/etc/sysconfig/network";
	add2hash($o->{netc}, network::read_resolv_conf("$o->{prefix}/etc/resolv.conf")) if -r "$o->{prefix}/etc/resolv.conf";
	foreach (all("$o->{prefix}/etc/sysconfig/network-scripts")) {
	    if (/ifcfg-(\w+)/ && $1 !~ /^ppp/) {
		push @{$o->{intf}}, { getVarsFromSh("$o->{prefix}/etc/sysconfig/network-scripts/$_") };
	    }
	}
    }
    $o->configureNetwork($_[1] == 1);
}
#------------------------------------------------------------------------------
sub installCrypto { $o->installCrypto }

#------------------------------------------------------------------------------
sub configureTimezone {
    my ($clicked) = @_;
    my $f = "$o->{prefix}/etc/sysconfig/clock";

    require timezone;
    if ($o->{isUpgrade} && -r $f && -s $f > 0) {
	return if $_[1] == 1 && !$clicked;
	#- can't be done in install cuz' timeconfig %post creates funny things
	add2hash($o->{timezone}, { timezone::read($f) });
    }
    $o->{timezone}{timezone} ||= timezone::bestTimezone(lang::lang2text($o->{lang}));
    $o->{timezone}{UTC} = !$::beginner && !grep { isFat($_) } @{$o->{fstab}} unless exists $o->{timezone}{UTC};
    $o->timeConfig($f, $clicked);
}
#------------------------------------------------------------------------------
sub configureServices { $::expert and $o->servicesConfig }
#------------------------------------------------------------------------------
sub configurePrinter  { $o->printerConfig }
#------------------------------------------------------------------------------
sub setRootPassword {
    return if $o->{isUpgrade};

    $o->setRootPassword($_[0]);
    addToBeDone { install_any::setAuthentication($o) } 'doInstallStep';
}
#------------------------------------------------------------------------------
sub addUser {
    return if $o->{isUpgrade};

    $o->addUser($_[0]);