summaryrefslogtreecommitdiffstats
path: root/perl-install/share/po/ro.po
diff options
context:
space:
mode:
Diffstat (limited to 'perl-install/share/po/ro.po')
-rw-r--r--perl-install/share/po/ro.po181
1 files changed, 95 insertions, 86 deletions
diff --git a/perl-install/share/po/ro.po b/perl-install/share/po/ro.po
index 089e326fa..2254e35ef 100644
--- a/perl-install/share/po/ro.po
+++ b/perl-install/share/po/ro.po
@@ -8,7 +8,7 @@
msgid ""
msgstr ""
"Project-Id-Version: DrakX 7.1\n"
-"POT-Creation-Date: 2005-07-01 15:58+0200\n"
+"POT-Creation-Date: 2005-07-01 16:44+0200\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."
@@ -266,8 +266,8 @@ msgid "No CDROM support"
msgstr "Sprijin radio:"
#: ../move/tree/mdk_totem:76 diskdrake/hd_gtk.pm:92
-#: diskdrake/interactive.pm:1035 diskdrake/interactive.pm:1045
-#: diskdrake/interactive.pm:1098
+#: diskdrake/interactive.pm:1039 diskdrake/interactive.pm:1049
+#: diskdrake/interactive.pm:1102
#, c-format
msgid "Read carefully!"
msgstr "Citiţi cu atenţie!"
@@ -882,7 +882,7 @@ msgstr ""
msgid "The passwords do not match"
msgstr "Parolele nu sunt identice"
-#: any.pm:276 any.pm:609 authentication.pm:181 diskdrake/interactive.pm:1284
+#: any.pm:276 any.pm:609 authentication.pm:181 diskdrake/interactive.pm:1299
#, c-format
msgid "Please try again"
msgstr "Încercaţi din nou"
@@ -1694,31 +1694,31 @@ msgstr "Grub"
msgid "Yaboot"
msgstr "Yaboot"
-#: bootloader.pm:931
+#: bootloader.pm:934
#, c-format
msgid "not enough room in /boot"
msgstr "nu e destul spaţiu în /boot"
-#: bootloader.pm:1403
+#: bootloader.pm:1406
#, c-format
msgid "You can not install the bootloader on a %s partition\n"
msgstr "Nu puteţi instala Gestionarul de demarare într-o partiţie %s\n"
-#: bootloader.pm:1437
+#: bootloader.pm:1440
#, c-format
msgid ""
"Your bootloader configuration must be updated because partition has been "
"renumbered"
msgstr ""
-#: bootloader.pm:1450
+#: bootloader.pm:1453
#, c-format
msgid ""
"The bootloader can not be installed correctly. You have to boot rescue and "
"choose \"%s\""
msgstr ""
-#: bootloader.pm:1451
+#: bootloader.pm:1454
#, fuzzy, c-format
msgid "Re-install Boot Loader"
msgstr "Instalare gestionar de demaraj"
@@ -2002,12 +2002,12 @@ msgid "Server: "
msgstr "Server:"
#: diskdrake/dav.pm:110 diskdrake/interactive.pm:521
-#: diskdrake/interactive.pm:1177 diskdrake/interactive.pm:1252
+#: diskdrake/interactive.pm:1181 diskdrake/interactive.pm:1259
#, c-format
msgid "Mount point: "
msgstr "Punct de montare: "
-#: diskdrake/dav.pm:111 diskdrake/interactive.pm:1259
+#: diskdrake/dav.pm:111 diskdrake/interactive.pm:1266
#, c-format
msgid "Options: %s"
msgstr "Opţiuni: %s"
@@ -2094,7 +2094,7 @@ msgstr "HFS"
msgid "Windows"
msgstr "Window$"
-#: diskdrake/hd_gtk.pm:336 diskdrake/interactive.pm:1192
+#: diskdrake/hd_gtk.pm:336 diskdrake/interactive.pm:1196
#, c-format
msgid "Empty"
msgstr "Gol"
@@ -2352,12 +2352,12 @@ msgstr "Creează o nouă partiţie"
msgid "Start sector: "
msgstr "Sector de început: "
-#: diskdrake/interactive.pm:519 diskdrake/interactive.pm:915
+#: diskdrake/interactive.pm:519 diskdrake/interactive.pm:919
#, c-format
msgid "Size in MB: "
msgstr "Mărimea în MB: "
-#: diskdrake/interactive.pm:520 diskdrake/interactive.pm:916
+#: diskdrake/interactive.pm:520 diskdrake/interactive.pm:920
#, c-format
msgid "Filesystem type: "
msgstr "Tip sistem de fişiere: "
@@ -2501,100 +2501,100 @@ msgstr "Alegeţi un LVM existent la care să adăugaţi"
msgid "LVM name?"
msgstr "Nume LVM?"
-#: diskdrake/interactive.pm:900
+#: diskdrake/interactive.pm:904
#, c-format
msgid "This partition can not be used for loopback"
msgstr "Această partiţie nu poate fi folosită pentru loopback"
-#: diskdrake/interactive.pm:913
+#: diskdrake/interactive.pm:917
#, c-format
msgid "Loopback"
msgstr "Loopback"
-#: diskdrake/interactive.pm:914
+#: diskdrake/interactive.pm:918
#, c-format
msgid "Loopback file name: "
msgstr "Numele fişierului loopback"
-#: diskdrake/interactive.pm:919
+#: diskdrake/interactive.pm:923
#, c-format
msgid "Give a file name"
msgstr "Daţi un nume de fişier"
-#: diskdrake/interactive.pm:922
+#: diskdrake/interactive.pm:926
#, c-format
msgid "File is already used by another loopback, choose another one"
msgstr "Fişierul este deja folosit de un alt loopback, alegeţi un altul"
-#: diskdrake/interactive.pm:923
+#: diskdrake/interactive.pm:927
#, c-format
msgid "File already exists. Use it?"
msgstr "Fişierul există deja. Să-l folosesc ?"
-#: diskdrake/interactive.pm:946
+#: diskdrake/interactive.pm:950
#, c-format
msgid "Mount options"
msgstr "Opţiuni pentru montare:"
-#: diskdrake/interactive.pm:953
+#: diskdrake/interactive.pm:957
#, c-format
msgid "Various"
msgstr "Diverse"
-#: diskdrake/interactive.pm:1017
+#: diskdrake/interactive.pm:1021
#, c-format
msgid "device"
msgstr "dispozitiv"
-#: diskdrake/interactive.pm:1018
+#: diskdrake/interactive.pm:1022
#, c-format
msgid "level"
msgstr "nivel"
-#: diskdrake/interactive.pm:1019
+#: diskdrake/interactive.pm:1023
#, fuzzy, c-format
msgid "chunk size in KiB"
msgstr "mărimea porţiunii "
-#: diskdrake/interactive.pm:1036
+#: diskdrake/interactive.pm:1040
#, c-format
msgid "Be careful: this operation is dangerous."
msgstr "Atenţie: aceasta operaţie e periculoasă."
-#: diskdrake/interactive.pm:1051
+#: diskdrake/interactive.pm:1055
#, c-format
msgid "What type of partitioning?"
msgstr "Ce tip de partiţionare?"
-#: diskdrake/interactive.pm:1089
+#: diskdrake/interactive.pm:1093
#, c-format
msgid "You'll need to reboot before the modification can take place"
msgstr ""
"Va trebui să redemaraţi pentru ca schimbările sa fie luate în considerare"
-#: diskdrake/interactive.pm:1098
+#: diskdrake/interactive.pm:1102
#, c-format
msgid "Partition table of drive %s is going to be written to disk!"
msgstr "Tabelul de partiţii al perifericului %s va fi scris pe disc!"
-#: diskdrake/interactive.pm:1107
+#: diskdrake/interactive.pm:1111
#, c-format
msgid "After formatting partition %s, all data on this partition will be lost"
msgstr ""
"După formatarea partiţiei %s toate datele de pe aceasta partiţie vor fi "
"pierdute"
-#: diskdrake/interactive.pm:1123
+#: diskdrake/interactive.pm:1127
#, c-format
msgid "Move files to the new partition"
msgstr "Mută fişierele pe partiţia nouă"
-#: diskdrake/interactive.pm:1123
+#: diskdrake/interactive.pm:1127
#, c-format
msgid "Hide files"
msgstr "Ascunde fişiere"
-#: diskdrake/interactive.pm:1124
+#: diskdrake/interactive.pm:1128
#, c-format
msgid ""
"Directory %s already contains data\n"
@@ -2603,108 +2603,108 @@ msgstr ""
"Directorul %s conţine deja date\n"
"(%s)"
-#: diskdrake/interactive.pm:1135
+#: diskdrake/interactive.pm:1139
#, c-format
msgid "Moving files to the new partition"
msgstr "Mut fişierele pe partiţia nouă"
-#: diskdrake/interactive.pm:1139
+#: diskdrake/interactive.pm:1143
#, c-format
msgid "Copying %s"
msgstr "Copiez %s"
-#: diskdrake/interactive.pm:1143
+#: diskdrake/interactive.pm:1147
#, c-format
msgid "Removing %s"
msgstr "Şterg %s"
-#: diskdrake/interactive.pm:1157
+#: diskdrake/interactive.pm:1161
#, c-format
msgid "partition %s is now known as %s"
msgstr "partiţia %s este cunoscută acum ca %s"
-#: diskdrake/interactive.pm:1158
+#: diskdrake/interactive.pm:1162
#, c-format
msgid "Partitions have been renumbered: "
msgstr ""
-#: diskdrake/interactive.pm:1178 diskdrake/interactive.pm:1237
+#: diskdrake/interactive.pm:1182 diskdrake/interactive.pm:1244
#, c-format
msgid "Device: "
msgstr "Periferic: "
-#: diskdrake/interactive.pm:1179
+#: diskdrake/interactive.pm:1183
#, fuzzy, c-format
msgid "Devfs name: "
msgstr "Nume gazdă:"
-#: diskdrake/interactive.pm:1180
+#: diskdrake/interactive.pm:1184
#, c-format
msgid "Volume label: "
msgstr ""
-#: diskdrake/interactive.pm:1181
+#: diskdrake/interactive.pm:1185
#, c-format
msgid "DOS drive letter: %s (just a guess)\n"
msgstr "Litera perifericului DOS: %s (doar o presupunere)\n"
-#: diskdrake/interactive.pm:1185 diskdrake/interactive.pm:1194
-#: diskdrake/interactive.pm:1255
+#: diskdrake/interactive.pm:1189 diskdrake/interactive.pm:1198
+#: diskdrake/interactive.pm:1262
#, c-format
msgid "Type: "
msgstr "Tip: "
-#: diskdrake/interactive.pm:1189 install_steps_gtk.pm:296
+#: diskdrake/interactive.pm:1193 install_steps_gtk.pm:296
#, c-format
msgid "Name: "
msgstr "Nume: "
-#: diskdrake/interactive.pm:1196
+#: diskdrake/interactive.pm:1200
#, c-format
msgid "Start: sector %s\n"
msgstr "Start: sector %s\n"
-#: diskdrake/interactive.pm:1197
+#: diskdrake/interactive.pm:1201
#, c-format
msgid "Size: %s"
msgstr "Mărimea: %s"
-#: diskdrake/interactive.pm:1199
+#: diskdrake/interactive.pm:1203
#, c-format
msgid ", %s sectors"
msgstr ", %s sectori"
-#: diskdrake/interactive.pm:1201
+#: diskdrake/interactive.pm:1205
#, c-format
msgid "Cylinder %d to %d\n"
msgstr "De la cilindrul %d la cilindrul %d\n"
-#: diskdrake/interactive.pm:1202
+#: diskdrake/interactive.pm:1206
#, c-format
msgid "Number of logical extents: %d\n"
msgstr ""
-#: diskdrake/interactive.pm:1203
+#: diskdrake/interactive.pm:1207
#, c-format
msgid "Formatted\n"
msgstr "Formatat\n"
-#: diskdrake/interactive.pm:1204
+#: diskdrake/interactive.pm:1208
#, c-format
msgid "Not formatted\n"
msgstr "Neformatat\n"
-#: diskdrake/interactive.pm:1205
+#: diskdrake/interactive.pm:1209
#, c-format
msgid "Mounted\n"
msgstr "Montat\n"
-#: diskdrake/interactive.pm:1206
+#: diskdrake/interactive.pm:1210
#, c-format
msgid "RAID %s\n"
msgstr "RAID %s\n"
-#: diskdrake/interactive.pm:1208
+#: diskdrake/interactive.pm:1215
#, c-format
msgid ""
"Loopback file(s):\n"
@@ -2713,7 +2713,7 @@ msgstr ""
"Fişier(e) loopback: \n"
" %s\n"
-#: diskdrake/interactive.pm:1209
+#: diskdrake/interactive.pm:1216
#, c-format
msgid ""
"Partition booted by default\n"
@@ -2722,27 +2722,27 @@ msgstr ""
"Partiţia demarată din oficiu\n"
" (pentru demaraj MS-DOS, nu pentru lilo)\n"
-#: diskdrake/interactive.pm:1211
+#: diskdrake/interactive.pm:1218
#, c-format
msgid "Level %s\n"
msgstr "Nivel %s\n"
-#: diskdrake/interactive.pm:1212
+#: diskdrake/interactive.pm:1219
#, fuzzy, c-format
msgid "Chunk size %d KiB\n"
msgstr "Mărimea porţiunii %s\n"
-#: diskdrake/interactive.pm:1213
+#: diskdrake/interactive.pm:1220
#, c-format
msgid "RAID-disks %s\n"
msgstr "Discuri-RAID %s\n"
-#: diskdrake/interactive.pm:1215
+#: diskdrake/interactive.pm:1222
#, c-format
msgid "Loopback file name: %s"
msgstr "Numele fişierului loopback: %s"
-#: diskdrake/interactive.pm:1218
+#: diskdrake/interactive.pm:1225
#, c-format
msgid ""
"\n"
@@ -2755,7 +2755,7 @@ msgstr ""
"să fie una cu drivere, probabil\n"
"ar trebui lăsată în pace.\n"
-#: diskdrake/interactive.pm:1221
+#: diskdrake/interactive.pm:1228
#, c-format
msgid ""
"\n"
@@ -2768,74 +2768,74 @@ msgstr ""
"Bootstrap este pentru\n"
"demararea duală a sistemului.\n"
-#: diskdrake/interactive.pm:1238
+#: diskdrake/interactive.pm:1245
#, c-format
msgid "Read-only"
msgstr "Numai citire"
-#: diskdrake/interactive.pm:1239
+#: diskdrake/interactive.pm:1246
#, c-format
msgid "Size: %s\n"
msgstr "Mărime: %s\n"
-#: diskdrake/interactive.pm:1240
+#: diskdrake/interactive.pm:1247
#, c-format
msgid "Geometry: %s cylinders, %s heads, %s sectors\n"
msgstr "Geometrie: %s cylinders, %s heads, %s sectors\n"
-#: diskdrake/interactive.pm:1241
+#: diskdrake/interactive.pm:1248
#, c-format
msgid "Info: "
msgstr "Info: "
-#: diskdrake/interactive.pm:1242
+#: diskdrake/interactive.pm:1249
#, c-format
msgid "LVM-disks %s\n"
msgstr "Discuri-LVM %s\n"
-#: diskdrake/interactive.pm:1243
+#: diskdrake/interactive.pm:1250
#, c-format
msgid "Partition table type: %s\n"
msgstr "Tip tabelă de partiţii: %s\n"
-#: diskdrake/interactive.pm:1244
+#: diskdrake/interactive.pm:1251
#, c-format
msgid "on channel %d id %d\n"
msgstr "pe canalul %d id %d\n"
-#: diskdrake/interactive.pm:1279
+#: diskdrake/interactive.pm:1294
#, c-format
msgid "Filesystem encryption key"
msgstr "Cheie criptare pt. sistemul de fişiere"
-#: diskdrake/interactive.pm:1280
+#: diskdrake/interactive.pm:1295
#, c-format
msgid "Choose your filesystem encryption key"
msgstr "Selectaţi cheia de criptare pt. sistemul de fişiere"
-#: diskdrake/interactive.pm:1283
+#: diskdrake/interactive.pm:1298
#, c-format
msgid "This encryption key is too simple (must be at least %d characters long)"
msgstr ""
"Această cheie e prea simplă (ar trebui să fie de cel puţin %d caractere)"
-#: diskdrake/interactive.pm:1284
+#: diskdrake/interactive.pm:1299
#, c-format
msgid "The encryption keys do not match"
msgstr "Cheile de criptare nu corespund"
-#: diskdrake/interactive.pm:1287 network/netconnect.pm:1013
+#: diskdrake/interactive.pm:1302 network/netconnect.pm:1013
#: standalone/drakconnect:419
#, c-format
msgid "Encryption key"
msgstr "Cheia de criptare"
-#: diskdrake/interactive.pm:1288
+#: diskdrake/interactive.pm:1303
#, c-format
msgid "Encryption key (again)"
msgstr "Cheia de criptare (din nou)"
-#: diskdrake/interactive.pm:1289 standalone/drakvpn:1017
+#: diskdrake/interactive.pm:1304 standalone/drakvpn:1017
#: standalone/drakvpn:1102
#, fuzzy, c-format
msgid "Encryption algorithm"
@@ -3036,12 +3036,12 @@ msgstr ""
msgid "Give read-only access to ordinary users"
msgstr ""
-#: fs/type.pm:372
+#: fs/type.pm:375
#, c-format
msgid "You can not use JFS for partitions smaller than 16MB"
msgstr "Nu puteţi folosi JFS pentru partiţii mai mici de 16MB"
-#: fs/type.pm:373
+#: fs/type.pm:376
#, c-format
msgid "You can not use ReiserFS for partitions smaller than 32MB"
msgstr "Nu puteţi folosi ReiserFS pentru partiţii mai mici de 32MB"
@@ -3104,8 +3104,10 @@ msgstr ""
#: fsedit.pm:390
#, c-format
-msgid "You can not use a LVM Logical Volume for mount point %s"
-msgstr "Nu puteţi folosi volumul logic LVM pentru punctul de montare %s"
+msgid ""
+"You can not use a LVM Logical Volume for mount point %s since it spans "
+"physical volumes"
+msgstr ""
#: fsedit.pm:392
#, c-format
@@ -8402,12 +8404,17 @@ msgstr ", "
msgid "Welcome to %s"
msgstr "Bine aţi venit la %s"
-#: lvm.pm:117
+#: lvm.pm:130
+#, c-format
+msgid "Physical volume %s is still in use"
+msgstr ""
+
+#: lvm.pm:139
#, c-format
msgid "Remove the logical volumes first\n"
msgstr "Şterge întâi volumele logice\n"
-#: lvm.pm:150
+#: lvm.pm:172
#, c-format
msgid "The bootloader can't handle /boot on multiple physicals volumes"
msgstr ""
@@ -18117,8 +18124,7 @@ msgstr "Centrul de control Mandriva Linux"
msgid "Synchronization tool"
msgstr "Unealtă de sincronizare"
-#: standalone/drakbug:49 standalone/drakbug:63 standalone/drakbug:149
-#: standalone/drakbug:151 standalone/drakbug:155
+#: standalone/drakbug:49 standalone/drakbug:149
#, c-format
msgid "Standalone Tools"
msgstr "Unelte de sine stătătoare"
@@ -18215,12 +18221,12 @@ msgstr ""
msgid "Report"
msgstr "Raport"
-#: standalone/drakbug:164
+#: standalone/drakbug:159
#, c-format
msgid "Not installed"
msgstr "Nu este instalat"
-#: standalone/drakbug:176
+#: standalone/drakbug:171
#, c-format
msgid "Package not installed"
msgstr "Pachet neinstalat"
@@ -23593,6 +23599,9 @@ msgstr ""
msgid "Installation failed"
msgstr "Instalarea a eşuat"
+#~ msgid "You can not use a LVM Logical Volume for mount point %s"
+#~ msgstr "Nu puteţi folosi volumul logic LVM pentru punctul de montare %s"
+
#, fuzzy
#~ msgid ""
#~ "You've selected a LVM Logical Volume as root (/).\n"
{ s/\s+$//; s/^[#\s]*//; if (my ($key, $val) = /^(search|nameserver)\s+(.*)$/) { push @{$prev{$key}}, $val; } elsif (/^ppp temp entry$/) { } elsif (/\S/) { push @unknown, $_; } } unlink $file; #- workaround situation when /etc/resolv.conf is an absolute link to /etc/ppp/resolv.conf or whatever if (@{$new{search}} || @{$new{nameserver}}) { $prev{$_} = [ difference2($prev{$_} || [], $new{$_}) ] foreach keys %new; my @search = do { my @new = if_(@{$new{search}}, "search " . join(' ', @{$new{search}}) . "\n"); my @old = if_(@{$prev{search}}, "# search " . join(' ', @{$prev{search}}) . "\n"); @new, @old; }; my @nameserver = do { my @new = map { "nameserver $_\n" } @{$new{nameserver}}; my @old = map { "# nameserver $_\n" } @{$prev{nameserver}}; @new, @old; }; output($file, @search, @nameserver, (map { "# $_\n" } @unknown), "\n# ppp temp entry\n"); #-res_init(); # reinit the resolver so DNS changes take affect 1; } else { log::l("neither domain name nor dns server are configured"); 0; } } sub write_interface_conf { my ($file, $intf, $netc, $prefix) = @_; if ($intf->{HWADDR} && -e "$prefix/sbin/ip") { $intf->{HWADDR} = undef; if (my $s = `LC_ALL= LANG= $prefix/sbin/ip -o link show $intf->{DEVICE} 2>/dev/null`) { if ($s =~ m|.*link/ether\s([0-9a-z:]+)\s|) { $intf->{HWADDR} = $1; } } } my @ip = split '\.', $intf->{IPADDR}; my @mask = split '\.', $intf->{NETMASK}; if ($netc->{DHCP} && $netc->{HOSTNAME}) { $intf->{DHCP_HOSTNAME} = $netc->{HOSTNAME}; $intf->{NEEDHOSTNAME} = "no"; } else { $intf->{DHCP_HOSTNAME} = ""; $intf->{NEEDHOSTNAME} = "yes" } add2hash($intf, { BROADCAST => join('.', mapn { int($_[0]) | ((~int($_[1])) & 255) } \@ip, \@mask), NETWORK => join('.', mapn { int($_[0]) & $_[1] } \@ip, \@mask), ONBOOT => bool2yesno(!member($intf->{DEVICE}, map { $_->{device} } detect_devices::probeall())), }); $intf->{BOOTPROTO} =~ s/dhcp.*/dhcp/; setVarsInSh($file, $intf, qw(DEVICE BOOTPROTO IPADDR NETMASK NETWORK BROADCAST ONBOOT HWADDR MII_NOT_SUPPORTED), if_($intf->{wireless_eth}, qw(WIRELESS_MODE WIRELESS_ESSID WIRELESS_NWID WIRELESS_FREQ WIRELESS_SENS WIRELESS_RATE WIRELESS_ENC_KEY WIRELESS_RTS WIRELESS_FRAG WIRELESS_IWCONFIG WIRELESS_IWSPY WIRELESS_IWPRIV)), if_($intf->{DHCP_HOSTNAME}, 'DHCP_HOSTNAME'), if_(!$intf->{DHCP_HOSTNAME}, 'NEEDHOSTNAME')); } sub add2hosts { my ($file, $hostname, @ips) = @_; my %l = map { if_(/\s*(\S+)(.*)/, $1 => $2) } grep { !/\s+\Q$hostname\E\s*$/ } cat_($file); my $sub_hostname = $hostname =~ /(.*?)\./ ? " $1" : ''; $l{$_} = "\t\t$hostname$sub_hostname" foreach grep { $_ } @ips; log::l("writing host information to $file"); output($file, map { "$_$l{$_}\n" } keys %l); } # The interface/gateway needs to be configured before this will work! sub guessHostname { my ($prefix, $netc, $intf) = @_; $intf->{isUp} && dnsServers($netc) or return 0; $netc->{HOSTNAME} && $netc->{DOMAINNAME} and return 1; write_resolv_conf("$prefix/etc/resolv.conf", $netc); my $name = gethostbyaddr(Socket::inet_aton($intf->{IPADDR}), Socket::AF_INET()) or log::l("reverse name lookup failed"), return 0; log::l("reverse name lookup worked"); add2hash($netc, { HOSTNAME => $name }); 1; } sub addDefaultRoute { my ($netc) = @_; c::addDefaultRoute($netc->{GATEWAY}) if $netc->{GATEWAY}; } sub sethostname { my ($netc) = @_; syscall_("sethostname", $netc->{HOSTNAME}, length $netc->{HOSTNAME}) or log::l("sethostname failed: $!"); } sub resolv($) { my ($name) = @_; is_ip($name) and return $name; my $a = join(".", unpack "C4", (gethostbyname $name)[4]); #-log::l("resolved $name in $a"); $a; } sub dnsServers { my ($netc) = @_; my %used_dns; @used_dns{$netc->{dnsServer}, $netc->{dnsServer2}, $netc->{dnsServer3}} = (1, 2, 3); sort { $used_dns{$a} <=> $used_dns{$b} } grep { $_ } keys %used_dns; } sub findIntf { my ($intf, $device) = @_; $intf->{$device}{DEVICE} = $device; $intf->{$device}; } #PAD \s* a la fin my $ip_regexp = qr/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/; sub is_ip { my ($ip) = @_; my @fields = $ip =~ $ip_regexp or return; every { 0 <= $_ && $_ <= 255 } @fields or return; @fields; } sub is_domain_name { my ($name) = @_; my @fields = split /\./, $name; $name !~ /\.$/ && @fields > 0 && @fields == grep { /^[[:alnum:]](?:[\-[:alnum:]]{0,61}[[:alnum:]])?$/ } @fields; } sub netmask { my ($ip) = @_; return "255.255.255.0" unless is_ip($ip); $ip =~ $ip_regexp; if ($1 >= 1 && $1 < 127) { "255.0.0.0"; #-1.0.0.0 to 127.0.0.0 } elsif ($1 >= 128 && $1 <= 191) { "255.255.0.0"; #-128.0.0.0 to 191.255.0.0 } elsif ($1 >= 192 && $1 <= 223) { "255.255.255.0"; } else { "255.255.255.255"; #-experimental classes } } sub masked_ip { my ($ip) = @_; my @ip = is_ip($ip) or return ''; my @mask = netmask($ip) =~ $ip_regexp; for (my $i = 0; $i < @ip; $i++) { $ip[$i] &= int $mask[$i]; } join(".", @ip); } sub dns { my ($ip) = @_; my @masked = masked_ip($ip) =~ $ip_regexp; $masked[3] = 2; join(".", @masked); } sub gateway { my ($ip) = @_; my @masked = masked_ip($ip) =~ $ip_regexp; $masked[3] = 1; join(".", @masked); } sub configureNetworkIntf { my ($netc, $in, $intf, $net_device, $skip, $module) = @_; my $text; my @wireless_modules = qw(aironet_cs aironet4500_cs hermes airo orinoco_cs orinoco airo_cs netwave_cs ray_cs wavelan_cs wvlan_cs airport); my $flag = 0; foreach (@wireless_modules) { $module =~ /$_/ and $flag = 1; } if ($flag) { $intf->{wireless_eth} = 1; $netc->{wireless_eth} = 1; $intf->{WIRELESS_MODE} = "Managed"; $intf->{WIRELESS_ESSID} = "any"; #- $intf->{WIRELESS_NWID} = ""; #- $intf->{WIRELESS_FREQ} = ""; #- $intf->{WIRELESS_SENS} = ""; #- $intf->{WIRELESS_RATE} = ""; #- $intf->{WIRELESS_ENC_KEY} = ""; #- $intf->{WIRELESS_RTS} = ""; #- $intf->{WIRELESS_FRAG} = ""; #- $intf->{WIRELESS_IWCONFIG} = ""; #- $intf->{WIRELESS_IWSPY} = ""; #- $intf->{WIRELESS_IWPRIV} = ""; } if ($net_device eq $intf->{DEVICE}) { $skip and return 1; $text = N("WARNING: this device has been previously configured to connect to the Internet. Simply accept to keep this device configured. Modifying the fields below will override this configuration."); } else { $text = N("Please enter the IP configuration for this machine. Each item should be entered as an IP address in dotted-decimal notation (for example, 1.2.3.4)."); } my $auto_ip = $intf->{BOOTPROTO} !~ /static/; my $onboot = $intf->{ONBOOT} !~ /no/; my $hotplug = $::isStandalone && !$intf->{MII_NOT_SUPPORTED} or 1; my $track_network_id = $::isStandalone && $intf->{HWADDR} or detect_devices::isLaptop(); delete $intf->{NETWORK}; delete $intf->{BROADCAST}; my @fields = qw(IPADDR NETMASK); # $::isStandalone or $in->set_help('configureNetworkIP'); $in->ask_from(N("Configuring network device %s", $intf->{DEVICE}), (N("Configuring network device %s", $intf->{DEVICE}) . ($module ? N(" (driver %s)", $module) : '') . "\n\n") . $text, [ { label => N("IP address"), val => \$intf->{IPADDR}, disabled => sub { $auto_ip } }, { label => N("Netmask"), val => \$intf->{NETMASK}, disabled => sub { $auto_ip } }, { label => N("Automatic IP"), val => \$auto_ip, type => "bool", text => N("(bootp/dhcp/zeroconf)") }, if_($::expert, { label => N("Track network card id (useful for laptops)"), val => \$track_network_id, type => "bool" }, { label => N("Network Hotplugging"), val => \$hotplug, type => "bool" }, { label => N("Start at boot"), val => \$onboot, type => "bool" }), if_($intf->{wireless_eth}, { label => "WIRELESS_MODE", val => \$intf->{WIRELESS_MODE}, list => [ "Ad-hoc", "Managed", "Master", "Repeater", "Secondary", "Auto" ] }, { label => "WIRELESS_ESSID", val => \$intf->{WIRELESS_ESSID} }, { label => "WIRELESS_NWID", val => \$intf->{WIRELESS_NWID} }, { label => "WIRELESS_FREQ", val => \$intf->{WIRELESS_FREQ} }, { label => "WIRELESS_SENS", val => \$intf->{WIRELESS_SENS} }, { label => "WIRELESS_RATE", val => \$intf->{WIRELESS_RATE} }, { label => "WIRELESS_ENC_KEY", val => \$intf->{WIRELESS_ENC_KEY} }, { label => "WIRELESS_RTS", val => \$intf->{WIRELESS_RTS} }, { label => "WIRELESS_FRAG", val => \$intf->{WIRELESS_FRAG} }, { label => "WIRELESS_IWCONFIG", val => \$intf->{WIRELESS_IWCONFIG} }, { label => "WIRELESS_IWSPY", val => \$intf->{WIRELESS_IWSPY} }, { label => "WIRELESS_IWPRIV", val => \$intf->{WIRELESS_IWPRIV} } ), ], complete => sub { $intf->{BOOTPROTO} = $auto_ip ? join('', if_($auto_ip, "dhcp")) : "static"; $netc->{DHCP} = $auto_ip; return 0 if $auto_ip; if (my @bad = map_index { if_(!is_ip($intf->{$_}), $::i) } @fields) { $in->ask_warn('', N("IP address should be in format 1.2.3.4")); return 1, $bad[0]; } return 0 if !$intf->{WIRELESS_FREQ}; if ($intf->{WIRELESS_FREQ} !~ /[0-9.]*[kGM]/) { $in->ask_warn('', N("Freq should have the suffix k, M or G (for example, \"2.46G\" for 2.46 GHz frequency), or add enough \'0\' (zeroes).")); return (1,6); } if ($intf->{WIRELESS_RATE} !~ /[0-9.]*[kGM]/) { $in->ask_warn('', N("Rate should have the suffix k, M or G (for example, \"11M\" for 11M), or add enough \'0\' (zeroes).")); return (1,8); } }, focus_out => sub { $intf->{NETMASK} ||= netmask($intf->{IPADDR}) unless $_[0] } ) or return; $intf->{ONBOOT} = bool2yesno($onboot); $intf->{MII_NOT_SUPPORTED} = !$hotplug && bool2yesno(!$hotplug) or delete $intf->{MII_NOT_SUPPORTED}; $intf->{HWADDR} = $track_network_id or delete $intf->{HWADDR}; 1; } sub configureNetworkNet { my ($in, $netc, $intf, @devices) = @_; $netc->{dnsServer} ||= dns($intf->{IPADDR}); my $gateway_ex = gateway($intf->{IPADDR}); #- $netc->{GATEWAY} ||= gateway($intf->{IPADDR}); # $::isInstall and $in->set_help('configureNetworkHost'); $in->ask_from(N("Configuring network"), N("Please enter your host name. 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.") . N(" Enter a Zeroconf host name without any dot if you don't want to use the default host name."), [ { label => N("Host name"), val => \$netc->{HOSTNAME} }, { label => N("Zeroconf Host name"), val => \$netc->{ZEROCONF_HOSTNAME} }, { label => N("DNS server"), val => \$netc->{dnsServer} }, { label => N("Gateway (e.g. %s)", $gateway_ex), val => \$netc->{GATEWAY} }, if_(@devices > 1, { label => N("Gateway device"), val => \$netc->{GATEWAYDEV}, list => \@devices }, ), ], complete => sub { if ($netc->{dnsServer} and !is_ip($netc->{dnsServer})) { $in->ask_warn('', N("DNS server address should be in format 1.2.3.4")); return 1; } if ($netc->{GATEWAY} and !is_ip($netc->{GATEWAY})) { $in->ask_warn('', N("Gateway address should be in format 1.2.3.4")); return 1; } if ($netc->{ZEROCONF_HOSTNAME} and $netc->{ZEROCONF_HOSTNAME} =~ /\./) { $in->ask_warn('', N("Zeroconf host name must not contain a .")); return 1; } 0; } ); } sub miscellaneous_choose { my ($in, $u, $clicked, $_no_track_net) = @_; # $in->set_help('configureNetworkProxy') if $::isInstall; $in->ask_from('', N("Proxies configuration"), [ { label => N("HTTP proxy"), val => \$u->{http_proxy} }, { label => N("FTP proxy"), val => \$u->{ftp_proxy} }, ], complete => sub { $u->{http_proxy} =~ m,^($|http://), or $in->ask_warn('', N("Proxy should be http://...")), return 1,0; $u->{ftp_proxy} =~ m,^($|ftp://|http://), or $in->ask_warn('', N("URL should begin with 'ftp:' or 'http:'")), return 1,1; 0; } ) or return if $::expert || $clicked; 1; } sub proxy_configure { my ($u) = @_; setExportedVarsInSh( "$::prefix/etc/profile.d/proxy.sh", $u, qw(http_proxy ftp_proxy)); setExportedVarsInCsh("$::prefix/etc/profile.d/proxy.csh", $u, qw(http_proxy ftp_proxy)); } sub read_all_conf { my ($prefix, $netc, $intf) = @_; $netc ||= {}; $intf ||= {}; add2hash($netc, read_conf("$prefix/etc/sysconfig/network")) if -r "$prefix/etc/sysconfig/network"; add2hash($netc, read_resolv_conf("$prefix/etc/resolv.conf")) if -r "$prefix/etc/resolv.conf"; add2hash($netc, read_tmdns_conf("$prefix/etc/tmdns.conf")) if -r "$prefix/etc/tmdns.conf"; foreach (all("$prefix/etc/sysconfig/network-scripts")) { if (/ifcfg-(\w+)/ && $1 ne 'lo') { my $intf = findIntf($intf, $1); add2hash($intf, { getVarsFromSh("$prefix/etc/sysconfig/network-scripts/$_") }); } } } sub easy_dhcp { my ($netc, $intf) = @_; return if text2bool($netc->{NETWORKING}); require modules; require network::ethernet; modules::load_category('network/main|gigabit|usb'); my @all_cards = network::ethernet::conf_network_card_backend(); #- only for a single network card (any { $_->[0] eq 'eth0' } @all_cards) && (every { $_->[0] ne 'eth1' } @all_cards) or return; log::l("easy_dhcp: found eth0"); network::ethernet::conf_network_card_backend($netc, $intf, 'dhcp', 'eth0'); put_in_hash($netc, { NETWORKING => "yes", FORWARD_IPV4 => "false", DOMAINNAME => "localdomain", DHCP => 1, }); 1; } #- configureNetwork2 : configure the network interfaces. #- input #- $prefix #- $netc #- $intf #- $netc input #- NETWORKING : networking flag : string : "yes" by default #- FORWARD_IPV4 : forward IP flag : string : "false" by default #- HOSTNAME : hostname : string : "localhost.localdomain" by default #- DOMAINNAME : domainname : string : $netc->{HOSTNAME} =~ /\.(.*)/ by default #- DOMAINNAME2 : well it's another domainname : have to look further why we used 2 #- The following are facultatives #- DHCP_HOSTNAME : If you have a dhcp and want to set the hostname #- GATEWAY : gateway #- GATEWAYDEV : gateway interface #- NISDOMAIN : nis domain #- $netc->{dnsServer} : dns server 1 #- $netc->{dnsServer2} : dns server 2 #- $netc->{dnsServer3} : dns server 3 : note that we uses the dns1 for the LAN, and the 2 others for the internet conx #- $intf input: for each $device (for example ethx) #- $intf->{$device}{IPADDR} : IP address #- $intf->{$device}{NETMASK} : netmask #- $intf->{$device}{DEVICE} : DEVICE = $device #- $intf->{$device}{BOOTPROTO} : boot prototype : "bootp" or "dhcp" or "pump" or ... sub configureNetwork2 { my ($in, $prefix, $netc, $intf) = @_; my $etc = "$prefix/etc"; $netc->{wireless_eth} and $in->do_pkgs->install(qw(wireless-tools)); write_conf("$etc/sysconfig/network", $netc); write_resolv_conf("$etc/resolv.conf", $netc) if ! $netc->{DHCP}; write_interface_conf("$etc/sysconfig/network-scripts/ifcfg-$_->{DEVICE}", $_, $netc, $prefix) foreach grep { $_->{DEVICE} } values %$intf; add2hosts("$etc/hosts", $netc->{HOSTNAME}, map { $_->{IPADDR} } values %$intf) if $netc->{HOSTNAME}; add2hosts("$etc/hosts", "localhost", "127.0.0.1"); $netc->{DHCP} && $in->do_pkgs->install($netc->{dhcp_client} || 'dhcp-client'); $in->do_pkgs->install(qw(zcip tmdns)); $netc->{ZEROCONF_HOSTNAME} and write_zeroconf("$etc/tmdns.conf", $netc->{ZEROCONF_HOSTNAME}); any { $_->{BOOTPROTO} =~ /^(pump|bootp)$/ } values %$intf and $in->do_pkgs->install('pump'); proxy_configure($::o->{miscellaneous}); } 1;