summaryrefslogtreecommitdiffstats
path: root/perl-install/modules.pm
blob: fa5618b29c9f49dec94c2af7d588bc923cb7d31f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
package modules; # $Id$

use strict;

use common;
use detect_devices;
use run_program;
use log;
use list_modules;
use modules::any_conf;

sub modules_descriptions() {
    my $f = '/lib/modules/' . c::kernel_version() . '/modules.description';
    -e $f or $f = '/lib/modules.description';
    map { /(\S+)\s+(.*)/ } cat_($f);
}

sub module2description { +{ modules_descriptions() }->{$_[0]} }

sub category2modules_and_description {
    my ($categories) = @_;
    my %modules_descriptions = modules_descriptions();
    map { $_ => $modules_descriptions{$_} } category2modules($categories);
}

my %mappings_24_26 = (
    "usb-ohci" => "ohci-hcd",
    "usb-uhci" => "uhci-hcd",
    "uhci" => "uhci-hcd",
    "printer" => "usblp",
    "bcm4400" => "b44",
    "3c559" => "3c359",
    "3c90x" => "3c59x",
    "dc395x_trm" => "dc395x",
);
my %mappings_26_24 = reverse %mappings_24_26;
$mappings_26_24{'uhci-hcd'} = 'usb-uhci';

sub mapping_24_26 {
    my ($modname) = @_;
    $mappings_24_26{$modname} || $modname;
}
sub mapping_26_24 {
    my ($modname) = @_;
    $mappings_26_24{$modname} || $modname;
}

sub cond_mapping_24_26 {
    my ($modname) = @_;
    c::kernel_version() =~ /^\Q2.6/ && $mappings_24_26{$modname} || $modname;
}

#-###############################################################################
#- module loading
#-###############################################################################
# handles dependencies
sub load_raw {
    my ($l, $h_options) = @_;
    if ($::testing) {
	log::l("i would load module $_ ($h_options->{$_})") foreach @$l;
    } elsif ($::isInstall && !$::move) {
	load_raw_install($l, $h_options);
    } else {
	run_program::run('/sbin/modprobe', $_, split(' ', $h_options->{$_})) 
	  or !run_program::run('/sbin/modprobe', '-n', $_) #- ignore missing modules
	  or die "insmod'ing module $_ failed" foreach @$l;
    }
    sleep 2 if any { /^(usb-storage|mousedev|printer)$/ } @$l;
}
sub load_with_options {
    my ($l, $h_options) = @_;

    my @l = map {
	dependencies_closure(cond_mapping_24_26($_));
    } @$l;

    @l = remove_loaded_modules(@l) or return;

    load_raw(\@l, $h_options);
}
sub load {
    my (@l) = @_;
    load_with_options(\@l, {});
}

# eg: load_and_configure($modules_conf, 'vfat', 'reiserfs', [ ne2k => 'io=0xXXX', 'dma=5' ])
sub load_and_configure {
    my ($conf, $module, $o_options) = @_;

    my $category = module2category($module) || '';
    my $network_devices = $category =~ m!network/(main|gigabit|usb|wireless)! && [ detect_devices::getNet() ];

    my @l = remove_loaded_modules(dependencies_closure(cond_mapping_24_26($module)));
    load_raw(\@l, { $module => $o_options });

    if ($network_devices) {
	$conf->set_alias($_, $module) foreach difference2([ detect_devices::getNet() ], $network_devices);
    }

    if (c::kernel_version() =~ /^\Q2.6/ && member($module, 'imm', 'ppa') 
	&& ! -d "/proc/sys/dev/parport/parport0/devices/$module") {
	log::l("$module loaded but is not useful, removing");
	unload($module);
	return;
    }

    $conf->set_options($module, $o_options) if $o_options;

    when_load($conf, $module);
}

sub unload {
    if ($::testing) {
	log::l("rmmod $_") foreach @_;
    } else {
	run_program::run("rmmod", $_) foreach @_;
    }
}

