summaryrefslogtreecommitdiffstats
path: root/live/draklive-install/po/ro.po
blob: e92413483eb96530ee2402b1cda3c44d792fb78d (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
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
# Translation file of Mandriva Linux graphic install
# Copyright (c) 2000 Mandriva
# Florin Grad <florin@mandriva.com>, 1999-2000
# Dragos Marian Barbu <dragosb@softhome.net>, 2000
# Ovidiu Constantin <ovidiu.constantin@gmx.net>, 2002, 2003
# Harald Ersch <harald@ersch.ro>,2003
#
msgid ""
msgstr ""
"Project-Id-Version: DrakX 7.1\n"
"POT-Creation-Date: 2006-02-23 13:25+0100\n"
"PO-Revision-Date: 2003-09-11 18:11+0200\n"
"Last-Translator: Ovidiu Constantin <ovidiu.constantin@gmx.net>\n"
"Language-Team: Romanian Translators for Free Software <rtfs-project@lists."
"sourceforge.net>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"

#: ../draklive-install:59
#, c-format
msgid "Mandriva Live"
msgstr ""

#: ../draklive-install:65
#, c-format
msgid "This wizard will help you to install the live distribution."
msgstr ""

#: ../draklive-install:83
#, c-format
msgid "Computing total size"
msgstr ""

#: ../draklive-install:95
#, fuzzy, c-format
msgid "Copying in progress"
msgstr "Detecţia este în progres..."

#: ../draklive-install:163
#, c-format
msgid "Congratulations"
msgstr "Felicitări"

#: ../draklive-install:163
#, c-format
msgid ""
"Please halt your computer, remove your live system, and restart your "
"computer."
msgstr ""

#: ../draklive-install:179 ../draklive-install:404
#, c-format
msgid "You need to reboot for the partition table modifications to take place"
msgstr ""
"Trebuie să redemaraţi pentru a înregistra modificările tabelei de partiţii"

#: ../draklive-install:230
#, c-format
msgid "Choose the partitions you want to format"
msgstr "Alegeţi partiţiile pe care doriţi sa le formataăi"

#: ../draklive-install:232
#, c-format
msgid "Check bad blocks?"
msgstr "Să verific blocurile defectuoase?"

#: ../draklive-install:261
#, c-format
msgid ""
"Failed to check filesystem %s. Do you want to repair the errors? (beware, "
"you can lose data)"
msgstr ""

#: ../draklive-install:264
#, c-format
msgid "Not enough swap space to fulfill installation, please add some"
msgstr "Swap insuficient pentru a termina instalarea, mai adăugaţi ceva"

#: ../draklive-install:314
#, c-format
msgid "No partition available"
msgstr "nici o partiţie disponibilă"

#: ../draklive-install:317
#, c-format
msgid "Scanning partitions to find mount points"
msgstr "Scanez partiţiile pentru a găsi punctele de montare"

#: ../draklive-install:324
#, c-format
msgid "Choose the mount points"
msgstr "Alegeţi punctele de montare"

#: ../draklive-install:325
#, c-format
msgid "Partitioning"
msgstr "Partiţionare"

#: ../draklive-install:360
#, c-format
msgid "Duplicate mount point %s"
msgstr "Punct de montare duplicat %s"

#: ../draklive-install:386
#, c-format
msgid "Continue anyway?"
msgstr "Continuaţi totuşi?"

#: ../draklive-install:391
#, c-format
msgid "Quit without saving"
msgstr "Ieşire fără a înregistra"

#: ../draklive-install:391
#, c-format
msgid "Quit without writing the partition table?"
msgstr "Ieşire din program fără a scrie în tabela de partiţii ?"

#: ../draklive-install:397
#, c-format
msgid "Do you want to save /etc/fstab modifications"
msgstr "Doriţi să salvaţi modificările în /etc/fstab?"

#: ../draklive-install:409
#, c-format
msgid ""
"You should format partition %s.\n"
"Otherwise no entry for mount point %s will be written in fstab.\n"
"Quit anyway?"
msgstr ""

#: ../install_interactive.pm:22
#, c-format
msgid ""
"Some hardware on your computer needs ``proprietary'' drivers to work.\n"
"You can find some information about them at: %s"
msgstr ""

#: ../install_interactive.pm:62
#, c-format
msgid ""
"You must have a root partition.\n"
"For this, create a partition (or click on an existing one).\n"
"Then choose action ``Mount point'' and set it to `/'"
msgstr ""
"Trebuie să aveţi o partiţie root.\n"
"Pentru aceasta, creaţi o partiţie (sau faceţi clic pe un existentă).\n"
"Alegeţi apoi acţiunea ``Punct de montare'' şi fixaţi-o la '/'"

#: ../install_interactive.pm:67
#, c-format
msgid ""
"You do not have a swap partition.\n"
"\n"
"Continue anyway?"
msgstr ""
"Nu aveţi nici o partiţie swap\n"
"\n"
"Să continui totuşi?"

#: ../install_interactive.pm:70
#, c-format
msgid "You must have a FAT partition mounted in /boot/efi"
msgstr "Trebuie să aveţi o partiţie FAT montată în /boot/efi"

#: ../install_interactive.pm:95
#, c-format
msgid "Use free space"
msgstr "Foloseşte spaţiul liber"

#: ../install_interactive.pm:97
#, c-format
msgid "Not enough free space to allocate new partitions"
msgstr "Spaţiu pe disc insuficient pentru alocarea de noi partiţii"

#: ../install_interactive.pm:105
#, c-format
msgid "Use existing partitions"
msgstr "Foloseşte partiţionarea existentă"

#: ../install_interactive.pm:107
#, c-format
msgid "There is no existing partition to use"
msgstr "Nu există partiţii utilizabile"

#: ../install_interactive.pm:114
#, c-format
msgid "Use the Windows partition for loopback"
msgstr "Foloseşte partiţia Windows pentru loopback"

#: ../install_interactive.pm:117
#, c-format
msgid "Which partition do you want to use for Linux4Win?"
msgstr "Ce partiţie doriţi să folosiţi pentru a instala Linux4Win?"

#: ../install_interactive.pm:119
#, c-format
msgid "Choose the sizes"
msgstr "Alegeţi mărimile"

#: ../install_interactive.pm:120
#, c-format
msgid "Root partition size in MB: "
msgstr "Mărimea partiţiei root în MB:"

#: ../install_interactive.pm:121
#, c-format
msgid "Swap partition size in MB: "
msgstr "Mărimea partiţiei swap în MB: "

#: ../install_interactive.pm:130
#, c-format
msgid "There is no FAT partition to use as loopback (or not enough space left)"
msgstr ""

#: ../install_interactive.pm:137
#, c-format
msgid "Use the free space on the Windows partition"
msgstr "Foloseşte spaţiul liber din partiţia Windows"

#: ../install_interactive.pm:139
#, c-format
msgid "Which partition do you want to resize?"
msgstr "Care partiţie doriţi să o redimensionaţi?"

#: ../install_interactive.pm:153
#, c-format
msgid ""
"The FAT resizer is unable to handle your partition, \n"
"the following error occurred: %s"
msgstr ""

#: ../install_interactive.pm:156 ../install_interactive.pm:188
#, c-format
msgid "Resizing"
msgstr "Redimensionare"

#: ../install_interactive.pm:156
#, c-format
msgid "Computing the size of the Windows partition"
msgstr "Calculez dimensiunea partiţiei Windows"

#: ../install_interactive.pm:163
#, c-format
msgid ""
"Your Windows partition is too fragmented. Please reboot your computer under "
"Windows, run the ``defrag'' utility, then restart the Mandriva Linux "
"installation."
msgstr ""

#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
#: ../install_interactive.pm:166
#, c-format
msgid ""
"WARNING!\n"
"\n"
"DrakX will now resize your Windows partition. Be careful: this\n"
"operation is dangerous. If you have not already done so, you\n"
"first need to exit the installation, run \"chkdsk c:\" from a\n"
"Command Prompt under Windows (beware, running graphical program\n"
"\"scandisk\" is not enough, be sure to use \"chkdsk\" in a\n"
"Command Prompt!), optionally run defrag, then restart the\n"
"installation. You should also backup your data.\n"
"When sure, press Ok."
msgstr ""
"AVERTISMENT!\n"
"\n"
"DrakX va redimensiona acum partiţia Windows. Aveţi grijă: această\n"
"operaţie este periculoasă. Dacă nu aţi făcut-o deja, trebuie să părăsiţi\n"
"instalarea, să rulaţi \"chkdsk c:\" de la linia de comandă sub Windows\n"
"(atenţie, rularea programului grafic \"scandisk\" nu ajunge, asiguraţi-vă\n"
"că folosiţi \"chkdsk\" de la linia de comandă!), opţional rulaţi defrag, "
"apoi\n"
"reîncepeţi instalarea. Ar trebui de asemenea să faceţi o copie a datelor\n"
"dumneavoastră. Când sunteţi sigur, apăsaţi Ok."

#: ../install_interactive.pm:178
#, c-format
msgid "Which size do you want to keep for Windows on"
msgstr "Cât spaţiu doriţi să păstraţi alocat pentru Windows pe"

#: ../install_interactive.pm:179
#, c-format
msgid "partition %s"
msgstr "partiţia %s"

#: ../install_interactive.pm:188
#, c-format
msgid "Resizing Windows partition"
msgstr "Redimensionez partiţia Windows"

#: ../install_interactive.pm:193
#, c-format
msgid "FAT resizing failed: %s"
msgstr "Redimensionarea FAT a eşuat: %s"

#: ../install_interactive.pm:196
#, c-format
msgid ""
"To ensure data integrity after resizing the partition(s), \n"
"filesystem checks will be run on your next boot into Windows(TM)"
msgstr ""

#: ../install_interactive.pm:208
#, c-format
msgid "There is no FAT partition to resize (or not enough space left)"
msgstr ""

#: ../install_interactive.pm:213
#, c-format
msgid "Remove Windows(TM)"
msgstr "Şterge Windows(TM)"

#: ../install_interactive.pm:213
#, fuzzy, c-format
msgid "Erase and use entire disk"
msgstr "Şterge tot discul"

#: ../install_interactive.pm:215
#, c-format
msgid "You have more than one hard drive, which one do you install linux on?"
msgstr ""
"Aveţi mai multe discuri fixe, pe care din ele doriţi să instalaţi Linux?"

#: ../install_interactive.pm:219
#, c-format
msgid "ALL existing partitions and their data will be lost on drive %s"
msgstr "TOATE partiţiile existente şi datele lor se vor pierde pe unitatea %s"

#: ../install_interactive.pm:228
#, c-format
msgid "Custom disk partitioning"
msgstr "Partiţionare disc personalizată"

#: ../install_interactive.pm:232
#, c-format
msgid "Use fdisk"
msgstr "Foloseşte fdisk"

#: ../install_interactive.pm:235
#, c-format
msgid ""
"You can now partition %s.\n"
"When you are done, do not forget to save using `w'"
msgstr ""
"Puteţi partiţiona acum discul %s \n"
"Cînd aţi terminat, nu uitaţi să înregistraţi folosind `w'"

#: ../install_interactive.pm:271
#, c-format
msgid "I can not find any room for installing"
msgstr "Nu am spaţiu suficient pentru instalare"

#: ../install_interactive.pm:275
#, c-format
msgid "The DrakX Partitioning wizard found the following solutions:"
msgstr "Asistentul de partiţionare DrakX a găsit următoarele soluţii:"

#: ../install_interactive.pm:281
#, c-format
msgid "Partitioning failed: %s"
msgstr "Partiţionarea a eşuat: %s"

#: ../install_interactive.pm:288
#, c-format
msgid "Bringing up the network"
msgstr "Pornire reţea"

#: ../install_interactive.pm:293
#, c-format
msgid "Bringing down the network"
msgstr "Oprire reţea"

#~ msgid "none"
#~ msgstr "nici unul"
'"); } sub leavingStep { my ($o, $step) = @_; log::l("step `$step' finished"); if (-d "$o->{prefix}/root/drakx") { eval { cp_af("/tmp/ddebug.log", "$o->{prefix}/root/drakx") }; output(install_any::auto_inst_file(), install_any::g_auto_install(1)); } for (my $s = $o->{steps}{first}; $s; $s = $o->{steps}{$s}{next}) { #- the reachability property must be recomputed each time to take #- into account failed step. next if $o->{steps}{$s}{done} && !$o->{steps}{$s}{redoable}; my $reachable = 1; if (my $needs = $o->{steps}{$s}{needs}) { my @l = ref($needs) ? @$needs : $needs; $reachable = min(map { $o->{steps}{$_}{done} || 0 } @l); } $o->{steps}{$s}{reachable} = 1 if $reachable; } $o->{steps}{$step}{reachable} = $o->{steps}{$step}{redoable}; while (my $f = shift @{$o->{steps}{$step}{toBeDone} || []}) { eval { &$f() }; $o->ask_warn(N("Error"), [ N("An error occurred, but I don't know how to handle it nicely. Continue at your own risk."), formatError($@) ]) if $@; } } sub errorInStep { my ($_o, $_err) = @_; print "error :(\n"; c::_exit(1); } sub kill_action {} #-###################################################################################### #- Steps Functions #-###################################################################################### #------------------------------------------------------------------------------ sub selectLanguage { my ($o) = @_; #- for auto_install compatibility with old $o->{lang} $o->{locale} = lang::system_locales_to_ourlocale($o->{lang}, $o->{lang}) if $o->{lang}; lang::set($o->{locale}{lang}, !$o->isa('interactive::gtk')); $o->{locale}{langs} ||= { $o->{locale}{lang} => 1 }; if (!exists $o->{locale}{country}) { $o->{locale}{country} = $1 if lang::l2locale($o->{locale}{lang}) =~ /^.._(..)/; } lang::langs_selected($o->{locale}); log::l("selectLanguage: pack_langs ", lang::pack_langs($o->{locale}{langs})); #- for auto_install compatibility with old $o->{keyboard} containing directly $o->{keyboard}{KEYBOARD} $o->{keyboard} = { KEYBOARD => $o->{keyboard} } if $o->{keyboard} && !ref($o->{keyboard}); if (!$o->{keyboard} || $o->{keyboard}{unsafe}) { $o->{keyboard} = keyboard::from_usb() || keyboard::lang2keyboard($o->{locale}{lang}); $o->{keyboard}{unsafe} = 1; keyboard::setup($o->{keyboard}) if !$::live; } addToBeDone { lang::write_langs($o->{prefix}, $o->{locale}{langs}); } 'formatPartitions' unless $::g_auto_install; addToBeDone { lang::write($o->{prefix}, $o->{locale}); } 'installPackages' unless $::g_auto_install; } #------------------------------------------------------------------------------ sub selectKeyboard { my ($o) = @_; $o->{keyboard}{KBCHARSET} = lang::l2charset($o->{locale}{lang}); keyboard::setup($o->{keyboard}); addToBeDone { keyboard::write($o->{keyboard}); } 'installPackages' if !$::g_auto_install && (!$o->{isUpgrade} || !$o->{keyboard}{unsafe}); if ($o->{raw_X}) { require Xconfig::default; Xconfig::default::config_keyboard($o->{raw_X}, $o->{keyboard}); $o->{raw_X}->write; } } #------------------------------------------------------------------------------ sub acceptLicense {} #------------------------------------------------------------------------------ sub setupSCSI { my ($o) = @_; modules::configure_pcmcia($o->{pcmcia}) if $o->{pcmcia}; modules::load_ide(); modules::load_category('bus/firewire'); modules::load_category('disk/scsi|hardware_raid'); install_any::getHds($o, $o); } #------------------------------------------------------------------------------ sub selectInstallClass { my ($o) = @_; if ($o->{partitioning}{use_existing_root} || $o->{isUpgrade}) { # either one root is defined (and all is ok), or we take the first one we find my $p = fsedit::get_root_($o->{fstab}) || (first(install_any::find_root_parts($o->{fstab}, $o->{prefix})) || die)->{part}; install_any::use_root_part($o->{all_hds}, $p, $o->{prefix}); } } #------------------------------------------------------------------------------ sub doPartitionDisksBefore { my ($o) = @_; eval { eval { fs::umount("$o->{prefix}/proc") }; eval { fs::umount_all($o->{fstab}, $o->{prefix}) }; eval { sleep 1; fs::umount_all($o->{fstab}, $o->{prefix}) } if $@; #- HACK } if $o->{fstab} && !$::testing && !$::live; } #------------------------------------------------------------------------------ sub doPartitionDisksAfter { my ($o) = @_; if (!$::testing) { my $hds = $o->{all_hds}{hds}; partition_table::write($_) foreach @$hds; $_->{rebootNeeded} and $o->rebootNeeded foreach @$hds; } fs::set_removable_mntpoints($o->{all_hds}); fs::set_all_default_options($o->{all_hds}, %$o, lang::fs_options($o->{locale})) if !$o->{isUpgrade}; $o->{fstab} = [ fsedit::get_all_fstab($o->{all_hds}) ]; fsedit::get_root_($o->{fstab}) or die "Oops, no root partition"; if (arch() =~ /ppc/ && detect_devices::get_mac_generation() =~ /NewWorld/) { die "Need bootstrap partition to boot system!" if !(defined $partition_table::mac::bootstrap_part); } if (arch() =~ /ia64/ && !fsedit::has_mntpoint("/boot/efi", $o->{all_hds})) { die \N("You must have a FAT partition mounted in /boot/efi"); } if ($o->{partitioning}{use_existing_root}) { #- ensure those partitions are mounted so that they are not proposed in choosePartitionsToFormat fs::mount_part($_, $o->{prefix}) foreach sort { $a->{mntpoint} cmp $b->{mntpoint} } grep { $_->{mntpoint} && maybeFormatted($_) } @{$o->{fstab}}; } cat_("/proc/mounts") =~ m|(\S+)\s+/tmp/image nfs| && !any { $_->{mntpoint} eq "/mnt/nfs" } @{$o->{all_hds}{nfss}} and push @{$o->{all_hds}{nfss}}, { type => 'nfs', mntpoint => "/mnt/nfs", device => $1, options => "noauto,ro,nosuid,soft,rsize=8192,wsize=8192" }; } #------------------------------------------------------------------------------ sub doPartitionDisks { my ($o) = @_; if ($o->{partitioning}{auto_allocate}) { fsedit::auto_allocate($o->{all_hds}, $o->{partitions}); } } #------------------------------------------------------------------------------ sub ask_mntpoint_s { my ($_o, $fstab) = @_; #- TODO: set the mntpoints my %m; foreach (@$fstab) { my $m = $_->{mntpoint}; next if !$m || $m eq 'swap'; #- there may be a lot of swap. $m{$m} and die \N("Duplicate mount point %s", $m); $m{$m} = 1; #- in case the type does not correspond, force it to ext3 $_->{type} = 0x483 if $m =~ m|^/| && !isTrueFS($_) && !isOtherAvailableFS($_); } 1; } sub rebootNeeded($) { my ($_o) = @_; log::l("Rebooting..."); c::_exit(0); } sub choosePartitionsToFormat($$) { my ($_o, $fstab) = @_; foreach (@$fstab) { $_->{mntpoint} = "swap" if isSwap($_); $_->{mntpoint} or next; add2hash_($_, { toFormat => $_->{notFormatted} }); $_->{toFormatUnsure} = member($_->{mntpoint}, '/', '/usr'); if (!$_->{toFormat}) { my $t = fsedit::typeOfPart($_->{device}); $_->{toFormatUnsure} ||= #- if detected dos/win, it's not precise enough to just compare the types (too many of them) (!$t || isOtherAvailableFS({ type => $t }) ? !isOtherAvailableFS($_) : $t != $_->{type}); } } } sub formatMountPartitions { my ($o) = @_; fs::formatMount_all($o->{all_hds}{raids}, $o->{fstab}, $o->{prefix}); } #------------------------------------------------------------------------------ sub setPackages { my ($o, $rebuild_needed) = @_; install_any::setPackages($o, $rebuild_needed); pkgs::selectPackagesAlreadyInstalled($o->{packages}, $o->{prefix}); $rebuild_needed and pkgs::selectPackagesToUpgrade($o->{packages}, $o->{prefix}); } sub choosePackages { my ($o, $packages, $_compssUsers, $first_time) = @_; #- now for upgrade, package that must be upgraded are #- selected first, after is used the same scheme as install. #- make sure we kept some space left for available else the system may #- not be able to start (xfs at least). my $available = install_any::getAvailableSpace($o); my $availableCorrected = pkgs::invCorrectSize($available / sqr(1024)) * sqr(1024); log::l(sprintf "available size %s (corrected %s)", formatXiB($available), formatXiB($availableCorrected)); add2hash_($o, { compssListLevel => 5 }) if !$::auto_install; #- avoid destroying user selection of packages but only #- for expert, as they may have done individual selection before. if ($first_time || !$::expert) { exists $o->{compssListLevel} and pkgs::setSelectedFromCompssList($packages, $o->{compssUsersChoice}, $o->{compssListLevel}, $availableCorrected); } $availableCorrected; } sub beforeInstallPackages { my ($o) = @_; #- save these files in case of upgrade failure. if ($o->{isUpgrade}) { foreach (@filesToSaveForUpgrade) { unlink "$o->{prefix}/$_.mdkgisave"; if (-e "$o->{prefix}/$_") { eval { cp_af("$o->{prefix}/$_", "$o->{prefix}/$_.mdkgisave") }; } } foreach (@filesNewerToUseAfterUpgrade) { unlink "$o->{prefix}/$_.rpmnew"; } } #- some packages need such files for proper installation. install_any::write_fstab($o); require network; network::add2hosts("$o->{prefix}/etc/hosts", "localhost.localdomain", "127.0.0.1"); log::l("setting excludedocs to $o->{excludedocs}"); substInFile { s/%_excludedocs.*//; $_ .= "%_excludedocs yes\n" if eof && $o->{excludedocs} } "$o->{prefix}/etc/rpm/macros"; #- add oem lilo theme and background if the files exists. mkdir "$o->{prefix}$_" foreach qw(/boot /usr /usr/share /usr/share/mdk); install_any::getAndSaveFile("Mandrake/base/oem-message-graphic", "$o->{prefix}/boot/oem-message-graphic"); install_any::getAndSaveFile("Mandrake/base/oem-background.png", "$o->{prefix}/usr/share/mdk/oem-background.png"); } sub pkg_install { my ($o, @l) = @_; log::l("selecting packages ".join(" ", @l)); require pkgs; if ($::testing) { log::l("selecting package \"$_\"") foreach @l; } else { $o->{packages}{rpmdb} ||= pkgs::rpmDbOpen($o->{prefix}); pkgs::selectPackage($o->{packages}, pkgs::packageByName($o->{packages}, $_) || die "$_ rpm not found") foreach @l; } my @toInstall = pkgs::packagesToInstall($o->{packages}); if (@toInstall) { log::l("installing packages"); $o->installPackages; } else { log::l("all packages selected are already installed, nothing to do") } } sub pkg_install_if_requires_satisfied { my ($o, @l) = @_; require pkgs; $o->{packages}{rpmdb} ||= pkgs::rpmDbOpen($o->{prefix}); foreach (@l) { my %newSelection; my $pkg = pkgs::packageByName($o->{packages}, $_) || die "$_ rpm not found"; pkgs::selectPackage($o->{packages}, $pkg, 0, \%newSelection); if (scalar(keys %newSelection) == 1) { pkgs::selectPackage($o->{packages}, $pkg); } else { log::l("pkg_install_if_requires_satisfied: not selecting $_ because of ", join(", ", keys %newSelection)); } } $o->installPackages; } sub installPackages($$) { #- complete REWORK, TODO and TOCHECK! my ($o) = @_; my $packages = $o->{packages}; #- this method is always called, go here to close still opened rpm db. delete $packages->{rpmdb}; if (%{$packages->{state}{ask_remove} || {}}) { log::l("removing : ", join ', ', keys %{$packages->{state}{ask_remove}}); pkgs::remove($o->{prefix}, [ keys %{$packages->{state}{ask_remove}} ], $packages); } #- small transaction will be built based on this selection and depslist. my @toInstall = pkgs::packagesToInstall($packages); my $time = time(); $ENV{DURING_INSTALL} = 1; pkgs::install($o->{prefix}, $o->{isUpgrade}, \@toInstall, $packages); delete $ENV{DURING_INSTALL}; run_program::rooted_or_die($o->{prefix}, 'ldconfig') unless $::g_auto_install; log::l("Install took: ", formatTimeRaw(time() - $time)); install_any::log_sizes($o); scalar(@toInstall); #- return number of packages installed. } sub afterInstallPackages($) { my ($o) = @_; return if $::g_auto_install; die \N("Some important packages didn't get installed properly. Either your cdrom drive or your cdrom is defective. Check the cdrom on an installed computer using \"rpm -qpl Mandrake/RPMS/*.rpm\" ") if any { m|read failed: Input/output error| } cat_("$o->{prefix}/root/drakx/install.log"); if (arch() !~ /^sparc/) { #- TODO restore it as may be needed for sparc -x "$o->{prefix}/usr/bin/dumpkeys" or $::testing or die "Some important packages didn't get installed properly. Please switch to console 2 (using ctrl-alt-f2) and look at the log file /tmp/ddebug.log Consoles 1,3,4,7 may also contain interesting information"; } #- why not? cuz weather is nice today :-) [pixel] common::sync(); common::sync(); my $have_devfsd = do { my $p = pkgs::packageByName($o->{packages}, 'devfsd'); $p && $p->flag_installed }; if ($have_devfsd) { require bootloader; bootloader::may_append($o->{bootloader}, devfs => 'mount'); } #- generate /etc/lvmtab needed for rc.sysinit run_program::rooted($o->{prefix}, 'vgscan') if -e '/etc/lvmtab'; #- configure PCMCIA services if needed. modules::write_pcmcia($o->{prefix}, $o->{pcmcia}); #- for mandrake_firstime touch "$o->{prefix}/var/lock/TMP_1ST"; any::config_dvd($o->{prefix}, $have_devfsd); any::config_mtools($o->{prefix}); any::writeandclean_ldsoconf($o->{prefix}); #- make sure wins is disabled in /etc/nsswitch.conf #- else if eth0 is not existing, glibc segfaults. substInFile { s/\s*wins// if /^\s*hosts\s*:/ } "$o->{prefix}/etc/nsswitch.conf"; #- make sure some services have been enabled (or a catastrophic restart will occur). #- these are normally base package post install scripts or important services to start. run_program::rooted($o->{prefix}, "chkconfig", "--add", $_) foreach qw(random netfs network rawdevices sound kheader keytable syslog crond portmap); if ($o->{mouse}{device} =~ /ttyS/) { log::l("disabling gpm for serial mice (doesn't get along nicely with X)"); run_program::rooted($o->{prefix}, "chkconfig", "--del", "gpm") } #- update menu scheme before calling update menus if desktop mode. if ($o->{meta_class} eq 'desktop') { run_program::rooted($o->{prefix}, "touch", "/etc/menu/do-not-create-menu-link"); run_program::rooted($o->{prefix}, "touch", "/etc/menu/enable_simplified"); } elsif (!$o->{isUpgrade}) { run_program::rooted($o->{prefix}, "touch", "/etc/menu/do-not-create-menu-link"); } #- call update-menus at the end of package installation run_program::rooted($o->{prefix}, "update-menus"); if ($o->{pcmcia}) { substInFile { s/.*(TaskBarShowAPMStatus).*/$1=1/ } "$o->{prefix}/usr/lib/X11/icewm/preferences"; eval { cp_af("$o->{prefix}/usr/share/applnk/System/kapm.kdelnk", "$o->{prefix}/etc/skel/Desktop/Autostart/kapm.kdelnk") }; } if ($o->{brltty}) { output("$o->{prefix}/etc/brltty.conf", <<EOF); braille-driver $o->{brltty}{driver} braille-device $o->{brltty}{device} text-table $o->{brltty}{table} EOF } $o->install_urpmi; if ($o->{locale}{lang} =~ /^(zh_TW|th|vi|be|bg)/) { #- skip since we don't have the right font (it badly fails at least for zh_TW) } else { my $kde_charset = lang::charset2kde_charset(lang::l2charset($o->{locale}{lang})); my $welcome = c::to_utf8(N("Welcome to %s", '%n')); substInFile { s/^(GreetString)=.*/$1=$welcome/; s/^(Language)=.*/$1=$o->{locale}{lang}/; if (!member($kde_charset, 'iso8859-1', 'iso8859-15')) { #- don't keep the default for those s/^(StdFont)=.*/$1=*,12,5,$kde_charset,50,0/; s/^(FailFont)=.*/$1=*,12,5,$kde_charset,75,0/; s/^(GreetFont)=.*/$1=*,24,5,$kde_charset,50,0/; } } "$o->{prefix}/usr/share/config/kdm/kdmrc"; } install_any::disable_user_view($o->{prefix}) if $o->{security} >= 3 || $o->{authentication}{NIS}; run_program::rooted($o->{prefix}, "kdeDesktopCleanup"); foreach (list_skels($o->{prefix}, '.kde/share/config/kfmrc')) { my $found; substInFile { $found ||= /KFM Misc Defaults/; $_ .= "[KFM Misc Defaults] GridWidth=85 GridHeight=70 " if eof && !$found; } $_ } #- move some file after an upgrade that may be seriously annoying. #- and rename saved files to .mdkgiorig. if ($o->{isUpgrade}) { my $pkg = pkgs::packageByName($o->{packages}, 'rpm'); $pkg && ($pkg->flag_selected || $pkg->flag_installed) && $pkg->compare(">= 4.0") and pkgs::cleanOldRpmDb($o->{prefix}); log::l("moving previous desktop files that have been updated to Trash of each user"); install_any::kdemove_desktop_file($o->{prefix}); foreach (@filesToSaveForUpgrade) { renamef("$o->{prefix}/$_.mdkgisave", "$o->{prefix}/$_.mdkgiorig") if -e "$o->{prefix}$_.mdkgisave"; } foreach (@filesNewerToUseAfterUpgrade) { if (-e "$o->{prefix}/$_.rpmnew" && -e "$o->{prefix}/$_") { renamef("$o->{prefix}/$_", "$o->{prefix}/$_.mdkgiorig"); renamef("$o->{prefix}/$_.rpmnew", "$o->{prefix}/$_"); } } } #- fix bad update-alternatives that may occurs after upgrade (but let them for install too). if (-d "$o->{prefix}/etc/alternatives") { foreach (all("$o->{prefix}/etc/alternatives")) { next if run_program::rooted($o->{prefix}, 'test', '-e', "/etc/alternatives/$_"); log::l("fixing broken alternative $_"); run_program::rooted($o->{prefix}, "update-alternatives", "--auto", $_); } } #- update oem lilo image if it exists. if (-s "$o->{prefix}/boot/oem-message-graphic") { rename "$o->{prefix}/boot/message-graphic", "$o->{prefix}/boot/message-graphic.mdkgiorig"; rename "$o->{prefix}/boot/oem-message-graphic", "$o->{prefix}/boot/message-graphic"; } #- update background image if it exists for common environment. if (-s "$o->{prefix}/usr/share/mdk/oem-background.png") { if (-e "$o->{prefix}/usr/share/mdk/backgrounds/default.png") { rename "$o->{prefix}/usr/share/mdk/backgrounds/default.png", "$o->{prefix}/usr/share/mdk/backgrounds/default.png.mdkgiorig"; rename "$o->{prefix}/usr/share/mdk/oem-background.png", "$o->{prefix}/usr/share/mdk/backgrounds/default.png"; } else { #- KDE desktop background. if (-e "$o->{prefix}/usr/share/config/kdesktoprc") { update_gnomekderc("$o->{prefix}/usr/share/config/kdesktoprc", "Desktop0", MultiWallpaperMode => "NoMulti", Wallpaper => "/usr/share/mdk/oem-background.png", WallpaperMode => "Scaled", ); } #- GNOME desktop background. if (-e "$o->{prefix}/etc/gnome/config/Background") { update_gnomekderc("$o->{prefix}/etc/gnome/config/Background", "Default", wallpaper => "/usr/share/mdk/oem-background.png", wallpaperAlign => "3", ); } } } if ($o->{blank} || $o->{updatemodules}) { my @l = detect_devices::floppies_dev(); foreach (qw(blank updatemodules)) { $o->{$_} eq "1" and $o->{$_} = $l[0] || die \N("No floppy drive available"); } $o->{blank} and $o->copyKernelFromFloppy; $o->{updatemodules} and $o->updateModulesFromFloppy; } } sub copyKernelFromFloppy { my ($o) = @_; return if $::testing || !$o->{blank}; fs::mount($o->{blank}, "/floppy", "vfat", 0); eval { cp_af("/floppy/vmlinuz", "$o->{prefix}/boot/vmlinuz-default") }; if ($@) { log::l("copying of /floppy/vmlinuz from blank modified disk failed: $@"); } fs::umount("/floppy"); } sub install_urpmi { my ($o) = @_; my $pkg = pkgs::packageByName($o->{packages}, 'urpmi'); if ($pkg && ($pkg->flag_selected || $pkg->flag_installed)) { install_any::install_urpmi($o->{prefix}, $::oem ? 'cdrom' : $o->{method}, #- HACK $o->{packages}, $o->{packages}{mediums}); pkgs::saveCompssUsers($o->{prefix}, $o->{packages}, $o->{compssUsers}, $o->{compssUsersSorted}); } } sub updateModulesFromFloppy { my ($o) = @_; return if $::testing || !$o->{updatemodules}; fs::mount($o->{updatemodules}, "/floppy", "ext2", 0);