summaryrefslogtreecommitdiffstats
path: root/perl-install/share/po/am.po
diff options
context:
space:
mode:
Diffstat (limited to 'perl-install/share/po/am.po')
-rw-r--r--perl-install/share/po/am.po203
1 files changed, 102 insertions, 101 deletions
diff --git a/perl-install/share/po/am.po b/perl-install/share/po/am.po
index aefab5088..e658c7eb5 100644
--- a/perl-install/share/po/am.po
+++ b/perl-install/share/po/am.po
@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: DrakX\n"
-"POT-Creation-Date: 2005-11-30 17:38+0800\n"
+"POT-Creation-Date: 2005-12-04 12:48+0800\n"
"PO-Revision-Date: 2004-06-01 03:36+0100\n"
"Last-Translator: Alemayehu <alemayehu@gmx.at>\n"
"Language-Team: Amharic <am-translate@geez.org>\n"
@@ -61,7 +61,7 @@ msgid ""
"plug the key again, and launch Mandriva Move again."
msgstr ""
-#: ../move/move.pm:468 help.pm:409 install_steps_interactive.pm:1334
+#: ../move/move.pm:468 help.pm:409 install_steps_interactive.pm:1331
#, c-format
msgid "Reboot"
msgstr "እንደገና ጀምር"
@@ -426,7 +426,7 @@ msgid "Custom"
msgstr "ምርጫ"
#: Xconfig/main.pm:127 diskdrake/dav.pm:26 help.pm:14
-#: install_steps_interactive.pm:86 install_steps_interactive.pm:1334
+#: install_steps_interactive.pm:86 install_steps_interactive.pm:1331
#: printer/printerdrake.pm:882 printer/printerdrake.pm:899
#: printer/printerdrake.pm:4523 printer/printerdrake.pm:4987
#: standalone/drakhosts:263 standalone/drakroam:230 standalone/draksplash:93
@@ -593,7 +593,7 @@ msgstr "እሺ"
#: Xconfig/resolution_and_depth.pm:373 diskdrake/smbnfs_gtk.pm:80 help.pm:89
#: help.pm:444 install_steps_gtk.pm:455 install_steps_interactive.pm:431
-#: install_steps_interactive.pm:842 interactive.pm:120 interactive.pm:437
+#: install_steps_interactive.pm:839 interactive.pm:120 interactive.pm:437
#: interactive/http.pm:104 interactive/http.pm:160 interactive/newt.pm:318
#: interactive/stdio.pm:39 interactive/stdio.pm:142
#: printer/printerdrake.pm:3859 standalone/drakautoinst:215
@@ -1242,7 +1242,7 @@ msgstr "ዩኒኮድን በቀዳሚነት ተጠቀም"
msgid "All languages"
msgstr "ሁሉንም ቋንቋዎች"
-#: any.pm:842 help.pm:566 help.pm:855 install_steps_interactive.pm:963
+#: any.pm:842 help.pm:566 help.pm:855 install_steps_interactive.pm:960
#, c-format
msgid "Country / Region"
msgstr "ሀገር / አካባቢ"
@@ -1964,9 +1964,12 @@ msgstr "ምርጫዎች: %s"
#: diskdrake/hd_gtk.pm:52 diskdrake/interactive.pm:292
#: diskdrake/smbnfs_gtk.pm:21 install_interactive.pm:62
-#: install_steps_interactive.pm:342
+#: install_interactive.pm:216 install_interactive.pm:222
+#: install_interactive.pm:275 install_interactive.pm:280
+#: install_steps_interactive.pm:278 install_steps_interactive.pm:342
+#: steps.pm:21
#, c-format
-msgid "Partitionning"
+msgid "Partitioning"
msgstr ""
#: diskdrake/hd_gtk.pm:92
@@ -2841,7 +2844,7 @@ msgstr "ምርጫዎችን ማስቀመጥ አልተቻለም"
msgid "Mandatory package %s is missing"
msgstr ""
-#: do_pkgs.pm:35 harddrake/sound.pm:275 install_steps_interactive.pm:1319
+#: do_pkgs.pm:35 harddrake/sound.pm:275 install_steps_interactive.pm:1316
#: keyboard.pm:388 network/ndiswrapper.pm:95 network/netconnect.pm:472
#: printer/printerdrake.pm:1416 printer/printerdrake.pm:2494
#: printer/printerdrake.pm:2609 printer/printerdrake.pm:2930
@@ -2924,36 +2927,36 @@ msgstr "%sን የመንቀል ስህተት: %s"
msgid "Enabling swap partition %s"
msgstr "የስዋፕ ክፋይ %sን በማስቻል ላይ"
-#: fs/mount_options.pm:112
+#: fs/mount_options.pm:113
#, c-format
msgid "Use an encrypted file system"
msgstr ""
-#: fs/mount_options.pm:114
+#: fs/mount_options.pm:115
#, c-format
msgid "Enable group disk quota accounting and optionally enforce limits"
msgstr ""
-#: fs/mount_options.pm:116
+#: fs/mount_options.pm:117
#, c-format
msgid ""
"Do not update inode access times on this file system\n"
"(e.g, for faster access on the news spool to speed up news servers)."
msgstr ""
-#: fs/mount_options.pm:119
+#: fs/mount_options.pm:120
#, c-format
msgid ""
"Can only be mounted explicitly (i.e.,\n"
"the -a option will not cause the file system to be mounted)."
msgstr ""
-#: fs/mount_options.pm:122
+#: fs/mount_options.pm:123
#, c-format
msgid "Do not interpret character or block special devices on the file system."
msgstr ""
-#: fs/mount_options.pm:124
+#: fs/mount_options.pm:125
#, c-format
msgid ""
"Do not allow execution of any binaries on the mounted\n"
@@ -2961,7 +2964,7 @@ msgid ""
"containing binaries for architectures other than its own."
msgstr ""
-#: fs/mount_options.pm:128
+#: fs/mount_options.pm:129
#, c-format
msgid ""
"Do not allow set-user-identifier or set-group-identifier\n"
@@ -2969,32 +2972,37 @@ msgid ""
"have suidperl(1) installed.)"
msgstr ""
-#: fs/mount_options.pm:132
+#: fs/mount_options.pm:133
#, c-format
msgid "Mount the file system read-only."
msgstr ""
-#: fs/mount_options.pm:134
+#: fs/mount_options.pm:135
#, c-format
msgid "All I/O to the file system should be done synchronously."
msgstr ""
-#: fs/mount_options.pm:138
+#: fs/mount_options.pm:139
#, c-format
msgid "Allow an ordinary user to mount the file system."
msgstr ""
-#: fs/mount_options.pm:140
+#: fs/mount_options.pm:141
#, c-format
msgid "Enable user disk quota accounting, and optionally enforce limits"
msgstr ""
-#: fs/mount_options.pm:142
+#: fs/mount_options.pm:143
+#, c-format
+msgid "Support user. extended attributes"
+msgstr ""
+
+#: fs/mount_options.pm:145
#, c-format
msgid "Give write access to ordinary users"
msgstr "ለተራ ተጠቃሚዎች የመጻፍ ፈቃድ ስጥ"
-#: fs/mount_options.pm:144
+#: fs/mount_options.pm:147
#, c-format
msgid "Give read-only access to ordinary users"
msgstr "ለተራ ተጠቃሚዎች የንባብ ፈቃድ ብቻ ስጥ"
@@ -3046,7 +3054,7 @@ msgstr ""
msgid "There is already a partition with mount point %s\n"
msgstr ""
-#: fsedit.pm:386
+#: fsedit.pm:388
#, c-format
msgid ""
"You've selected a software RAID partition as root (/).\n"
@@ -3054,14 +3062,14 @@ msgid ""
"Please be sure to add a /boot partition"
msgstr ""
-#: fsedit.pm:391
+#: fsedit.pm:394
#, c-format
msgid ""
"You can not use the LVM Logical Volume for mount point %s since it spans "
"physical volumes"
msgstr ""
-#: fsedit.pm:393
+#: fsedit.pm:396
#, c-format
msgid ""
"You've selected the LVM Logical Volume as root (/).\n"
@@ -3070,29 +3078,29 @@ msgid ""
"You should create a /boot partition first"
msgstr ""
-#: fsedit.pm:397 fsedit.pm:399
+#: fsedit.pm:400 fsedit.pm:402
#, c-format
msgid "This directory should remain within the root filesystem"
msgstr ""
-#: fsedit.pm:401 fsedit.pm:403
+#: fsedit.pm:404 fsedit.pm:406
#, c-format
msgid ""
"You need a true filesystem (ext2/ext3, reiserfs, xfs, or jfs) for this mount "
"point\n"
msgstr ""
-#: fsedit.pm:405
+#: fsedit.pm:408
#, c-format
msgid "You can not use an encrypted file system for mount point %s"
msgstr ""
-#: fsedit.pm:466
+#: fsedit.pm:469
#, c-format
msgid "Not enough free space for auto-allocating"
msgstr ""
-#: fsedit.pm:468
+#: fsedit.pm:471
#, c-format
msgid "Nothing to do"
msgstr "የሚሰራ ነገር የለም"
@@ -3223,7 +3231,7 @@ msgid "AGP controllers"
msgstr "የAGP ተቆጣጣሪዎች"
#: harddrake/data.pm:324 help.pm:186 help.pm:855
-#: install_steps_interactive.pm:995
+#: install_steps_interactive.pm:992
#, c-format
msgid "Printer"
msgstr "ማተሚያ"
@@ -3290,7 +3298,7 @@ msgid "Bridges and system controllers"
msgstr "ድልድዮች እና ሲስተም ተቆጣጣሪዎች"
#: harddrake/data.pm:449 help.pm:855 install_steps_interactive.pm:119
-#: install_steps_interactive.pm:955 standalone/finish-install:37
+#: install_steps_interactive.pm:952 standalone/finish-install:37
#: standalone/keyboarddrake:29
#, c-format
msgid "Keyboard"
@@ -3301,7 +3309,7 @@ msgstr "መተየቢያ"
msgid "Tablet and touchscreen"
msgstr ""
-#: harddrake/data.pm:471 help.pm:855 install_steps_interactive.pm:988
+#: harddrake/data.pm:471 help.pm:855 install_steps_interactive.pm:985
#, c-format
msgid "Mouse"
msgstr "መጠቆሚያ"
@@ -3892,7 +3900,7 @@ msgid ""
"server which can be used by other machines on your local network as well."
msgstr ""
-#: help.pm:217 install_steps_interactive.pm:890
+#: help.pm:217 install_steps_interactive.pm:887
#, c-format
msgid "Hardware clock set to GMT"
msgstr "ለሀርድዌር ሰአት GMT ተመርጧል"
@@ -4155,17 +4163,17 @@ msgstr ""
msgid "Generate auto-install floppy"
msgstr ""
-#: help.pm:409 install_steps_interactive.pm:1345
+#: help.pm:409 install_steps_interactive.pm:1342
#, c-format
msgid "Replay"
msgstr ""
-#: help.pm:409 install_steps_interactive.pm:1345
+#: help.pm:409 install_steps_interactive.pm:1342
#, c-format
msgid "Automated"
msgstr ""
-#: help.pm:409 install_steps_interactive.pm:1348
+#: help.pm:409 install_steps_interactive.pm:1345
#, c-format
msgid "Save packages selection"
msgstr "የጥቅሎችን ምርጫ አስቀምጥ"
@@ -4668,8 +4676,8 @@ msgid ""
"system, you can click on the button and choose a different driver."
msgstr ""
-#: help.pm:788 help.pm:855 install_steps_interactive.pm:1022
-#: install_steps_interactive.pm:1039
+#: help.pm:788 help.pm:855 install_steps_interactive.pm:1019
+#: install_steps_interactive.pm:1036
#, c-format
msgid "Sound card"
msgstr "የድምፅ ካርድ"
@@ -4745,13 +4753,13 @@ msgid ""
"idea to review this setup."
msgstr ""
-#: help.pm:855 install_steps_interactive.pm:886
-#: install_steps_interactive.pm:981 standalone/drakclock:100
+#: help.pm:855 install_steps_interactive.pm:883
+#: install_steps_interactive.pm:978 standalone/drakclock:100
#, c-format
msgid "Timezone"
msgstr "የሰአት ክልል"
-#: help.pm:855 install_steps_interactive.pm:1055
+#: help.pm:855 install_steps_interactive.pm:1052
#, c-format
msgid "TV card"
msgstr "የቲቪ ካርድ"
@@ -4766,33 +4774,33 @@ msgstr "የISDN ካርድ"
msgid "Graphical Interface"
msgstr "ንድፋዊ እይታ"
-#: help.pm:855 install_any.pm:1733 install_steps_interactive.pm:1073
+#: help.pm:855 install_any.pm:1733 install_steps_interactive.pm:1070
#: standalone/drakbackup:2040
#, c-format
msgid "Network"
msgstr "መረብ"
-#: help.pm:855 install_steps_interactive.pm:1085
+#: help.pm:855 install_steps_interactive.pm:1082
#, c-format
msgid "Proxies"
msgstr "ወኪሎች"
-#: help.pm:855 install_steps_interactive.pm:1096
+#: help.pm:855 install_steps_interactive.pm:1093
#, c-format
msgid "Security Level"
msgstr "የደህንነት ደረጃ"
-#: help.pm:855 install_steps_interactive.pm:1110 network/drakfirewall.pm:189
+#: help.pm:855 install_steps_interactive.pm:1107 network/drakfirewall.pm:189
#, c-format
msgid "Firewall"
msgstr "የእሳት ግድግዳ"
-#: help.pm:855 install_steps_interactive.pm:1126
+#: help.pm:855 install_steps_interactive.pm:1123
#, c-format
msgid "Bootloader"
msgstr "አስጀማሪያ"
-#: help.pm:855 install_steps_interactive.pm:1139 services.pm:114
+#: help.pm:855 install_steps_interactive.pm:1136 services.pm:114
#: services.pm:157 services.pm:193
#, c-format
msgid "Services"
@@ -5220,13 +5228,6 @@ msgstr "ዲስኩን እንዳለ ደምስስ"
msgid "You have more than one hard drive, which one do you install linux on?"
msgstr ""
-#: install_interactive.pm:216 install_interactive.pm:222
-#: install_interactive.pm:275 install_interactive.pm:280
-#: install_steps_interactive.pm:278 steps.pm:21
-#, c-format
-msgid "Partitioning"
-msgstr ""
-
#: install_interactive.pm:221
#, c-format
msgid "ALL existing partitions and their data will be lost on drive %s"
@@ -5472,7 +5473,7 @@ msgid ""
"\"\n"
msgstr ""
-#: install_steps_auto_install.pm:75 install_steps_stdio.pm:27
+#: install_steps_auto_install.pm:68 install_steps_stdio.pm:27
#, c-format
msgid "Entering step `%s'\n"
msgstr ""
@@ -5666,13 +5667,13 @@ msgstr ""
msgid "Go on anyway?"
msgstr "ለማንኛውም ቀጥል?"
-#: install_steps_gtk.pm:582 install_steps_interactive.pm:941 steps.pm:30
+#: install_steps_gtk.pm:582 install_steps_interactive.pm:938 steps.pm:30
#, c-format
msgid "Summary"
msgstr "ማጠቃለያ"
-#: install_steps_gtk.pm:605 install_steps_interactive.pm:937
-#: install_steps_interactive.pm:1086
+#: install_steps_gtk.pm:605 install_steps_interactive.pm:934
+#: install_steps_interactive.pm:1083
#, c-format
msgid "not configured"
msgstr "አልተስተካከለም"
@@ -5855,7 +5856,7 @@ msgstr ""
msgid "Looking for available packages..."
msgstr ""
-#: install_steps_interactive.pm:430 install_steps_interactive.pm:841
+#: install_steps_interactive.pm:430 install_steps_interactive.pm:838
#, c-format
msgid "Choose a mirror from which to get the packages"
msgstr ""
@@ -5957,12 +5958,12 @@ msgstr "Post-install configuration"
msgid "Please ensure the Update Modules media is in drive %s"
msgstr ""
-#: install_steps_interactive.pm:814
+#: install_steps_interactive.pm:811
#, c-format
msgid "Updates"
msgstr "አሻሻዎች"
-#: install_steps_interactive.pm:815
+#: install_steps_interactive.pm:812
#, c-format
msgid ""
"You now have the opportunity to download updated packages. These packages\n"
@@ -5975,142 +5976,142 @@ msgid ""
"Do you want to install the updates?"
msgstr ""
-#: install_steps_interactive.pm:836
+#: install_steps_interactive.pm:833
#, c-format
msgid ""
"Contacting Mandriva Linux web site to get the list of available mirrors..."
msgstr ""
-#: install_steps_interactive.pm:855
+#: install_steps_interactive.pm:852
#, c-format
msgid "Contacting the mirror to get the list of available packages..."
msgstr ""
-#: install_steps_interactive.pm:859
+#: install_steps_interactive.pm:856
#, c-format
msgid "Unable to contact mirror %s"
msgstr "ከአንጸባራቂ %s ጋር መገናኘት አልተቻለም"
-#: install_steps_interactive.pm:859
+#: install_steps_interactive.pm:856
#, c-format
msgid "Would you like to try again?"
msgstr "እንደገና መሞከር ይፈልጋል?"
-#: install_steps_interactive.pm:886 standalone/drakclock:45
+#: install_steps_interactive.pm:883 standalone/drakclock:45
#, c-format
msgid "Which is your timezone?"
msgstr "የሰአት ክልሎት የትኛው ነው?"
-#: install_steps_interactive.pm:891
+#: install_steps_interactive.pm:888
#, c-format
msgid "Automatic time synchronization (using NTP)"
msgstr ""
-#: install_steps_interactive.pm:899
+#: install_steps_interactive.pm:896
#, c-format
msgid "NTP Server"
msgstr "NTP ሰርቨር"
-#: install_steps_interactive.pm:954 install_steps_interactive.pm:962
-#: install_steps_interactive.pm:980 install_steps_interactive.pm:987
-#: install_steps_interactive.pm:1138 services.pm:133
+#: install_steps_interactive.pm:951 install_steps_interactive.pm:959
+#: install_steps_interactive.pm:977 install_steps_interactive.pm:984
+#: install_steps_interactive.pm:1135 services.pm:133
#: standalone/drakbackup:1585
#, c-format
msgid "System"
msgstr "ሲስተም"
-#: install_steps_interactive.pm:994 install_steps_interactive.pm:1021
-#: install_steps_interactive.pm:1038 install_steps_interactive.pm:1054
-#: install_steps_interactive.pm:1065
+#: install_steps_interactive.pm:991 install_steps_interactive.pm:1018
+#: install_steps_interactive.pm:1035 install_steps_interactive.pm:1051
+#: install_steps_interactive.pm:1062
#, c-format
msgid "Hardware"
msgstr "ሀርድዌር"
-#: install_steps_interactive.pm:1000 install_steps_interactive.pm:1009
+#: install_steps_interactive.pm:997 install_steps_interactive.pm:1006
#, c-format
msgid "Remote CUPS server"
msgstr "በርቀት ያለ የCUPS ሰርቨር"
-#: install_steps_interactive.pm:1000
+#: install_steps_interactive.pm:997
#, c-format
msgid "No printer"
msgstr "ማተሚያ የለም"
-#: install_steps_interactive.pm:1042
+#: install_steps_interactive.pm:1039
#, c-format
msgid "Do you have an ISA sound card?"
msgstr "የISA ድምጽ ካርድ አለዎት?"
-#: install_steps_interactive.pm:1044
+#: install_steps_interactive.pm:1041
#, c-format
msgid ""
"Run \"alsaconf\" or \"sndconfig\" after installation to configure your sound "
"card"
msgstr ""
-#: install_steps_interactive.pm:1046
+#: install_steps_interactive.pm:1043
#, c-format
msgid "No sound card detected. Try \"harddrake\" after installation"
msgstr ""
-#: install_steps_interactive.pm:1066
+#: install_steps_interactive.pm:1063
#, c-format
msgid "Graphical interface"
msgstr "ንድፋዊ እይታ"
-#: install_steps_interactive.pm:1072 install_steps_interactive.pm:1084
+#: install_steps_interactive.pm:1069 install_steps_interactive.pm:1081
#, c-format
msgid "Network & Internet"
msgstr "መረብ እና ኢንተርኔት"
-#: install_steps_interactive.pm:1086
+#: install_steps_interactive.pm:1083
#, c-format
msgid "configured"
msgstr "ተስተካክሏል"
-#: install_steps_interactive.pm:1095 install_steps_interactive.pm:1109
+#: install_steps_interactive.pm:1092 install_steps_interactive.pm:1106
#: security/level.pm:55 steps.pm:20
#, c-format
msgid "Security"
msgstr "ደህንነት"
-#: install_steps_interactive.pm:1114
+#: install_steps_interactive.pm:1111
#, c-format
msgid "activated"
msgstr "መስራት ጀምሯል"
-#: install_steps_interactive.pm:1114
+#: install_steps_interactive.pm:1111
#, c-format
msgid "disabled"
msgstr "መስራት አቁሟል"
-#: install_steps_interactive.pm:1125
+#: install_steps_interactive.pm:1122
#, c-format
msgid "Boot"
msgstr "ጀምር"
#. -PO: example: lilo-graphic on /dev/hda1
-#: install_steps_interactive.pm:1129 printer/printerdrake.pm:961
+#: install_steps_interactive.pm:1126 printer/printerdrake.pm:961
#, c-format
msgid "%s on %s"
msgstr "%s %s ላይ ነው"
-#: install_steps_interactive.pm:1143 services.pm:175
+#: install_steps_interactive.pm:1140 services.pm:175
#, c-format
msgid "Services: %d activated for %d registered"
msgstr ""
-#: install_steps_interactive.pm:1155
+#: install_steps_interactive.pm:1152
#, c-format
msgid "You have not configured X. Are you sure you really want this?"
msgstr ""
-#: install_steps_interactive.pm:1236
+#: install_steps_interactive.pm:1233
#, c-format
msgid "Preparing bootloader..."
msgstr "አስጀማሪ በማዘጋጀት ላይ..."
-#: install_steps_interactive.pm:1246
+#: install_steps_interactive.pm:1243
#, c-format
msgid ""
"You appear to have an OldWorld or Unknown machine, the yaboot bootloader "
@@ -6119,41 +6120,41 @@ msgid ""
"root fs is: root=%s"
msgstr ""
-#: install_steps_interactive.pm:1252
+#: install_steps_interactive.pm:1249
#, fuzzy, c-format
msgid "Do you want to use aboot?"
msgstr "ስራ-እቅዱን መሠረዝ ይፈልጋሉ?"
-#: install_steps_interactive.pm:1255
+#: install_steps_interactive.pm:1252
#, c-format
msgid ""
"Error installing aboot, \n"
"try to force installation even if that destroys the first partition?"
msgstr ""
-#: install_steps_interactive.pm:1272
+#: install_steps_interactive.pm:1269
#, c-format
msgid ""
"In this security level, access to the files in the Windows partition is "
"restricted to the administrator."
msgstr ""
-#: install_steps_interactive.pm:1301 standalone/drakautoinst:76
+#: install_steps_interactive.pm:1298 standalone/drakautoinst:76
#, c-format
msgid "Insert a blank floppy in drive %s"
msgstr ""
-#: install_steps_interactive.pm:1306
+#: install_steps_interactive.pm:1303
#, c-format
msgid "Please insert another floppy for drivers disk"
msgstr ""
-#: install_steps_interactive.pm:1308
+#: install_steps_interactive.pm:1305
#, c-format
msgid "Creating auto install floppy..."
msgstr ""
-#: install_steps_interactive.pm:1320
+#: install_steps_interactive.pm:1317
#, c-format
msgid ""
"Some steps are not completed.\n"
@@ -6161,19 +6162,19 @@ msgid ""
"Do you really want to quit now?"
msgstr ""
-#: install_steps_interactive.pm:1330 standalone/draksambashare:422
+#: install_steps_interactive.pm:1327 standalone/draksambashare:422
#: standalone/draksambashare:529 standalone/drakups:120 standalone/drakups:159
#: standalone/logdrake:452 standalone/logdrake:458
#, c-format
msgid "Congratulations"
msgstr "እንኳን ደስ ያለዎ!"
-#: install_steps_interactive.pm:1338 install_steps_interactive.pm:1339
+#: install_steps_interactive.pm:1335 install_steps_interactive.pm:1336
#, c-format
msgid "Generate auto install floppy"
msgstr ""
-#: install_steps_interactive.pm:1340
+#: install_steps_interactive.pm:1337
#, c-format
msgid ""
"The auto install can be fully automated if wanted,\n"
opt">} || ":0"; unless ($::testing) { $my_gtk::force_focus = $ENV{DISPLAY} eq ":0"; my $f = "/tmp/Xconf"; createXconf($f, @{$o->{mouse}}{"XMOUSETYPE", "device"}, $o->{wacom}); devices::make("/dev/kbd"); if ($ENV{DISPLAY} eq ":0") { my $launchX = sub { my $ok = 1; local $SIG{CHLD} = sub { $ok = 0 if waitpid(-1, c::WNOHANG()) > 0 }; unless (fork) { exec $_[0], (arch() =~ /^sparc/ || arch() eq "ppc" ? () : ("-kb")), "-dpms","-s" ,"240", ($_[0] =~ /Xsun/ || $_[0] =~ /Xpmac/ ? ("-fp", "/usr/X11R6/lib/X11/fonts:unscaled") : ("-allowMouseOpenFail", "-xf86config", $f)) or exit 1; } foreach (1..60) { sleep 1; log::l("Server died"), return 0 if !$ok; return 1 if c::Xtest($ENV{DISPLAY}); } log::l("Timeout!!"); 0; }; my @servers = qw(FBDev VGA16); #-) if (arch() eq "alpha") { require Xconfigurator; my $card = Xconfigurator::cardConfigurationAuto(); add2hash($card, Xconfigurator::cardName2card($card->{type})) if $card && $card->{type}; @servers = $card->{server} || "TGA"; #-@servers = qw(SVGA 3DLabs TGA) } elsif (arch() =~ /^sparc/) { local $_ = cat_("/proc/fb"); if (/Mach64/) { @servers = qw(Mach64) } elsif (/Permedia2/) { @servers = qw(3DLabs) } else { @servers = qw(Xsun24) } } elsif (arch() eq "ppc") { @servers = qw(Xpmac); } foreach (@servers) { log::l("Trying with server $_"); sleep 3; my $dir = "/usr/X11R6/bin"; my $prog = /Xsun/ || /Xpmac/ ? $_ : "XF86_$_"; unless (-x "$dir/$prog") { unlink $_ foreach glob_("$dir/X*"); install_any::getAndSaveFile("$dir/$prog", "$dir/$prog") or die "failed to get server: $!"; chmod 0755, "$dir/$prog"; } if (/FB/) { !$o->{vga16} && $o->{allowFB} or next; $o->{allowFB} = &$launchX($prog) #- keep in mind FB is used. and goto OK; } else { $o->{vga16} = 1 if /VGA16/; &$launchX($prog) and goto OK; } } return undef; } } OK: @themes = @themes_vga16 if $o->{simple_themes} || $o->{vga16}; init_sizes(); install_theme($o); create_logo_window($o); $my_gtk::force_center = [ $::rootwidth - $::windowwidth, $::logoheight, $::windowwidth, $::windowheight ]; (bless {}, ref $type || $type)->SUPER::new($o); } sub enteringStep { my ($o, $step) = @_; print _("Entering step `%s'\n", translate($o->{steps}{$step}{text})); $o->SUPER::enteringStep($step); create_steps_window($o); create_help_window($o); } sub leavingStep { my ($o, $step) = @_; $o->SUPER::leavingStep($step); } #-###################################################################################### #- Steps Functions #-###################################################################################### sub selectLanguage { my ($o) = @_; $o->SUPER::selectLanguage; Gtk->set_locale; install_theme($o); } #------------------------------------------------------------------------------ sub selectInstallClass1 { my ($o, $verif, $l, $def, $l2, $def2) = @_; my $w = my_gtk->new(''); my ($radio, $focused); gtkadd($w->{window}, gtkpack($o->create_box_with_title(_("Please, choose one of the following classes of installation:")), (my @radios = map { $radio = new Gtk::RadioButton($_, $radio ? $radio : ()); $radio->set_active($_ eq $def); $radio } @$l), gtkadd(create_hbox(), map { my $v = $_; my $b = new Gtk::Button(translate($_)); $focused = $b if $_ eq $def2; gtksignal_connect($b, "clicked" => sub { $w->{retval} = $v; Gtk->main_quit }); } @$l2) )); $focused->grab_focus if $focused; $w->main; mapn { $verif->($_[1]) if $_[0]->active } \@radios, $l; create_steps_window($o); $w->{retval}; } #------------------------------------------------------------------------------ sub selectMouse { my ($o, $force) = @_; my $old_dev = $o->{mouse}{device}; $o->SUPER::selectMouse($force); my $dev = $o->{mouse}{device}; if ($old_dev ne $dev && $dev =~ /ttyS/ && !$::testing) { log::l("telling X server to use another mouse"); eval { commands::modprobe("serial") }; symlinkf($dev, "/dev/mouse"); c::setMouseMicrosoft($ENV{DISPLAY}); } } #------------------------------------------------------------------------------ sub doPartitionDisks { my ($o, $hds, $raid) = @_; if ($o->{lnx4win}) { eval { install_steps::doPartitionDisks(@_) }; if ($@ =~ /no fat/) { $o->ask_warn('', _("You don't have any windows partitions!")); } elsif ($@ =~ /not enough room/) { $o->ask_warn('', _("You don't have any enough room for Lnx4win")); } else { return } #- delete $o->{lnx4win}; } if ($::beginner && fsedit::is_one_big_fat($hds)) { #- wizard my $min_linux = 600 << 11; my $max_linux = 1500 << 11; my $min_freewin = 300 << 11; my ($part) = fsedit::get_fstab(@{$o->{hds}}); my $w = $o->wait_message(_("Resizing"), _("Computing FAT filesystem bounds")); my $resize_fat = eval { resize_fat::main->new($part->{device}, devices::make($part->{device})) }; $@ and goto diskdrake; my $min_win = $resize_fat->min_size; if (!$@ && $part->{size} > $min_linux + $min_freewin + $min_win && $o->ask_okcancel('', _("WARNING! DrakX now needs to resize your Windows partition. Be careful: this operation is dangerous. If you have not already done so, you should first exit the installation, run scandisk under Windows (and optionally run defrag), then restart the installation. You should also backup your data. When sure, press Ok."))) { my $hd = $hds->[0]; my $oldsize = $part->{size}; $hd->{isDirty} = $hd->{needKernelReread} = 1; $part->{size} -= min($max_linux, $part->{size} - $min_win); $hd->adjustEnd($part); partition_table::adjust_local_extended($hd, $part); partition_table::adjust_main_extended($hd); local *log::l = sub { $w->set(join(' ', @_)) }; eval { $resize_fat->resize($part->{size}) }; if ($@) { $part->{size} = $oldsize; $o->ask_warn('', _("Automatic resizing failed")); } else { $part->{isFormatted} = 1; eval { fsedit::auto_allocate($hds, $o->{partitions}) }; if (!$@) { partition_table::write($hd) unless $::testing; return; } } } } diskdrake: while (1) { diskdrake::main($hds, $raid, interactive_gtk->new, $o->{partitions}); if (!grep { isSwap($_) } fsedit::get_fstab(@{$o->{hds}})) { if ($::beginner) { $o->ask_warn('', _("You must have a swap partition")); } elsif (!$::expert) { $o->ask_okcancel('', _("You don't have a swap partition\n\nContinue anyway?")) and last; } else { last } } else { last } } } sub doPartitionDisksLnx4winDev { my ($o, $l) = @_; return if $::beginner; my ($dev) = $o->ask_from_list('', _("Which partition do you want to use to put Linux4Win?"), [ map { sprintf "%s (%s) [%dMB]", $_->{device_windobe}, $_->{device}, $_->{size} >> 11 } @$l ] ) =~ /\((\S+)\)/; $_->{device} eq $dev and return $_ foreach @$l; } sub doPartitionDisksLnx4winSize { my ($o, $root_size, $swap_size, $max_root_size, $max_swap_size) = @_; return if $::beginner; my $w = my_gtk->new(''); my $root_adj = create_adjustment($max_root_size >> 11, 250, $$root_size >> 11); my $swap_adj = create_adjustment($max_swap_size >> 11, 32, $$swap_size >> 11); my $root_spin = new Gtk::SpinButton($root_adj, 0, 0); my $swap_spin = new Gtk::SpinButton($swap_adj, 0, 0); gtkadd($w->{window}, gtkpack(new Gtk::VBox(0,20), _("Choose the sizes"), create_packtable({}, [ _("Root partition size in MB: "), $root_spin ], [ undef, new Gtk::HScrollbar($root_adj) ], [ _("Swap partition size in MB: "), $swap_spin ], [ undef, new Gtk::HScrollbar($swap_adj) ], ), create_okcancel($w) ), ); $w->{ok}->grab_focus; $w->main(sub { $$root_size = $root_spin->get_value_as_int << 11; $$swap_size = $swap_spin->get_value_as_int << 11; }); } #------------------------------------------------------------------------------ sub chooseSizeToInstall { my ($o, $packages, $min_size, $max_size_, $availableC, $individual) = @_; my $max_size = min($max_size_, $availableC); my $enough = $max_size == $max_size_; my $percentage = int 100 * $max_size / $max_size_; #- don't ask anything if the difference between min and max is too small return $max_size if $min_size && $max_size / $min_size < 1.05; log::l("choosing size to install between $min_size and $max_size"); my $w = my_gtk->new(''); my $adj = create_adjustment($percentage, $min_size * 100 / $max_size_, $percentage); my $spin = gtkset_usize(new Gtk::SpinButton($adj, 0, 0), 20, 0); my $val; gtkadd($w->{window}, gtkpack(new Gtk::VBox(0,20), _("The total size for the groups you have selected is approximately %d MB.\n", pkgs::correctSize($max_size_ / sqr(1024))) . ($enough ? _("If you wish to install less than this size, select the percentage of packages that you want to install. A low percentage will install only the most important packages; a percentage of 100%% will install all selected packages.") : _("You have space on your disk for only %d%% of these packages. If you wish to install less than this, select the percentage of packages that you want to install. A low percentage will install only the most important packages; a percentage of %d%% will install as many packages as possible.", $percentage, $percentage)) . ($individual ? "\n\n" . _("You will be able to choose them more specifically in the next step.") : ''), create_packtable({}, [ _("Percentage of packages to install") . ' ', $spin, "%", my $mb = new Gtk::Label ], [ undef, new Gtk::HScrollbar($adj) ], ), create_okcancel($w) ) ); $spin->signal_connect(changed => my $changed = sub { $val = $spin->get_value_as_int / 100 * $max_size_; $mb->set(sprintf("(%dMB)", pkgs::correctSize($val / sqr(1024)))); }); &$changed(); $spin->signal_connect(activate => sub { $w->{retval} = 1; Gtk->main_quit }); $spin->grab_focus(); $w->main and $val; } sub choosePackagesTree { my ($o, $packages, $compss) = @_; my ($curr, $info_widget, $w_size, $go, $idle, $flat, $auto_deps); my (%wtree, %ptree); my $w = my_gtk->new(''); my $details = new Gtk::VBox(0,0); my $tree = Gtk::CTree->new(3, 0); $tree->set_selection_mode('browse'); $tree->set_column_width(0, 200); $tree->set_column_auto_resize($_, 1) foreach 1..2; gtkadd($w->{window}, gtkpack_(new Gtk::VBox(0,5), 0, _("Choose the packages you want to install"), 1, gtkpack(new Gtk::HBox(0,0), createScrolledWindow($tree), gtkadd(gtkset_usize(new Gtk::Frame(_("Info")), 150, 0), createScrolledWindow($info_widget = new Gtk::Text), )), 0, my $l = new Gtk::HBox(0,15), 0, gtkpack(new Gtk::HBox(0,10), $go = gtksignal_connect(new Gtk::Button(_("Install")), "clicked" => sub { $w->{retval} = 1; Gtk->main_quit }), ) )); gtkpack__($l, my $toolbar = new Gtk::Toolbar('horizontal', 'icons')); gtkpack__($l, gtksignal_connect(new Gtk::CheckButton(_("Automatic dependencies")), clicked => sub { invbool \$auto_deps })); $l->pack_end($w_size = new Gtk::Label(''), 0, 1, 20); $w->{window}->set_usize(map { $_ - 2 * $my_gtk::border - 4 } $::windowwidth, $::windowheight); $go->grab_focus; $w->{rwindow}->show_all; my $pix_base = [ gtkcreate_xpm($w->{window}, "$ENV{SHARE_PATH}/rpm-base.xpm") ]; my $pix_selected = [ gtkcreate_xpm($w->{window}, "$ENV{SHARE_PATH}/rpm-selected.xpm") ]; my $pix_unselect = [ gtkcreate_xpm($w->{window}, "$ENV{SHARE_PATH}/rpm-unselected.xpm") ]; my $pix_installed= [ gtkcreate_xpm($w->{window}, "$ENV{SHARE_PATH}/rpm-installed.xpm") ]; my $parent; $parent = sub { if (my $w = $wtree{$_[0]}) { return $w } my $s; foreach (split '/', $_[0]) { $wtree{"$s/$_"} ||= $tree->insert_node($s ? $parent->($s) : undef, undef, [$_, '', ''], 5, (undef) x 4, 0, 0); $s = "$s/$_"; } $wtree{$s}; }; my $add_node = sub { my ($leaf, $root) = @_; my $node = $tree->insert_node($parent->($root), undef, [$leaf, '', ''], 5, (undef) x 4, 1, 0); my $p = $packages->[0]{$leaf} or return; $p->{medium}{selected} or return; my $pix = pkgs::packageFlagBase($p) ? $pix_base : pkgs::packageFlagSelected($p) ? $pix_selected : pkgs::packageFlagInstalled($p) ? $pix_installed : $pix_unselect; $tree->node_set_pixmap($node, 1, $pix->[0], $pix->[1]); push @{$ptree{$leaf}}, $node; }; my $add_nodes = sub { %ptree = %wtree = (); $tree->freeze; while (1) { $tree->remove_node($tree->node_nth(0) || last) } my ($root, $leaf); if ($flat = $_[0]) { $add_node->($_, undef) foreach sort grep { my $pkg = pkgs::packageByName($packages, $_); $pkg->{medium}{selected} } keys %{$packages->[0]}; } else { foreach (sort @$compss) { ($root, $leaf) = m|(.*)/(.+)|o or ($root, $leaf) = ('', $_); my $pkg = pkgs::packageByName($packages, $leaf); $add_node->($leaf, $root) if $pkg->{medium}{selected}; } } $tree->thaw; }; $add_nodes->($flat); my %toolbar = my @toolbar = ( ftout => [ _("Expand Tree") , sub { $tree->expand_recursive(undef) } ], ftin => [ _("Collapse Tree") , sub { $tree->collapse_recursive(undef) } ], reload=> [ _("Toggle between flat and group sorted"), sub { $add_nodes->(!$flat) } ], ); $toolbar->set_button_relief("none"); foreach (grep_index { $::i % 2 == 0 } @toolbar) { gtksignal_connect($toolbar->append_item(undef, $toolbar{$_}[0], undef, gtkxpm($tree, "$ENV{SHARE_PATH}/$_.xpm")), clicked => $toolbar{$_}[1]); } $toolbar->set_style("icons"); my $display_info = sub { my $p = $packages->[0]{$curr} or return gtktext_insert($info_widget, ''); pkgs::extractHeaders($o->{prefix}, [$p], $p->{medium}); $p->{header} or die; my $ind = $o->{compssListLevels}{$o->{installClass}}; my $imp = translate($pkgs::compssListDesc{pkgs::packageFlagBase($p) ? 100 : round_down($p->{values}[$ind], 10)}); gtktext_insert($info_widget, $@ ? _("Bad package") : _("Name: %s\n", pkgs::packageName($p)) . _("Version: %s\n", pkgs::packageVersion($p) . '-' . pkgs::packageRelease($p)) . _("Size: %d KB\n", pkgs::packageSize($p) / 1024) . ($imp && _("Importance: %s\n", $imp)) . "\n" . formatLines(c::headerGetEntry($p->{header}, 'description'))); c::headerFree(delete $p->{header}); 0; }; my $update_size = sub { my $size = pkgs::selectedSize($packages); $w_size->set(_("Total size: %d / %d MB", pkgs::correctSize($size / sqr(1024)), install_any::getAvailableSpace($o) / sqr(1024))); }; my $toggle = sub { if (ref $curr) { $tree->toggle_expansion($curr); } else { my $p = $packages->[0]{$curr} or return; if (pkgs::packageFlagBase($p)) { return $o->ask_warn('', _("This is a mandatory package, it can't be unselected")); } elsif (pkgs::packageFlagInstalled($p)) { return $o->ask_warn('', _("You can't unselect this package. It is already installed")); } elsif (pkgs::packageFlagUpgrade($p)) { if ($::expert) { if (pkgs::packageFlagSelected($p)) { $o->ask_yesorno('', _("This package must be upgraded\nAre you sure you want to deselect it?")) or return; } } else { return $o->ask_warn('', _("You can't unselect this package. It must be upgraded")); } } pkgs::togglePackageSelection($packages, $p, my $l = {}); if (my @l = grep { $l->{$_} } keys %$l) { #- check for size before trying to select. my $size = pkgs::selectedSize($packages); foreach (@l) { my $p = $packages->[0]{$_}; pkgs::packageFlagSelected($p) or $size += pkgs::packageSize($p); } if (pkgs::correctSize($size / sqr(1024)) > install_any::getAvailableSpace($o) / sqr(1024)) { return $o->ask_warn('', _("You can't select this package as there is not enough space left to install it")); } @l > 1 && !$auto_deps and $o->ask_okcancel('', [ _("The following packages are going to be installed/removed"), join(", ", sort @l) ], 1) || return; pkgs::togglePackageSelection($packages, $p); foreach (@l) { my $p = $packages->[0]{$_}; my $pix = pkgs::packageFlagSelected($p) ? $pix_selected : $pix_unselect; $tree->node_set_pixmap($_, 1, $pix->[0], $pix->[1]) foreach @{$ptree{$_}}; } &$update_size; } else { $o->ask_warn('', _("You can't select/unselect this package")); } } }; $tree->signal_connect(button_press_event => sub { &$toggle if $_[1]{type} =~ /^2/ }); $tree->signal_connect(key_press_event => sub { my ($w, $e) = @_; my $c = chr($e->{keyval} & 0xff); &$toggle if $e->{keyval} >= 0x100 ? $c eq "\r" || $c eq "\x8d" : $c eq ' '; 1; }); $tree->signal_connect(tree_select_row => sub { Gtk->timeout_remove($idle) if $idle; if ($_[1]->row->is_leaf) { ($curr) = $tree->node_get_pixtext($_[1], 0); $idle = Gtk->timeout_add(100, $display_info); } else { $curr = $_[1]; } &$toggle if $_[2] == 1; }); &$update_size; $w->main; } #------------------------------------------------------------------------------ sub installPackages { my ($o, $packages) = @_; my ($current_total_size, $last_size, $nb, $total_size, $start_time, $last_dtime, $trans_progress_total); my $w = my_gtk->new(_("Installing"), grab => 1); $w->{window}->set_usize($::windowwidth * 0.8, 260); my $text = new Gtk::Label; my ($msg, $msg_time_remaining, $msg_time_total) = map { new Gtk::Label($_) } '', (_("Estimating")) x 2; my ($progress, $progress_total) = map { new Gtk::ProgressBar } (1..2); gtkadd($w->{window}, gtkpack(new Gtk::VBox(0,10), _("Please wait, "), $msg, $progress, create_packtable({}, [_("Time remaining "), $msg_time_remaining], [_("Total time "), $msg_time_total], ), $text, $progress_total, '', gtkadd(create_hbox(), gtksignal_connect(new Gtk::Button(_("Cancel")), clicked => sub { $pkgs::cancel_install = 1 })), )); $msg->set(_("Preparing installation")); $w->sync; my $oldInstallCallback = \&pkgs::installCallback; local *pkgs::installCallback = sub { my $m = shift; if ($m =~ /^Starting installation/) { $nb = $_[0]; $total_size = $_[1]; $current_total_size = 0; $start_time = time(); $msg->set(_("%d packages", $nb) . _(", %U MB", $total_size / sqr(1024))); $w->flush; } elsif ($m =~ /^Starting installing package/) { $progress->update(0); my $name = $_[0]; $msg->set(_("Installing package %s", $name)); $current_total_size += $last_size; $last_size = c::headerGetEntry($o->{packages}[0]{$name}{header}, 'size'); $text->set((split /\n/, c::headerGetEntry($o->{packages}[0]{$name}{header}, 'summary'))[0] || ''); $w->flush; } elsif ($m =~ /^Progressing installing package/) { $progress->update($_[2] ? $_[1] / $_[2] : 0); my $dtime = time() - $start_time; my $ratio = $total_size ? ($_[1] + $current_total_size) / $total_size : 0; my $total_time = $ratio ? $dtime / $ratio : time(); $progress_total->update($ratio); if ($dtime != $last_dtime && $current_total_size > 2 * 1024 * 1024) { $msg_time_total->set(formatTime(10 * round($total_time / 10))); $msg_time_remaining->set(formatTime(10 * round(max($total_time - $dtime, 0) / 10))); $last_dtime = $dtime; } $w->flush; } else { unshift @_, $m; goto $oldInstallCallback } }; #- the modification is not local as the box should be living for other package installation. undef *install_any::changeMedium; *install_any::changeMedium = sub { my ($method, $medium) = @_; my $msg = _("Change your Cd-Rom! Please insert the Cd-Rom labelled \"%s\" in your drive and press Ok when done. If you don't have it, press Cancel to avoid installation from this Cd-Rom.", pkgs::mediumDescr($o->{packages}, $medium)); #- if not using a cdrom medium, always abort. $method eq 'cdrom' and do { local $my_gtk::grab = 1; $o->ask_okcancel('', $msg); }; }; catch_cdie { $o->install_steps::installPackages($packages); } sub { if ($@ =~ /^error ordering package list: (.*)/) { $o->ask_yesorno('', [ _("There was an error ordering packages:"), $1, _("Go on anyway?") ], 1) and return 1; ${$_[0]} = "already displayed"; } elsif ($@ =~ /^error installing package list: (.*)/) { $o->ask_yesorno('', [ _("There was an error installing packages:"), $1, _("Go on anyway?") ], 1) and return 1; ${$_[0]} = "already displayed"; } 0; }; if ($pkgs::cancel_install) { $pkgs::cancel_install = 0; die "setstep choosePackages\n"; } $w->destroy; } #------------------------------------------------------------------------------ sub load_rc($) { if (my ($f) = grep { -r $_ } map { "$_/$_[0].rc" } ("share", $ENV{SHARE_PATH}, dirname(__FILE__))) { Gtk::Rc->parse($f); foreach (cat_($f)) { if (/style\s+"background"/ .. /^\s*$/) { @background1 = map { $_ * 256 * 257 } split ',', $1 if /NORMAL.*\{(.*)\}/; @background2 = map { $_ * 256 * 257 } split ',', $1 if /PRELIGHT.*\{(.*)\}/; } } } } sub install_theme { my ($o, $theme) = @_; $o->{theme} = $theme || $o->{theme} || $themes[0]; gtkset_mousecursor(68); load_rc($_) foreach "themes-$o->{theme}", "install", "themes"; if (my ($font, $font2) = lang::get_x_fontset($o->{lang})) { $font2 ||= $font; Gtk::Rc->parse_string(qq( style "default-font" { fontset = "$font" } style "small-font" { fontset = "$font2" } widget "*" style "default-font" widget "*Steps*" style "small-font" )); } gtkset_background(@background1);# unless $::testing; create_logo_window($o); create_help_window($o); } #------------------------------------------------------------------------------ sub create_big_help { my $w = my_gtk->new('', grab => 1, force_position => [ $::stepswidth, $::logoheight ]); $w->{rwindow}->set_usize($::logowidth, $::rootheight - $::logoheight); gtkadd($w->{window}, gtkpack_(new Gtk::VBox(0,0), 1, createScrolledWindow(gtktext_insert(new Gtk::Text, formatAlaTeX(translate($help::steps{$::o->{step}})))), 0, gtksignal_connect(new Gtk::Button(_("Ok")), "clicked" => sub { Gtk->main_quit }), )); $w->main; } #------------------------------------------------------------------------------ sub create_help_window { my ($o) = @_; # $o->{help_window}->destroy if $o->{help_window}; my $w; if ($w = $o->{help_window}) { $_->destroy foreach $w->{window}->children; } else { $w = bless {}, 'my_gtk'; $w->{rwindow} = $w->{window} = new Gtk::Window; $w->{rwindow}->set_uposition($::rootwidth - $::helpwidth, $::rootheight - $::helpheight); $w->{rwindow}->set_usize($::helpwidth, $::helpheight); $w->sync; } #- my $b = new Gtk::Button; #- $b->signal_connect(clicked => sub { #- my $w = my_gtk->new('', grab => 1, force_position => [ $stepswidth, $logoheight ]); #- $w->{rwindow}->set_usize($logowidth, $height - $logoheight); #- gtkadd($w->{window},