sub load_category {
    my ($conf, $category, $o_wait_message) = @_;

    my @try_modules = (
      if_($category =~ /scsi/,
	  if_(detect_devices::usbStorage(), 'usb-storage'),
      ),
      arch() =~ /ppc/ ? (
	  if_($category =~ /scsi/,
	    if_(detect_devices::has_mesh(), 'mesh'),
	    if_(detect_devices::has_53c94(), 'mac53c94'),
	  ),
	  if_($category =~ /net/, 'bmac', 'gmac', 'mace', 'airport'),
      ) : (),
    );
    grep {
	$o_wait_message->($_->{description}, $_->{driver}) if $o_wait_message;
	eval { load_and_configure($conf, $_->{driver}, $_->{options}) };
	$_->{error} = $@;

	$_->{try} = 1 if member($_->{driver}, 'hptraid', 'ohci1394'); #- do not warn when this fails

	!($_->{error} && $_->{try});
    } probe_category($category),
      map { { driver => $_, description => $_, try => 1 } } @try_modules;
}

sub load_parallel_zip {
    my ($conf) = @_;

    arch() !~ /ppc/ or return;

    eval { modules::load('parport_pc') };
    grep { 
	eval { modules::load_and_configure($conf, $_); 1 };
    } 'imm', 'ppa';
}

sub probe_category {
    my ($category) = @_;

    my @modules = category2modules($category);

    if_($category =~ /sound/ && arch() =~ /ppc/ && detect_devices::get_mac_model() !~ /IBM/,
	{ driver => 'snd-powermac', description => 'Macintosh built-in' },
    ),
    grep {
	if ($category eq 'network/isdn') {
	    my $b = $_->{driver} =~ /ISDN:([^,]*),?([^,]*)(?:,firmware=(.*))?/;
	    if ($b) {
                $_->{driver} = $1;
                $_->{type} = $2;
                $_->{type} =~ s/type=//;
                $_->{firmware} = $3;
                $_->{driver} eq "hisax" and $_->{options} .= " id=HiSax";
	    }
	    $b;
	} else {
	    member($_->{driver}, @modules);
	}
    } detect_devices::probeall();
}


#-###############################################################################
#- modules.conf functions
#-###############################################################################
sub write_preload_conf {
    my ($conf) = @_;
    my @l;
    push @l, 'scsi_hostadapter' if $conf->get_probeall('scsi_hostadapter');
    push @l, intersection([ list_modules::category2modules('multimedia/dvb'), list_modules::category2modules('multimedia/tv') ],
			  [ map { $_->{driver} } detect_devices::probeall() ]);
    push @l, map { if_($_->{driver} =~ /^Module:(.*)/, $1) } detect_devices::probeall();
    push @l, 'nvram' if detect_devices::isLaptop();
    push @l, map { $_->{driver} } probe_category('various/laptop');
    push @l, map { $_->{driver} } probe_category('multimedia/joystick');
    push @l, map { $_->{driver} } probe_category('various/crypto');
    push @l, 'padlock' if cat_("/proc/cpuinfo") =~ /rng_en/;
    push @l, 'evdev' if detect_devices::getSynapticsTouchpads();
    my @l_26 = @l;
    push @l_26, map { $_->{driver} } probe_category('various/agpgart');
    append_to_modules_loaded_at_startup("$::prefix/etc/modules", @l);
    append_to_modules_loaded_at_startup("$::prefix/etc/modprobe.preload", @l_26);
}

sub append_to_modules_loaded_at_startup_for_all_kernels {
    append_to_modules_loaded_at_startup($_, @_) foreach "$::prefix/etc/modules", "$::prefix/etc/modprobe.preload";
}

sub append_to_modules_loaded_at_startup {
    my ($file, @l) = @_;
    my $l = join '|', map { '^\s*' . $_ . '\s*$' } @l;
    log::l("to put in $file ", join(", ", @l));

    substInFile { 
	$_ = '' if $l && /$l/;
	$_ .= join '', map { "$_\n" } @l if eof;
    } $file;
}


#-###############################################################################
#- internal functions
#-###############################################################################
sub loaded_modules() { 
    map { /(\S+)/ } cat_("/proc/modules");
}
sub remove_loaded_modules {
    my (@l) = @_;
    difference2([ uniq(@l) ], [ map { my $s = $_; $s =~ s/_/-/g; $s, $_ } loaded_modules() ]);
}

sub read_already_loaded { 
    my ($conf) = @_;
    when_load($conf, $_) foreach reverse loaded_modules();
}

my $module_extension = c::kernel_version() =~ /^\Q2.4/ ? 'o' : 'ko';

sub name2file {
    my ($name) = @_;
    "$name.$module_extension";
}

sub when_load {
    my ($conf, $name) = @_;

    if (my $category = module2category($name)) {
	when_load_category($conf, $name, $category);
    }

    if (my $above = $conf->get_above($name)) {
	load($above); #- eg: for snd-pcm-oss set by set_sound_slot()
    }
}

sub when_load_category {
    my ($conf, $name, $category) = @_;

    if ($category =~ m,disk/(ide|scsi|hardware_raid|sata|usb|firewire),) {
	$conf->add_probeall('scsi_hostadapter', $name);
	eval { load('sd_mod') };
    } elsif ($category eq 'bus/usb') {
	$conf->add_probeall('usb-interface', $name);
        -f '/proc/bus/usb/devices' or eval {
            require fs; fs::mount_usbfs('');
            #- ensure keyboard is working, the kernel must do the job the BIOS was doing
            sleep 4;
            load("usbkbd", "keybdev") if detect_devices::usbKeyboards();
        };
    } elsif ($category eq 'bus/firewire') {
	$conf->set_alias('ieee1394-controller', $name);
    } elsif ($category =~ /sound/) {
	my $sound_alias = find { /^sound-slot-[0-9]+$/ && $conf->get_alias($_) eq $name } $conf->modules;
	$sound_alias ||= 'sound-slot-0';
	$conf->set_sound_slot($sound_alias, $name);
    }
}

#-###############################################################################
#- isInstall functions
#-###############################################################################
sub cz_file() { 
    "/lib/modules" . (arch() eq 'sparc64' && "64") . ".cz-" . c::kernel_version();
}

sub extract_modules {
    my ($dir, @modules) = @_;
    my $cz = cz_file();
    if (!-e $cz && !$::uml_install) {
	unlink $_ foreach glob_("/lib/modules*.cz*");
	require install_any;
        install_any::getAndSaveFile("install/stage2/live$cz", $cz) or die "failed to get modules $cz: $!";
    }
    eval {
	require packdrake;
	my $packer = new packdrake($cz, quiet => 1);
	$packer->extract_archive($dir, map { name2file($_) } @modules) if @modules;
	map { $dir . '/' . name2file($_) } @modules;
    };
}

sub load_raw_install {
    my ($l, $options) = @_;

    extract_modules('/tmp', @$l);
    my @failed = grep {
	my $m = '/tmp/' . name2file($_);
	if (-e $m) {
            my $stdout;
            my $rc = run_program::run(["/usr/bin/insmod_", "insmod"], '2>', \$stdout, $m, split(' ', $options->{$_}));
            log::l(chomp_($stdout)) if $stdout;
            if ($rc) {
                unlink $m;
                '';
            } else {
		'error';
            }
	} else {
	    log::l("missing module $_");
	    'error';
	}
    } @$l;

    die "insmod'ing module " . join(", ", @failed) . " failed" if @failed;

}

1;
nkite maršrutą, " #~ "ugniasienės ar tarpinio serverio nustatymus)\n" #~ msgid "" #~ "Problem occured while connecting to the server, please contact the " #~ "support team" #~ msgstr "" #~ "Jungiantis prie serverio įvyko klaida, susisiekite su palaikymo komanda" #~ msgid "Response from Mandriva Online server\n" #~ msgstr "Atsakymas iš Mandriva Online serverio\n" #~ msgid "No check" #~ msgstr "Netikrinti" #~ msgid "Checking config file: Not present\n" #~ msgstr "Tikrinama konfigūracijos byla: nėra\n" #~ msgid "Logs" #~ msgstr "Įrašai" #~ msgid "Clear" #~ msgstr "Išvalyti" #~ msgid "" #~ "mdonline version %s\n" #~ "Copyright (C) %s Mandriva.\n" #~ "This is free software and may be redistributed under the terms of the GNU " #~ "GPL.\n" #~ "\n" #~ "usage:\n" #~ msgstr "" #~ "mdonline versija %s\n" #~ "Autorinės teisės (C) %s Mandriva.\n" #~ "Tai nemokama programa ir gali būti platinama pagal GNU GPL licenciją.\n" #~ " \n" #~ "naudojimas:\n" #~ msgid "Mandriva Online" #~ msgstr "Mandriva Online" #~ msgid "I already have an account" #~ msgstr "Aš jau turiu abonentą" #~ msgid "I want to subscribe" #~ msgstr "Noriu užsiregistruoti" #~ msgid "Mr." #~ msgstr "Ponas" #~ msgid "Mrs." #~ msgstr "Ponia" #~ msgid "Ms." #~ msgstr "Panelė" #~ msgid "Reading configuration\n" #~ msgstr "Skaitau konfigūraciją\n" #~ msgid "" #~ "This assistant will help you to upload your configuration\n" #~ "(packages, hardware configuration) to a centralized database in\n" #~ "order to keep you informed about security updates and useful upgrades.\n" #~ msgstr "" #~ "Pagalbininkas padės jums persiųsti reikiamus konfigūracijos duomenis\n" #~ "(paketus, įrangos konfigūraciją) į centralizuotą duomenų bazę,\n" #~ "kad vėliau galėtume jus informuoti apie saugumo atnaujinimus ir naudingus " #~ "patobulinimus.\n" #~ msgid "Account creation or authentication" #~ msgstr "Abonento sukūrimas arba atpažinimas" #~ msgid "Enter your Mandriva Online login, password and machine name:" #~ msgstr "" #~ "Įveskite savo Mandriva Online abonento vardą, slaptažodį ir kompiuterio " #~ "vardą:" #~ msgid "Email address:" #~ msgstr "El. pašto adresas:" #~ msgid "Country" #~ msgstr "Valstybė" #~ msgid "Password:" #~ msgstr "Slaptažodis" #, fuzzy #~ msgid "Machine description:" #~ msgstr "Kompiuterio vardas:" #~ msgid "Machine name must be 1 to 40 alphanumerical characters" #~ msgstr "" #~ "Kompiuterio vardą turi sudaryti nuo 1 iki 40 raidinių-skaitinių simbolių" #~ msgid "Connecting to Mandriva Online website..." #~ msgstr "Jungiamasi prie Mandriva Online svetainės..." #~ msgid "" #~ "In order to benefit from Mandriva Online services,\n" #~ "we are about to upload your configuration.\n" #~ "\n" #~ "The Wizard will now send the following information to Mandriva:\n" #~ "\n" #~ "1) the list of packages you have installed on your system,\n" #~ "\n" #~ "2) your hardware configuration.\n" #~ "\n" #~ "If you feel uncomfortable by that idea, or do not want to benefit from " #~ "this service,\n" #~ "please press 'Cancel'. By pressing 'Next', you allow us to keep you " #~ "informed\n" #~ "about security updates and useful upgrades via personalized email " #~ "alerts.\n" #~ "Furthermore, you benefit from discounted paid support services on\n" #~ "www.mandrivaexpert.com." #~ msgstr "" #~ "Kad jūs galėtumėte naudotis Mandriva Online privalumais,\n" #~ "mes parsisiųsime jūsų kompiuterio konfigūraciją.\n" #~ "\n" #~ "Į Mandriva vedlys netrukus išsiųs sekančią informaciją:\n" #~ "\n" #~ "1) jūsų sistemoje įdiegtų paketų sąrašą,\n" #~ "\n" #~ "2) jūsų įrangos konfigūraciją.\n" #~ "\n" #~ "Jei ši mintis jums nepatinka arba jūs nenorite naudotis šios tarnybos " #~ "paslaugomis,\n" #~ "paspauskite 'Atšaukti'. Paspausdami 'Tęsti', jūs leisite mums jus " #~ "informuoti\n" #~ "apie saugumo atnaujinimus ir naudingus papildymus per asmeninę pašto " #~ "sistemą.\n" #~ "Be to, jūs naudositės palaikymo tarnybos paslaugų nuolaidomis svetainėje\n" #~ "www.mandrivaexpert.com." #~ msgid "Connection problem" #~ msgstr "Sujungimo klaida" #~ msgid "Problem occurs when uploading files, please try again" #~ msgstr "Persiunčiant bylas įvyko klaida, pabandykite dar kartą" #~ msgid "Create a Mandriva Online Account" #~ msgstr "Sukurti Mandriva Online abonentą" #~ msgid "Greeting:" #~ msgstr "Sveikinimas:" #~ msgid "First name:" #~ msgstr "Vardas:" #~ msgid "Last name:" #~ msgstr "Pavardė:" #~ msgid "Confirm Password:" #~ msgstr "Patvirtinkite slaptažodį:" #~ msgid "" #~ "The passwords do not match\n" #~ " Please try again\n" #~ msgstr "" #~ "Slaptažodžiai nesutampa\n" #~ " Pabandykite dar kartą\n" #~ msgid "Please fill in each field" #~ msgstr "Užpildykite visus laukelius" #~ msgid "Not a valid mail address!\n" #~ msgstr "Neteisingas el. pašto adresas!\n" #~ msgid "" #~ "Mandriva Online Account successfully created.\n" #~ "Please click \"Next\" to authenticate and upload your configuration\n" #~ msgstr "" #~ "Mandriva Online abonentas sėkmingai sukurtas.\n" #~ "Atpažinimui ir jūsų konfigūracijos persiuntimui paspauskite \"Tęsti\"\n" #~ msgid "Your upload was successful!" #~ msgstr "Jūsų siuntimas buvo sėkmingas!" #~ msgid "" #~ "From now you will receive on security and updates \n" #~ "announcements thanks to Mandriva Online." #~ msgstr "" #~ "Dėka Mandriva online nuo šio momento jūs gausite\n" #~ "pranešimus apie saugumo pataisas ir atnaujinimus." #~ msgid "" #~ "Mandriva Online offers you the ability to automate the updates.\n" #~ "A program will run regulary in your system waiting for new updates\n" #~ msgstr "" #~ "MandrivaOnlina jums siūlo galimybę automatizuoti atnaujinimus.\n" #~ "Programa bus reguliariai paleidžiama jūsų sistemoje ir lauks atnaujinimų\n" #~ msgid "Your Mandriva Online account has been successfully configured\n" #~ msgstr "Jūsų Mandriva Online abonentas buvo sėkmingai sukonfigūruotas\n" #~ msgid "Configuration uploaded successfully" #~ msgstr "Konfigūracija persiųsta sėkmingai" #~ msgid "Problem uploading configuration" #~ msgstr "Konfigūracijos persiuntimo problema" #~ msgid "" #~ "Cannot connect to Mandriva Online website: wrong login/password or router/" #~ "firewall bad settings" #~ msgstr "" #~ "Negaliu prisijungti prie Mandriva Online svetainės: neteisingas " #~ "prisijungimo vardas/slaptažodis arba blogi maršrutizatoriaus/ugniasienės " #~ "nustatymai" #~ msgid " --applet\t\t- launch Mandriva Update.\n" #~ msgstr " --applet\t\t- paleisti Mandriva Update.\n" #~ msgid "Choose which packages should be installed and Press Ok" #~ msgstr "Pasirinkite, kokius paketus įdiegsite ir paspauskite Gerai" #~ msgid "System is busy. Please wait ..." #~ msgstr "Sistema užimta. Palaukite ..." #~ msgid "Sending configuration..." #~ msgstr "Siunčiama konfigūracija..." #~ msgid "Unsecure invocation: Method available through httpS only" #~ msgstr "Nesaugus kreipimasis: metodas galimas tik httpS protokolu" #~ msgid "No %s file found. Run mdkonline wizard first" #~ msgstr "Nerasta %s byla. Pirmiausia paleiskite mdkonline vedlį" #~ msgid "Mandriva Update could not contact the site, we will try again." #~ msgstr "" #~ "Mandriva Update negali prisijungti prie svetainės, pabandysime dar kartą." #~ msgid "Login:" #~ msgstr "Prisijungimo vardas:" #~ msgid "or" #~ msgstr "arba" #~ msgid "wrong password:" #~ msgstr "neteisingas slaptažodis:" #~ msgid "" #~ "Your login or password was wrong.\n" #~ " Either you'll have to type it again, or you'll need to create an account " #~ "on Mandriva Online.\n" #~ " In the latter case, go back to the first step to connect to Mandriva " #~ "Online.\n" #~ " Be aware that you must also provide a Machine name \n" #~ " (only alphabetical characters are admitted)" #~ msgstr "" #~ "Jūsų prisijungimo vardas arba slaptažodis neteisingi.\n" #~ " Arba įrašykite juos dar kartą, arba jums reikės susikurti Mandriva " #~ "Online abonentą.\n" #~ " Pastaruoju atveju, grįžkite į prisijungimo prie Mandriva Online " #~ "žingsnio.\n" #~ " Žinokite, kad jūs taip pat turite nurodyti ir kompiuterio vardą \n" #~ " (leidžiami tik raidiniai simboliai)" #~ msgid "Mail contact:" #~ msgstr "El. pašto kontaktas:" #~ msgid "Please provide a login" #~ msgstr "Nurodykite prisijungimo vardą" #~ msgid "Login and password should be less than 12 characters\n" #~ msgstr "" #~ "Prisijungimo vardas ir slaptažodis negali būti ilgesni kaip 12 simbolių\n" #~ msgid "Special characters are not allowed\n" #~ msgstr "Specialūs simboliai neleidžiami\n" #~ msgid "Email not valid\n" #~ msgstr "Negaliojantis el. pašto adresas\n" #~ msgid "Account already exists\n" #~ msgstr "Toks abonentas jau yra\n" #~ msgid "Problem connecting to server \n" #~ msgstr "Prisijungimo prie serverio klaida \n" #~ msgid "Unable to update packages from mdkupdate medium.\n" #~ msgstr "Negaliu atnaujinti paketų sarašo iš mdkupdate šaltinio. \n" #, fuzzy #~ msgid "Please Wait" #~ msgstr "Prašom palaukti" #~ msgid "Next" #~ msgstr "Sekantis" #~ msgid "Cancel" #~ msgstr "Atšaukti" #~ msgid "Previous" #~ msgstr "Ankstesnis" #~ msgid "Welcome to Mandriva Online" #~ msgstr "Sveiki atvykę į Mandriva Online" #, fuzzy #~ msgid "I don't have a Mandriva Online account and I want to subscribe" #~ msgstr "Aš neturiu Mandriva Online sąskaitos bet noriu " #~ msgid "Authentification" #~ msgstr "Autentifikacija" #, fuzzy #~ msgid "Send Configuration" #~ msgstr "Skaitau nustatymus\n" #~ msgid "Finish" #~ msgstr "Baigti" #~ msgid "automated Upgrades" #~ msgstr "automatizuoti Atnaujinimai" #, fuzzy #~ msgid "Country:" #~ msgstr "Kantri" #~ msgid "Quitting Wizard\n" #~ msgstr "Baigti vedlį\n" #~ msgid "Subscribe" #~ msgstr "Užsiprenumeruoti" #~ msgid "Yes I want automated updates" #~ msgstr "Taip, aš noriu automatinių atnaujinimų" #~ msgid " --security - use only security media.\n" #~ msgstr " --security - naudoti tik saugumo šaltinius.\n" #~ msgid " -v - verbose mode.\n" #~ msgstr " -v - verbose mode.\n" #~ msgid "" #~ "You need to have an account on Mandriva Online, or update your " #~ "subscription." #~ msgstr "" #~ "Jūs turite turėti sąskaita Mandriva Online servisui, arba atnaujinti " #~ "prenumeratą." #~ msgid "Your login or password may be wrong" #~ msgstr "Jūsų prisijungimo vardas ir slaptažodis gali buti klaidingi" #~ msgid "Unable to create mdkupdate medium.\n" #~ msgstr "Negaliu sukurti mdkupdate šaltinio. \n" #~ msgid "Africa" #~ msgstr "Afrika" #~ msgid "Asia" #~ msgstr "Azija" #~ msgid "Australia" #~ msgstr "Australija" #~ msgid "Europe" #~ msgstr "Europa" #~ msgid "North America" #~ msgstr "Šiaurės Amerika" #~ msgid "South America" #~ msgstr "Pietų Amerika" #~ msgid "Back" #~ msgstr "Atgal" #~ msgid "Warning: No browser specified" #~ msgstr "Ispėjimas: Nenurodyta naršyklė" #~ msgid "Sending your Configuration" #~ msgstr "Siusti jūsų nustatymus" #~ msgid "Error while sending informations" #~ msgstr "Klaida siunčiant informacija" #~ msgid "Finished" #~ msgstr "Baigta" #~ msgid "Choose your geographical location" #~ msgstr "Pasirinkite jūsų geografinę padėtį" #~ msgid "OK" #~ msgstr "OK" #~ msgid "Really abort? - Mandriva Online" #~ msgstr "Tikrai Nutraukti ? - Mandriva Online"